Приложение Rails 3.1 не может установить гем sqlite3, потому что библиотеки устарели - PullRequest
2 голосов
/ 10 сентября 2011

Последняя установленная в CentOS 5.6 библиотека SQLite3 - версия 3.3.6.Насколько я понимаю, для гема sqlite3 требуется версия 3.6 или выше.

Как заставить мое приложение работать с SQLite3 без обновления библиотеки на моем сервере?Он находится в рабочей среде, и мне просто не разрешено его обновлять.

Ответы [ 3 ]

5 голосов
/ 10 сентября 2011

Вы можете скомпилировать статическую библиотеку той версии sqlite, которая вам требуется.Затем установите гем sqlite3 со ссылкой на вашу новую статическую библиотеку.

Хотя я не тестировал эту процедуру, я мог видеть, что процесс ...

1.Загрузите и извлеките исходный код SQLite в новый каталог.

mkdir $HOME/sqlite3.7.7.1
cd $HOME/sqlite3.7.7.1
wget http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz
tar -zxvf sqlite-autoconf-3070701.tar.gz
cd sqlite-autoconf-3070701

2.Сконфигурируйте, скомпилируйте и установите.

./configure --disable-shared --enable-static --prefix=$HOME/sqlite3.7.7.1
make && make install

3.A.(вариант 1) Установите гем SQLite со ссылкой на новую статическую библиотеку.

gem install sqlite3 --with-sqlite3-dir=$HOME/sqlite3.7.7.1

3.B.(вариант 2) Установить через упаковщик.* Предполагая, что sqlite3 уже был добавлен в Gemfile ( благодаря Lester )

bundle config build.sqlite3 \
  --with-sqlite3-include=$HOME/sqlite3.7.7.1/include \
  --with-sqlite3-lib=$HOME/sqlite3.7.7.1/lib \
  --with-sqlite3-dir=$HOME/sqlite3.7.7.1/bin
bundle install
0 голосов
/ 20 сентября 2011

Это сработало для меня на MacBook, у которого было несколько разных версий sqlite3, накопленных за эти годы.

Для меня установка гема была:

gem install sqlite3 - --with-sqlite3-dir = / путь / к / sqlite3 / каталогу

Другими словами, мне нужно было только перечислить основной каталог разработки sqlite3, но мне пришлось использовать дополнительный «-».

Это позволило установить Rails 3.1 под Max OS X Lion

0 голосов
/ 16 сентября 2011

Шаги сработали для меня с одним небольшим изменением.С драгоценным камнем 1.3.7 и рельсами 3.1.0 для шага 3.A.Я должен был сделать:

gem install sqlite3 -- --with-sqlite3-dir=$HOME/sqlite3.7.7.1 --with-sqlite3-lib=$HOME/sqlite3.7.7.1/lib

дополнительный «-» в середине разрешенной опции, чтобы не анализироваться в файле gem

...