Мое требование состоит в том, чтобы использовать tiny_tds для подключения к базе данных SQLServer как часть запуска клиента шеф-повара, который работает в ОС Ubuntu. Итак, в рамках этой задачи я написал кулинарную книгу, в которую включил следующую строку в файле metadata.rb:
gem 'tiny_tds'
Это должно установить гем tiny_tds в соответствии с документацией шеф-повара. Но я получаю сообщение об ошибке «Не удалось создать собственное расширение для драгоценных камней». Хотя некоторые сайты предполагают, что проблема связана с FreeTDS, решения недостаточно ясны, чтобы решить эту проблему.
Изменить: добавление дополнительной информации о проблеме
Я также попытался вручную установить freetds с помощью следующих команд:
sudo apt-get install wget
sudo apt-get install build-essential
sudo apt-get install libc6-dev
sudo wget http://www.freetds.org/files/stable/freetds-1.00.21.tar.gz
tar -xzf freetds-1.00.21.tar.gz
cd freetds-1.00.21
sudo ./configure --prefix=/usr/local --with-tdsver=7.3
sudo make
sudo make install
а затем, когда я запускаю команду
gem install tiny_tds
на терминале он успешно устанавливается с использованием собственных зависимостей.
Но проблема все еще существует, когда я запускаю клиент шеф-повара с помощью команды
sudo chef-client -o "recipe[tiny_tds_cookbook]"
Отслеживание стека:
ERROR: Error installing tiny_tds:
ERROR: Failed to build gem native extension.
current directory: /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/tiny_tds-2.1.1/ext/tiny_tds
/opt/chef/embedded/bin/ruby -r ./siteconf20180121-23372-1r1mxpl.rb extconf.rb
checking for sybfront.h... yes
checking for sybdb.h... yes
checking for tdsdbopen() in -lsybdb... no
checking for dbanydatecrack() in -lsybdb... no
Failed! Do you have FreeTDS 0.95.80 or higher installed?
extconf.rb failed