Обновляем 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/