Не удалось установить установку tiny_tds на Mac OS X 10.8 с помощью Homebrew FreeTds
МОЙ ВОПРОС
Каковы некоторые верные шаги, которые я могу предпринять, чтобы сделать это 100%?
Мне понадобятся настоящие инструкции, а не ответы на один лайнер или неопределенные концептуальные описания процесса.
Пусть дойдет до конца.
Казалось бы, что есть конфликты где-то, и у меня была подпапка помощи от разработчика gem на GitHub по отношению к моему опыту с Ruby/Rails/Bundler/Homebrew, чтобы он не полностью их винил: P
Но мне нужно выяснить, как получить эту работу как можно скорее, поэтому здесь идет мое текущее состояние этой проблемы.
ОБНОВЛЕНИЕ: 2/25/2013
Обновлен GCC/XCODE версии 4.6 (4H127) и загружена последняя версия XCODE COMMAND-LINE TOOLS
и теперь значок iconv_open() отображается в контролере extconf.
Теперь я получаю следующие ошибки:
Я считаю, что теперь у них проблемы с tiny_tds и совместимость с последними концами xcode.
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for iconv_open() in iconv.h... yes
checking for sybfront.h... yes
checking for sybdb.h... yes
checking for tdsdbopen() in -lsybdb... yes
checking for ct_bind() in -lct... yes
creating Makefile
make
xcrun cc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -DHAVE_ICONV_OPEN -DHAVE_SYBFRONT_H -DHAVE_SYBDB_H -I-I/usr/local/php5/include -I-I/usr/include -I-I/usr/local/include -I-I/opt/local/include -I-I/usr/local/MacGPG2/include -I-I/opt/sm/pkg/active/include -I/usr/local/php5/include -I/usr/include -I/usr/local/include -I/opt/local/include -I/usr/local/MacGPG2/include -I/opt/sm/pkg/active/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common -c client.c
xcrun: Error: could not stat active Xcode path '/Developer'. (No such file or directory)
xcrun cc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -DHAVE_ICONV_OPEN -DHAVE_SYBFRONT_H -DHAVE_SYBDB_H -I-I/usr/local/php5/include -I-I/usr/include -I-I/usr/local/include -I-I/opt/local/include -I-I/usr/local/MacGPG2/include -I-I/opt/sm/pkg/active/include -I/usr/local/php5/include -I/usr/include -I/usr/local/include -I/opt/local/include -I/usr/local/MacGPG2/include -I/opt/sm/pkg/active/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common -c result.c
xcrun: Error: could not stat active Xcode path '/Developer'. (No such file or directory)
xcrun cc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -DHAVE_ICONV_OPEN -DHAVE_SYBFRONT_H -DHAVE_SYBDB_H -I-I/usr/local/php5/include -I-I/usr/include -I-I/usr/local/include -I-I/opt/local/include -I-I/usr/local/MacGPG2/include -I-I/opt/sm/pkg/active/include -I/usr/local/php5/include -I/usr/include -I/usr/local/include -I/opt/local/include -I/usr/local/MacGPG2/include -I/opt/sm/pkg/active/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common -c tiny_tds_ext.c
xcrun: Error: could not stat active Xcode path '/Developer'. (No such file or directory)
cc -pipe -bundle -undefined dynamic_lookup -o tiny_tds.bundle client.o result.o tiny_tds_ext.o -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/usr/local/heroku/lib -L/usr/local/php5/lib -L/usr/local/Cellar/ruby/1.9.3-p194/lib -L/usr/lib -L/usr/local/lib -L/opt/local/lib -L/usr/local/MacGPG2/lib -L/opt/sm/pkg/active/lib -L/Users/rountrjf/.rvm/lib -L/usr/local/Cellar/vertx/lib -L/usr/local/Cellar/vertx/mods/node.vert.x/lib -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L. -lruby -lct -lsybdb -lpthread -ldl -lobjc
i686-apple-darwin11-llvm-gcc-4.2: client.o: No such file or directory
i686-apple-darwin11-llvm-gcc-4.2: result.o: No such file or directory
i686-apple-darwin11-llvm-gcc-4.2: tiny_tds_ext.o: No such file or directory
make: *** [tiny_tds.bundle] Error 1
Alright, since /Developer doesn't exist.
I used `sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer` thinking that would fix it. Now I'm back to square one... iconv_open() not found when checked with `extconf.rb`
ОБНОВЛЕНИЕ 2: 2/25/2013
OKAY, поэтому я переустановил все, Ruby/Rails/и т.д.
И использовал некоторые рекомендации от комментатора, чтобы использовать ": path = > "
и вот мой вывод теперь, когда я запускаю rails s
/Users/rountrjf/.rvm/gems/ruby-1.9.3-p392/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- tiny_tds (LoadError)
from /Users/rountrjf/.rvm/gems/ruby-1.9.3-p392/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:251:in `block in require'
from /Users/rountrjf/.rvm/gems/ruby-1.9.3-p392/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:236:in `load_dependency'
from /Users/rountrjf/.rvm/gems/ruby-1.9.3-p392/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:251:in `require'
from /Users/rountrjf/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-sqlserver-adapter-3.2.10/lib/active_record/connection_adapters/sqlserver_adapter.rb:31:in `sqlserver_connection'
from /Users/rountrjf/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.12/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `new_connection'
ВЕЩИ, КОТОРЫЕ Я ТРЕНАЛ
1.) Начальные инструкции по настройке EASY, как и любые другие...
$ rails new test_app
$ cd test_app
Теперь добавьте эти строки в Gemfile
gem 'tiny_tds'
gem 'activerecord-sqlserver-adapter'
Теперь продолжайте команды...
$ bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.0.3)
Using i18n (0.6.1)
Using multi_json (1.6.1)
Using activesupport (3.2.12)
Using builder (3.0.4)
Using activemodel (3.2.12)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.5)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.2.2)
Using actionpack (3.2.12)
Using mime-types (1.21)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.4.4)
Using actionmailer (3.2.12)
Using arel (3.0.2)
Using tzinfo (0.3.35)
Using activerecord (3.2.12)
Using activerecord-sqlserver-adapter (3.2.10)
Using activeresource (3.2.12)
Using bundler (1.2.4)
Using coffee-script-source (1.4.0)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.3)
Using json (1.7.7)
Using rdoc (3.12.1)
Using thor (0.17.0)
Using railties (3.2.12)
Using coffee-rails (3.2.2)
Using jquery-rails (2.2.1)
Using rails (3.2.12)
Using sass (3.2.5)
Using sass-rails (3.2.6)
Installing tiny_tds (0.5.1) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/Cellar/ruby/1.9.3-p194/bin/ruby extconf.rb
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
-----
libiconv is missing.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/Cellar/ruby/1.9.3-p194/bin/ruby
--enable-lookup
--disable-lookup
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--with-freetds-dir
--without-freetds-dir
--with-freetds-include
--without-freetds-include=${freetds-dir}/include
--with-freetds-lib
--without-freetds-lib=${freetds-dir}/lib
--with-iconvlib
--without-iconvlib
Gem files will remain installed in /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/gems/tiny_tds-0.5.1 for inspection.
Results logged to /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/gems/tiny_tds-0.5.1/ext/tiny_tds/gem_make.out
An error occurred while installing tiny_tds (0.5.1), and Bundler cannot continue.
Make sure that `gem install tiny_tds -v '0.5.1'` succeeds before bundling.
ВЫХОД tsql -C
$ tsql -C
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /usr/local/Cellar/freetds/0.91/etc
MS db-lib source compatibility: no
Sybase binary compatibility: no
Thread safety: yes
iconv library: yes
TDS version: 7.1
iODBC: yes
unixodbc: no
SSPI "trusted" logins: no
Kerberos: no
2.) ВСПОМОГАТЕЛЬНЫЙ УСПЕХ/ОБРАЩАЙТЕСЬ, ЧТО ТЫ СДЕЛАЙТЕ ЭТО/ИНСТРУКЦИИ ПО УСТАНОВКЕ БОЛЬШОЙ ВЕРНУТЬ/ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ
Нашел эту запись в блоге...
http://talltroym.blogspot.com/2012/04/installing-activerecord-sqlserver.html
Затем я нашел правильные пути к библиотеке libiconv и библиотеке freetds.
Затем я запускал его следующим образом:
$ sudo gem install tiny_tds -- --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib --with-freetds-lib=/usr/local/Cellar/freetds/0.91/lib --with-freetds-include=/usr/local/Cellar/freetds/0.91/include
Password:
Building native extensions. This could take a while...
Successfully installed tiny_tds-0.5.1
1 gem installed
Installing ri documentation for tiny_tds-0.5.1...
Installing RDoc documentation for tiny_tds-0.5.1...
Пробовал bundle_install
снова и ударил... он все еще не устанавливает через gem 'tiny_tds'
в Gemfile...
Итак, я удаляю tiny_tds из Gemfile и приступаю к запуску сервера в любом случае...
И как ожидалось...
$ rails s
=> Booting WEBrick
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- tiny_tds (LoadError)
...
3.) MINI PORTILE
$ sudo gem install mini_portile
$ sudo gem install rakecompiler
$ rake TINYTDS_FREETDS_VERSION="current"
Could not find gem 'tiny_tds (>= 0) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.
ДРУГИЕ СВЯЗАННЫЕ ВОПРОСЫ И РЕСУРСЫ
Ответы
Ответ 1
Ну, к сожалению, теперь у меня это работает, и у меня нет CLUE, как я это сделал, но я перечислил все, что я сделал до сих пор в этом ответе, чтобы решить эту проблему.
В конце концов, bundle install
со стандартным gem 'tiny_tds', '0.5.1'
закончил работать нормально.
Он запускает Ruby версии 1.9.3-p194 через RVM.
Вот где золото я уверен...
Я использовал rvm pkg install iconv
и rvm reinstall 1.9.3 --with-iconv-dir=$rvm_path/usr
Как только это завершено, я удалил все старые папки gem...
Я переключил путь конфигурации пакета, чтобы соответствовать новому пути ruby ...
Затем была установлена установка пакета и стрела.
Он также использует iconv 1.13 вместо 1.14, не уверен, что это важно.
Я надеюсь, что это поможет любому... для меня это был огромный опыт обучения.
Ответ 2
Это работало для меня (2 октября 2014 года /OSX 10.9.5):
brew install freetds
и в рельсах:
gem 'tiny_tds'
bundle install
Ответ 3
Сначала установите free_tds и требуемые зависимости.
Это сработало для меня, ваши пути могут быть разными
gem install tiny_tds -- --with-freetds-include=/usr/local/include
--with-freetds-lib=/usr/local/lib
--with-iconv-include=/usr/local/Cellar/libiconv/1.14/include
--with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Ответ 4
Я решил это с помощью
brew install freetds
а затем
bundle install
Ответ 5
Я мало что знаю о Ruby. Просто немного потрудился. Вы всегда можете установить vertx напрямую, чем я думаю, что у вас больше контроля с расположением каталога, и это упрощает обновление. Я написал руководство для команды Ops для производства (действительно, работа продолжается). Это может помочь вам. Это может и не быть.
Я написал небольшое руководство по установке. Я планирую добавить к нему некоторые настройки, касающиеся настройки стека TCP/IP и Vertx для масштабирования (настройки эфемерного порта, ограничения дескриптора файла, тестирование нагрузки, настройка буферов повторения и т.д.).
http://rick-hightower.blogspot.com/2013/11/installing-vertx-on-ubuntu-13.html
Установка Vertx на Ubuntu 13
Сведения о средах
Тип экземпляра: EC2 hi1.4xlarge
-
ОС: Ubuntu 13.10 (64 бит) Java VM:
-
java version "1.7.0_25" (IcedTea 2.3.12) (сборка 23.7-b01)
-
vertx: 2.1M1 (построено 2013-10-29 11:11:22)
Установка программного обеспечения
Java 7 JDK:
$ sudo apt-get install openjdk-7-jdk
VertX
Загрузить Vertx
$ wget http://dl.bintray.com/vertx/downloads/vert.x-2.1M1.tar.gz
$ tar -zxf vert.x-2.1M1.tar.gz
$ ls
vert.x-2.1M1 vert.x-2.1M1.tar.gz
Перейдите в стандартную структуру Unix:
$ sudo mv vert.x-2.1M1 /usr/local/share/
$ ls /usr/local/share/
... vert.x-2.1M1 xml
Создайте символическую ссылку на /usr/local/share/vertx, чтобы упростить обновление.
$ sudo ln -s /usr/local/share/vert.x-2.1M1/ /usr/local/share/vertx
$ ls /usr/local/share/vertx
api-docs bin client conf lib
Добавьте символическую ссылку vertx в каталог /usr/bin/.
$ sudo ln -s /usr/local/share/vertx/bin/vertx /usr/bin/vertx
Установите настоящего проклятого редактора:
$ sudo apt-get install emacs
Создать тест script для проверки правильности установки vertx:
var vertx = require('vertx');
vertx.createHttpServer().requestHandler(function(r) {
r.response.end("test 1\n");}).listen(8080);
Теперь запустите vertx против теста script:
$ vertx run test.js &
[1] 11493
$ Succeeded in deploying verticle
Теперь проверьте, что все установлено:
$ curl 127.0.0.1:8080
test 1
Если вы получаете "тест 1", это означает, что vertx устанавливает и может использовать серверные вершины.
Позже я планирую добавить скрипты init.d для запуска vertx и, возможно, процесс, который просыпается и гарантирует, что все работает каждую минуту или около того. Я также планирую выпустить несколько экземпляров vertx с обратным прокси-сервером NGINX, чтобы каждый ящик мог обрабатывать около 1 000 000 запросов и иметь немного больше защиты DOS. В любом случае... работа продолжается...
Ответ 6
Что сработало для меня, были варианты mr.ruh.roh gem выше, воспроизведенные здесь:
gem install tiny_tds -- --with-freetds-include=/usr/local/include
--with-freetds-lib=/usr/local/lib
--with-iconv-include=/usr/local/Cellar/libiconv/1.14/include
--with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
в одной строке. Эта установка gem устанавливает драгоценный камень, но пакет все еще не удалось, хотя камень был построен и установлен. Тем не менее, добавление этих параметров для диспетчера.
bundle config build.tiny_tds -- --with-freetds-include=/usr/local/include
--with-freetds-lib=/usr/local/lib
--with-iconv-include=/usr/local/Cellar/libiconv/1.14/include
--with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Опять же, в одной строке. С этим набором конфигураций связки bundle install
работал.
Обратите внимание, что я уже запускал:
brew install freetds
brew install libiconv
Это сработало для меня 20 февраля 2015 года на OS X 10.9.5 с установленным Xcode 6.1.1