По просьбам наших подписчиков решили записать видео про установку Firebird 5 на операционную систему macOS. Данная статья является текстовой расшифровкой.
Установка Firebird 5 на ОС macOS
В данный момент macOS используется на компьютерах с процессорами x86 от Intel и arm64 серии Apple Silicon. Процесс установки не зависит от архитектуры процессора, разница только в источнике пакета установки. Для установки Firebird 5 на macOS Intel необходимо использовать пакет pkg с сайта firebirdsql.org. Переходим на сайт firebirdsql.org, переходим в раздел Downloads — Firebird 5.0 — MacOS. Для процессоров Silicon пакет установки Firebird 5.0. находится по ссылке.
Это временное решение, в ближайшем времени все пакеты установки будут в одном месте. Скачиваем пакет и запускаем.
Firebird в macOS устанавливается в папку /Library/Frameworks/Firebird.framework, бинарные файлы и файлы конфигурации находятся в папке /Library/Frameworks/Firebird.framework/Versions/A/Resources/bin, fbclient в папке /Library/Frameworks/Firebird.framework/Libraries
Проверяем процессы firebird командой ps aux | grep firebird:
Проверяем наличие службы Firebird в списке служб командой launchctl list | grep firebird:
Проверим подключение к базе данных employee.fdb. Запускаем утилиту isql
/Library/Frameworks/Firebird.framework/Versions/A/Resources/bin/isql
и подключаемся к базе командой
connect 'localhost:employee.fdb' user 'SYSDBA' password 'masterkey';:
Вводим команду show version для вывода информации о сервере СУБД:
Завершим службу Firebird командой launchctl stop org.firebird.gds и проверим процессы командой ps aux | grep firebird:
Это ещё одна особенность работы firebird в операционной системе macos – служба Firebird запускается только с помощью процесса Guardian fbguard, поэтому чтобы полностью завершить службу СУБД нужно использовать команду launchctl unload /Library/LaunchDaemons/org.firebird.gds.plist
Если открыть конфигурационный файл автозапуска службы /Library/LaunchDaemons/org.firebird.gds.plist , то можно увидеть, что запускается служба fbguard:
Запустить службу Firebird можно командой launchctl load -w /Library/LaunchDaemons/org.firebird.gds.plist
Установка двух инстансов Firebird 5 на ОС macOS
Штатный инсталлятор Firebird для macos не позволяет установить дополнительный инстанс, при попытке установить будет просто перезаписан текущий каталог инстанса. Поэтому для установки более одного инстанса потребуется один установить штатным инсталлятором, а потом используя файлы из установленного инстанса установить второй. Есть более сложный путь с распаковкой штатного инсталлятора, но мы его рассматривать не будем. Один инстанс уже установлен. Для установки второго инстанса будем использовать каталог первого инстанса.
Создадим каталог для нового инстанса командой
mkdir /Library/Frameworks/Firebird.framework/Versions/B
Затем скопируем содержимое каталога A в каталог B
cp -r /Library/Frameworks/Firebird.framework/Versions/A/ /Library/Frameworks/Firebird.framework/Versions/B
Теперь нужно поменять порт по умолчанию у второго инстанса, чтобы не возникало конфликтов:
nano /Library/Frameworks/Firebird.framework/Versions/B/Resources/firebird.conf
Создадим копию файла настройки автозапуска launchd cp /Library/LaunchDaemons/org.firebird.gds.plist org.firebird3060.gds.plist
Изменим файл org.firebird_3060.gds.plist
nano /Library/LaunchDaemons/org.firebird3060.gds.plist и заменить путь к fbguard с учетом пути к второму инстансу
<string>/Library/Frameworks/Firebird.framework/Version/B/Resources/bin/fbguard</string>
<string>org.firebird3060.gds</string>
Последний этап – регистрация службы второго инстанса в launchd
launchctl load -w /Library/LaunchDaemons/org.firebird.gds.plist
Теперь в выводе команды launchctl list | grep firebird и ps aux | grep firebird две службы.
Внимание – данный способ официально не документирован, поэтому мы не гарантируем на 100% работу без сбоев.
Удаление Firebird 5 на ОС macOS
Штатный инсталлятор не добавляет скрипт для удаления Firebird. Есть два способа удалить Firebird на macos.
Первый способ – удалить автозапуск службы из launchd и удалить папку инстанса. Продемонстрируем его на втором инстансе.
launchctl unload -w /Library/LaunchDaemons/org.firebird3060.gds.plist
rm /Library/Frameworks/Firebird.framework/Versions/B/Resources
rm /Library/LaunchDaemons/org.firebird3060.gds.plist
Второй способ – воспользоваться скриптом с сайта.
Скрипт очень простой, но работает только с инстансами, установленными штатным инсталлятором, для других ситуаций его нужно модернизировать.
Видеоверсия на канале Теплый Ламповый SQL