Назад | Перейти на главную страницу

Установка более новой версии установленного RPM из исходников (CentOS)

У меня sqlite 3.3.6 установлен через "yum", но мне нужно 3.6+. Для него нет RPM, поэтому я решил установить его из исходников. Это было достаточно просто, но теперь у меня установлены обе версии, что проблематично.

Я бы хотел избавиться от старой версии, но если бы я запустил «yum erase sqlite», это уничтожило бы несколько вещей, зависящих от SQLite. Есть ли способ указать диспетчеру пакетов использовать вместо этого версию, которую я установил, не создавая для нее RPM?

Кроме того, может кто-нибудь объяснить это непонятное взаимодействие после того, как я установил 3.7.0.1 из источника (редактировать: см. ответ gnaman ниже):

> sqlite3 -version
3.3.6
> which sqlite3
/usr/local/bin/sqlite3
> /usr/local/bin/sqlite3 -version
3.7.0.1

Для него нет RPM, поэтому я решил установить его из исходников. Это было достаточно просто ...

Это конечно казалось достаточно просто, но затем вы продолжаете упоминать о проблемах, которые у вас сейчас есть.

"... не создавая для него RPM?"

Пришло время узнать, как создавать RPM. У вас не будет конца неприятностям, если вы не установите программное обеспечение через систему упаковки ОС.

В этом случае, вероятно, было бы так же просто, как получить файл спецификации, изменить номер версии и решить, применяются ли исправления к новой версии.

Also, could someone explain this baffling interaction from after I installed 3.7.0.1 from source:

Я тоже столкнулся с той же проблемой. Но при выходе и запуске нового окна сеанса Putty он работает нормально. Возвращает последнюю версию. В моем случае это v3.7.3.

# sqlite3 -version
3.7.3

Я бы использовал RPM, чтобы удалить только sqlite 3.3.6 и никаких зависимостей:

rpm -e –nodeps name-of-rpm-for-sqlite3.3.6

Это должно сохранить ваши зависимости, но удалить ваш пакет RPM. Кроме того, убедитесь, что у вас есть /usr/local/bin/ в твоем $PATH.

Зачем вам нужен sqlite 3.6? Если он вам просто нужен как приложение командной строки, тогда установка его из исходного кода, как вы это сделали, нормально, он просто установится в /usr/local/bin как вы обнаружили.

Ваш PATH переменная будет определять, /usr/local/bin или /usr/bin ищется первым (в зависимости от порядка путей в этой переменной). Если это предназначено только для вашего использования, вы также можете установить более позднюю версию sqlite в подкаталог вашего HOME каталог и добавьте его в свой путь.

Самое простое решение - просто позвонить /usr/local/bin/sqlite3

Если вам нужно, чтобы SQLite использовался более широко, будьте осторожны ... Причина в том, чтобы решить проблемы с зависимостями / перекомпилировать для других библиотек или приложений, также использующих библиотеки sqlite. Если вы не решите их, вы не знаете, будут ли они работать или нет.