Обновляем SQLite на CentOS
1. Идем на официальный сайт и находим последнюю версию "autoconf"
https://www.sqlite.org/download.html
2. Переходим во временную папку и качаем
# wget https://www.sqlite.org/2022/sqlite-autoconf-3380200.tar.gz
3. Распаковываем
# tar -xzf sqlite-autoconf-3380200.tar.gz
4. Делаем настройку
# ./configure
5. Устанавливаем
# make install
после установки получаем сообщение:
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Где "/usr/local/lib" это путь к библиотеке.
6. Проверяем установку
# sqlite3 -version
3.38.2 2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f
7. Обратите внимание, что мы установили новую версию SQLite, но система по прежнему, использует старую библиотеку. Необходимо добавить в ldconfig новый путь.
При этом проверка версии в Python может давать корректную версию, но Django будет использовать не корректную.
7.А. Для это создаем файл:
# vi /etc/ld.so.conf.d/usr-lib.conf
Добавляем в него строки:
/usr/local/lib
/usr/local/lib64
На будущее прописываем путь и для 64-х разрядных библиотек.
Применяем настройки путей к библиотекам:
# ldconfig -v
7.Б. Или же можно задать глобальную переменную для профиля (плохо работает и надо делать дополнительные настройки Python)
# vi ~/.bash_profile
или в глобальный:
# vi /etc/profile
добавляем путь к библиотеке в окружение профиля:
export LD_LIBRARY_PATH=/usr/local/lib
export LD_RUN_PATH=/usr/local/lib
7.В. Или пересобрать Python с указанием путей библиотек
# cd /path/to/python/src
# LD_RUN_PATH=/usr/local/lib ./configure
# LD_RUN_PATH=/usr/local/lib make
# LD_RUN_PATH=/usr/local/lib make altinstall
8. Проверяем версию в Python
# python3 -c "import sqlite3; print(sqlite3.sqlite_version)"
3.38.2
9. При желании новую версию SQLite можно перенести в основную директорию
# mv /usr/local/bin/sqlite3 /usr/local/bin/sqlite3.7
# mv /usr/local/bin/sqlite3 /usr/bin/