Как я устанавливал Firebird на Хакинтош
Для своего проекта понадобилось развернуть сервер Firebird на Macos под интеловский процессор. Для этого я установил в виртуалке Sequoia 15.4.1. Итак, пошагово:
2. Запускаем пакет на исполнение и сразу получаем отлуп
Вводим пароль
По умолчанию сервер ставится сюда
SQL>
SQL> connect '127.0.0.1:employee' user SYSDBA password 'masterkey';
Database: '127.0.0.1:employee', User: SYSDBA
SQL>
SQL> ALTER USER SYSDBA SET PASSWORD 'cooladmin';
# сохраняем изменения
SQL> commit;
# закрываем утилиту
SQL> quit;
SQL> connect '127.0.0.1:employee' user SYSDBA password 'masterkey';
# тут облом - пароль не подходит
Выходим из утилиты и продолжаем конфигурять дальше.
5. Создадим папку для базы данных
% sudo chown -R :firebird ~/test_db
Чтобы текущий пользователь тоже мог работать с этой папкой, можно/нужно внести его в эту группу
% sudo dseditgroup -o edit -a leyba -t user firebird
Проверим, является ли текущий юзер членом этой группы
% id leyba
uid=501(leyba)... <skiped>... 501(firebird) ...<skiped>...
% sudo -u firebird ls -la ~/test_db
Password:
total 0
drwxr-xr-x 2 leyba firebird 64 May 1 15:02 .
drwxrwxrwx@ 31 leyba staff 992 May 1 15:02 ..
SQL> CREATE DATABASE '127.0.0.1:/Users/leyba/test_db/test_db.fdb' user SYSDBA password 'cooladmin';
SQL> show db;
Database: 127.0.0.1:/Users/leyba/test_db/test_db.fdb
Owner: SYSDBA
PAGE_SIZE 8192
Number of DB pages allocated = 223
Number of DB pages used = 216
Number of DB pages free = 7
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 13.1
Database not encrypted
Wire crypt plugin: ChaCha64
Creation date: May 1, 2025 15:23:25
Replica mode: NONE
Protocol version = 18
Default Character set: NONE
Publication: Disabled
SQL>quit;
% sudo -u firebird ls -la ~/test_db
Password:
total 3568
drwxr-xr-x 3 leyba firebird 96 May 1 15:23 .
drwxrwxrwx@ 31 leyba staff 992 May 1 15:02 ..
-rw-rw---- 1 root firebird 1826816 May 1 15:33 test_db.fdb
8. Напоследок зададим переменную окружения FBLIB, которую используют для своих целей некоторые компоненты (например, IBX by Tony Whyman в Лазарусе)
% sudo nano /etc/environment
В открывшемся файле добавляем строку (путь с текущей клиентской библиотеке)
FBLIB='/Library/Frameworks/Firebird.framework/Versions/A/Resources/lib/libfbclient.dylib'
1. Скачиваем пакет с дистрибутивом Firebird 5.0.2 отсюда
https://www.firebirdsql.org/en/firebird-5-0
2. Запускаем пакет на исполнение и сразу получаем отлуп
3. Идем System Setting --> Privacy & Security --> Security. Там видим наш заблокированный пакет
Жмем кнопку "Open Anyway", соглашаясь на установку пакета
Далее запускается стандартный мастер установки
Последовательно проходим все шаги, соглашаясь со всем и оставляя все пути установки по умолчанию, получаем в конце сообщение
/Library/Frameworks/Firebird.framework/Versions/A/Resources/
3. Добавляем пути в переменные окружения, чтобы сервер мог запускать утилиты без указания полного пути к ним
% sudo nano /etc/paths
В открывшемся файле добавляем в конец файла строчку
/Library/Frameworks/Firebird.framework/Versions/A/Resources/bin
Затем последовательно жмем <Ctrl+O>, <Enter>, <Ctrl+X>. Это сохранит наши изменения и закроет файл.
Перелогиниваемся, чтобы система смогла видеть пути к утилитам сервера.
4. Проверяем работоспособность свежеустановленного сервера, запустив утилиту isql.
% isql
Use CONNECT or CREATE DATABASE to specify a databaseSQL>
Пишем строку коннекта с учетом того, что по умолчанию паролем для SYSDBA будет masterkey
Database: '127.0.0.1:employee', User: SYSDBA
SQL>
Теперь можно поменять дефолтный пароль на какой-нибудь свой, например на cooladmin
SQL> ALTER USER SYSDBA SET PASSWORD 'cooladmin';
# сохраняем изменения
SQL> commit;
# закрываем утилиту
SQL> quit;
Проверяем смену пароля (сначала пытаемся коннектиться со старым паролем, потом с новым)
% isql
Use CONNECT or CREATE DATABASE to specify a databaseStatement failed, SQLSTATE = 28000
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
# тут все в порядке
SQL> connect '127.0.0.1:employee' user SYSDBA password 'cooladmin';
Database: '127.0.0.1:employee', User: SYSDBA
SQL>
Database: '127.0.0.1:employee', User: SYSDBA
SQL>
Выходим из утилиты и продолжаем конфигурять дальше.
5. Создадим папку для базы данных
% mkdir test_db
и сделаем ее владельцем и владельцем всех вложенных в нее файлов группу firebird, которая автоматически создается с после установки сервера (эта группа имеет единственного юзера firebird)
Чтобы текущий пользователь тоже мог работать с этой папкой, можно/нужно внести его в эту группу
% sudo dseditgroup -o edit -a leyba -t user firebird
Проверим, является ли текущий юзер членом этой группы
% id leyba
uid=501(leyba)... <skiped>... 501(firebird) ...<skiped>...
6. Проверяем права доступа к нашей папке
% sudo -u firebird ls -la ~/test_db
Password:
total 0
drwxr-xr-x 2 leyba firebird 64 May 1 15:02 .
drwxrwxrwx@ 31 leyba staff 992 May 1 15:02 ..
7. Теперь можно создать тестовую базу в нашей папке (обратите внимание: путь к базе должен быть указан полностью(!), начиная от root-папки)
% isql
Use CONNECT or CREATE DATABASE to specify a databaseЕсли не указывать размер страницы и чарсет коннекта, то дефолтовые значения будут соответственно 8192 и NONE.
Database: 127.0.0.1:/Users/leyba/test_db/test_db.fdb
Owner: SYSDBA
PAGE_SIZE 8192
Number of DB pages allocated = 223
Number of DB pages used = 216
Number of DB pages free = 7
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 5
ODS = 13.1
Database not encrypted
Wire crypt plugin: ChaCha64
Creation date: May 1, 2025 15:23:25
Replica mode: NONE
Protocol version = 18
Default Character set: NONE
Publication: Disabled
SQL>quit;
Еще раз проверим права на владение папкой и файлом БД
Password:
total 3568
drwxr-xr-x 3 leyba firebird 96 May 1 15:23 .
drwxrwxrwx@ 31 leyba staff 992 May 1 15:02 ..
-rw-rw---- 1 root firebird 1826816 May 1 15:33 test_db.fdb
8. Напоследок зададим переменную окружения FBLIB, которую используют для своих целей некоторые компоненты (например, IBX by Tony Whyman в Лазарусе)
% sudo nano /etc/environment
В открывшемся файле добавляем строку (путь с текущей клиентской библиотеке)
FBLIB='/Library/Frameworks/Firebird.framework/Versions/A/Resources/lib/libfbclient.dylib'
Затем последовательно жмем <Ctrl+O>, <Enter>, <Ctrl+X>. Это сохранит наши изменения и закроет файл.
Перелогиниваемся, чтобы система смогла видеть переменную окружения.
===================================
Конструктивная критика приветствуется :)