Как установить SQLite 3 на Fedora 40 или 39

SQLite 3 — это легковесная, автономная и высоконадёжная система управления баз данных (СУБД), широко используемая во встроенных системах, мобильных приложениях и автономных реализациях баз данных. Её простота и отсутствие необходимости в настройке делают её идеальным выбором для разработчиков, которым нужна надёжная база данных без дополнительных затрат на полноценную систему управления базами данных. SQLite 3 поддерживает широкий набор функций, включая транзакции, подзапросы, триггеры и различные методы индексирования, что делает SQLite 3 достаточно универсальным для многих случаев использования.

В Fedora 40 или 39 SQLite 3 можно легко установить с помощью Fedora AppStream, который предоставляет стабильную и хорошо интегрированную версию. Для тех, кому нужна последняя версия или кто предпочитает больший контроль над установкой, есть альтернативный способ: загрузить и скомпилировать последнюю версию SQLite 3 из исходного кода. В этом руководстве вы найдёте инструкции по обоим способам установки, которые обеспечат вам доступ к версии SQLite 3, которая лучше всего соответствует вашим потребностям.

Способ 1: Установка SQLite 3 через DNF

Обновление Fedora Linux перед установкой SQLite 3

Перед установкой SQLite убедитесь, что ваша система Fedora Linux обновлена. Обновление системы поможет избежать конфликтов или проблем в процессе установки SQLite.

Чтобы обновить систему Fedora Linux, откройте терминал и выполните следующую команду:

sudo dnf upgrade --refresh

Эта команда обеспечивает обновление пакетов вашей системы до последних версий, а флаг –refresh принудительно обновляет метаданные репозитория.

Установите SQLite 3 с помощью команды DNF

Рекомендуемый способ установки SQLite 3 в Fedora Linux — использовать AppStream по умолчанию, предоставляемый репозиторием Fedora. В AppStream содержится последняя стабильная версия SQLite 3, которая протестирована на совместимость с Fedora.

Чтобы установить SQLite 3, выполните следующую команду в вашем терминале:

sudo dnf install sqlite3

Эта команда указывает менеджеру пакетов (DNF) установить SQLite 3 из репозитория Fedora. После завершения установки рекомендуется проверить установленную версию SQLite 3, чтобы убедиться, что у вас установлена правильная версия.

Чтобы проверить версию SQLite 3, выполните следующую команду:

sqlite3 --version

Эта команда отображает установленную версию SQLite 3, которая должна соответствовать последней стабильной версии в репозитории Fedora.

Способ 2: Установка SQLite 3 через исходный код

Загрузите последний архив SQLite 3

Чтобы получить последнюю или предпочтительную версию SQLite 3, вы можете скомпилировать её из исходного кода. Сначала перейдите на страницу загрузки SQLite и найдите последнюю версию. Затем с помощью команды wget загрузите соответствующий архив:

wget https://www.sqlite.org/2023/sqlite-autoconf-{version}.tar.gz

Замените {version} на фактический номер версии. Всегда проверяйте страницу загрузки SQLite на наличие самой последней версии.

Например:

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

Извлечение архива SQLite

После загрузки архива извлеките файлы с помощью следующей команды:

tar xvfz sqlite-autoconf-*.tar.gz

Перейдите в извлеченный каталог и настройте префикс

Чтобы начать процесс компиляции используйте в терминале следующую конструкцию:

cd sqlite-autoconf-{replace with version}

Замените {version} фактическим номером версии.

Теперь настройте компиляцию с желаемым установочным префиксом:

./configure --prefix=/usr

Результат должен выглядеть следующим образом:

configure: creating ./config.status
config.status: creating Makefile
config.status: creating sqlite3.pc
config.status: executing depfiles commands
config.status: executing libtool commands

Скомпилируйте SQLite с помощью команды make

Чтобы запустить процесс сборки, используйте команду make вместе с флагом -j, чтобы указать количество ядер, которые вы хотите использовать для более быстрой компиляции:

make -j {number_of_cores}

Замените {number_of_cores} на желаемое количество ядер для вашей системы.

Чтобы определить количество ядер в вашей системе, запустите:

nproc

Например, если у вас двухъядерный компьютер, используйте make -j 2. Если у вас 12 ядер, вы можете использовать make -j 6, чтобы выделить половину ядер для процесса.

Установить скомпилированный двоичный файл SQLite 3

После завершения процесса сборки установите SQLite с помощью следующей команды:

sudo make install

В процессе установки на экране будет отображаться ход выполнения. После установки проверьте правильность установки и номер версии:

sqlite3 --version

Выполнив эти действия, вы успешно скомпилировали и установили последнюю или предпочитаемую версию SQLite 3 из исходного кода.

Тестирование установки SQLite 3

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

Создайте образец базы данных SQLite 3

Сначала давайте создадим тестовую базу данных с именем testdb с помощью следующей команды:

sqlite3 testdb.db

Эта команда создаёт новый файл базы данных SQLite с именем testdb.db в текущем рабочем каталоге.

Создайте образец таблицы SQLite 3

Теперь давайте создадим пример таблицы с именем «сотрудники» со следующими столбцами: id, имя и должность. Войдите в оболочку SQLite, выполнив команду:

sqlite3 testdb.db

После входа в оболочку SQLite выполните следующую команду SQL для создания таблицы сотрудников:

CREATE TABLE employees (id INTEGER PRIMARY KEY, name TEXT, position TEXT);

Нажмите Enter, чтобы выполнить команду; если таблица создана успешно, вы не увидите вывода.

Вставьте примеры данных с помощью SQLite 3

Затем вставьте образцы данных в таблицу employees, используя следующие команды SQL:

INSERT INTO employees (name, position) VALUES ('John Doe', 'Manager');
INSERT INTO employees (name, position) VALUES ('Jane Smith', 'Developer');
INSERT INTO employees (name, position) VALUES ('Alice Johnson', 'Designer');

Эти команды вставляют три строки в таблицу employees с разными именами и должностями.

Запросите данные с помощью SQLite 3

Чтобы убедиться, что данные успешно вставлены, выполните запрос SELECT для получения информации из таблицы сотрудников:

SELECT * FROM employees;

Вы должны увидеть следующий результат, в котором отображаются данные, хранящиеся в таблице сотрудников:

1|Джон Доу|Менеджер
2|Джейн Смит|Разработчик
3|Элис Джонсон|Дизайнер

Выход из оболочки SQLite с помощью SQLite 3

После завершения тестирования выйдите из командной строки SQLite, набрав:

.exit

Эта команда возвращает вас к вашему обычному терминалу.

Настройка SELinux для SQLite 3

SELinux (Security-Enhanced Linux) — это модуль безопасности, который обеспечивает соблюдение обязательных политик контроля доступа в системах Linux. Если в вашей системе включен SELinux, вам может потребоваться настроить его для работы с SQLite. В этом разделе приведены пошаговые инструкции по настройке SELinux для SQLite, обеспечивающие надлежащий контроль доступа и безопасность.

Проверка состояния SELinux

Прежде чем вносить какие-либо изменения, необходимо проверить, включена ли SELinux в вашей системе. Чтобы проверить состояние SELinux, выполните следующую команду:

sestatus

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

Установите соответствующий контекст SELinux для SQLite 3

SQLite хранит свои данные в файлах баз данных, обычно с расширением .db. Чтобы SQLite мог получить доступ к этим файлам, необходимо установить для них соответствующий контекст SELinux. Контекст httpd_sys_content_t обычно используется для содержимого веб-серверов, поэтому мы будем использовать его для нашего файла базы данных SQLite.

Сначала найдите файл базы данных SQLite. В этом примере мы предположим, что он находится по адресу /var/www/html/testdb.db. Замените путь на фактическое расположение файла базы данных SQLite.

Затем выполните следующую команду, чтобы задать контекст SELinux для файла базы данных:

sudo chcon -t httpd_sys_content_t /var/www/html/testdb.db

Эта команда устанавливает контекст SELinux для файла testdb.db, что позволяет SQLite получить доступ к файлу в контексте веб-сервера.

Проверьте контекст SELinux

Чтобы убедиться, что контекст успешно изменён, используйте команду ls с параметром -Z:

ls -lZ /var/www/html/testdb.db

Выходные данные должны показывать обновленный контекст SELinux для файла базы данных:

-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/testdb.db

Контекст httpd_sys_content_t в выводе указывает на то, что контекст был задан правильно.

Протестируйте доступ к SQLite 3 на Fedora

Теперь, когда вы настроили SELinux для SQLite, необходимо проверить, может ли SQLite получить доступ к файлу базы данных. Если вы используете SQLite в веб-приложении, попробуйте получить доступ к приложению и выполнить некоторые задачи, связанные с базой данных, например создать новую запись, обновить существующие данные или удалить запись.

Если приложение работает должным образом и может без проблем взаимодействовать с базой данных SQLite, значит, SELinux настроен для SQLite успешно.

Заключение

Установив SQLite 3 в Fedora с помощью AppStream или скомпилировав последнюю версию двоичного файла, вы обеспечили свою систему надёжным и универсальным механизмом работы с базами данных. Метод AppStream обеспечивает быструю и стабильную установку, а компиляция из исходного кода позволяет получить доступ к самым новым функциям. Регулярное обновление SQLite 3 и обеспечение его бесперебойной интеграции с вашими приложениями помогут поддерживать оптимальную производительность и совместимость. Важно следить за обновлениями, особенно если вы скомпилировали программу из исходного кода, чтобы избежать потенциальных проблем и обеспечить безопасность и эффективность вашей системы.