Я скомпилировал sqlite3 от исходного кода, версии 3.6.16. Я использовал --prefix=/usr/bin
как моя единственная опция компиляции.
Двоичные файлы скомпилированы и установлены правильно, но в каталоге /usr/bin/sqlite3/bin
. Таким образом, приложение находится в /usr/bin/sqlite3/bin/sqlite3
.
Теперь, как делают я "говорю Linux", что sqlite3 установлен на там? Таким образом, когда я работаю which sqlite3
это распечатало бы /usr/bin/sqlite3/bin/sqlite3
?
Мне нужна эта версия конкретно sqlite3
для компиляции RubyGem; sqlite3-ruby
, v1.3.0 или выше.
Я предполагаю, что буду добавлять a PATH
или что-то к моему ~/.profile
и затем выполнение source .profile
перезагружать изменения. Что "говорит Linux", где приложения установлены к названному? symlinks
?
Как правило, при компиляции источника, я использовал бы что-то подобное следующему:
--prefix=/usr
Я подозреваю, что это поместит все, где Вы ожидаете, что это будет.
Попытайтесь редактировать ~/.bashrc
включать эту строку:
export PATH=$PATH:/usr/bin/sqlite3/bin/
Другой способ обойтись без изменения пути состоит в том, чтобы создать символьную ссылку:
sudo ln -s /usr/bin/sqlite3/bin/sqlite3 /usr/local/bin/sqlite3
Знайте это, если Вы установили sqlite3
пакет, его исполняемый файл будет конфликтовать с Вашей недавно скомпилированной версией. Вы оказываетесь перед необходимостью работать /usr/bin/sqlite3/bin/sqlite3
явно.
BTW, с помощью --prefix=/usr/bin
поскольку опция компиляции не является очень хорошей идеей, я рекомендовал бы --prefix=/usr/local
вместо этого.