synapse-matrix

Установка sqlite на Almalinux8.8

Опубликовано

Для проверки версии Python введите

python3 --version

Для проверки версии встроенной библиотеки sqlite

python3 -c "import sqlite3; print(sqlite3.sqlite_version)"

Если у вас на экране версия выше 3.26, то большая часть проблем уже решена и переходим к настройке файла .bashrc. Иначе берём бубен, запасаемся терпением, разводим кострище и начинаем песнопляски.

Смочим ножки для старта и посмотрим какая версия СУБД sqlite у вас установлена.

sqlite3 --version

Если у вас установлена версия выше 2.26 — ок, ты везунчик! Но пересобрать компилятор всё-равно придётся. У меня такой команды вообще не найдено! В любом случае начинаем веселиться!

Установка SQLite

Скачайте исходные коды SQLite:

Перейдите на официальный сайт SQLite и скачайте последнюю версию исходных кодов. На момент моего вещания, адрес для загрузки был следующим SQLite 3.43.

А проще скопировать ссылку на отмеченный файл и выполнить команду

wget https://www.sqlite.org/2023/sqlite-autoconf-3430000.tar.gz

Вы загрузите исходный код sqlite в текущую директорию. Распакуйте архив командой

tar xvfz sqlite-autoconf-3430000.tar.gz

на экране вы увидите все извлечённые файлы. Перейдите в папку sqlite-autoconf-3430000

cd sqlite-autoconf-3430000

Настройте и скомпилируйте SQLite:

Выполните следующие команды для настройки и компиляции SQLite:

./configure

после вводим

make

Тут я получил ошибку нехватки оперативной памяти. Но это маловероятный сценарий.

gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\" -DPACKAGE_VERSION=\"3.43.0\" -DPACKAGE_STRING=\"sqlite\ 3.43.0\" -DPACKAGE_BUGREPORT=\"http://www.sqlite.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.43.0\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_ZLIB_H=1 -I.    -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY -DSQLITE_HAVE_ZLIB  -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_DQS=0 -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_ENABLE_STMTVTAB -DSQLITE_ENABLE_DBSTAT_VTAB  -g -O2 -MT sqlite3-sqlite3.o -MD -MP -MF .deps/sqlite3-sqlite3.Tpo -c -o sqlite3-sqlite3.o `test -f 'sqlite3.c' || echo './'`sqlite3.c
virtual memory exhausted: Cannot allocate memory
make: *** [Makefile:563: sqlite3-sqlite3.o] Error 1

Если у вас такая же ошибка, попробуйте создать файл подкачки swap, а лучше увеличьте объем оперативной памяти. Тут мы не будем рассматривать решение данной ошибки. Но могу сказать, что потренируйтесь, для начала, на виртуальных машинах, и только потом переходите на рабочий сервер. Я увеличил объём оперативки до 2Gb и всё заработало.

И так, после вовода команды make, которая создаст вам библиотеку sqlite3 из исходных кодов, осталось ввести

sudo make install

для установки собранной версии в вашу систему.

Обратите внимание, что установка в систему может изменить текущую версию SQLite и повлиять на работу других программ, которые зависят от нее. Будьте осторожны при выполнении этой команды.

Поздравляю! Вы только что установили sqlite3 на свой компьютер. Чтобы посмотреть версию, введите команду

sqlite3 --version

Однако, если вы введёте команду, для того чтобы посмотреть какую версию использует Python

python3 -c "import sqlite3; print(sqlite3.sqlite_version)"

Вы с удивлением обнаружите, что он до сих пор использует старую версию. Для того чтобы заставить Python работать с нужной нам версией, нужно явно указать интерпретатору Python где искать эту библиотеку.

Теперь переходим в домашнюю директорию и открываем там файл .bashrc

cd $HOME
nano .bashrc

Файл может быть пустым. В любом случае добавьте в него строчку

export LD_LIBRARY_PATH=/usr/local/lib

Сохраняем Ctrl+O, закрываем Ctrl+X. Применяем изменения

source .bashrc

Теперь версии установленной утилиты sqlite и библиотеки Python должны совпадать. Если это всё ещё не так, пока не обращайте внимания. Возможно в виртуальном окружении всё заработает, или вам потребуется перекомпилировать Python.

Добавить комментарий

Ваш адрес email не будет опубликован.