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 и обеспечение его бесперебойной интеграции с вашими приложениями помогут поддерживать оптимальную производительность и совместимость. Важно следить за обновлениями, особенно если вы скомпилировали программу из исходного кода, чтобы избежать потенциальных проблем и обеспечить безопасность и эффективность вашей системы.