Если вы заблокируете свой гемфайл в sqlite3-ruby, у вас будут проблемы с запуском приложения в последних версиях Rails, так как Rails хочет, чтобы гем назывался «sqlite3». Реальное решение этой проблемы - убедиться, что файл .bundle, который создает гем, действительно ссылается на нужные библиотеки sqlite3.
По умолчанию гем sqlite3 будет ссылаться на несуществующую библиотеку в вашем / usr / lib. Это неправильно. Что вам нужно сделать, это установить параметры соответствия прямо для вашей системы и переустановить гем sqlite3, и вы можете легко сделать это, используя
$bundle config
На их странице руководства указано, что она делает, но эту команду мне нужно было сделать (у меня есть своя установка SQLite с их сайта, а не через brew или macports).
$bundle config build.sqlite3 --with-sqlite3-include=/usr/local/include --with-sqlite3-lib=/usr/local/lib
Это всегда будет предоставлять правильные опции для драгоценного камня, когда вы пытаетесь «установить пакет», и ваш камень будет собираться правильно.
Обратите внимание, что эта проблема довольно хитрая в том смысле, что она не будет возникать в Ruby 1.9 - очевидно, что rbconfig там обновлен и улучшает поиск в библиотеке. Но когда вы собираетесь использовать 1.8 совместимость - используйте эту конфигурацию пакета, и все будет готово.