Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Firebird 3 Π½Π° ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ вСрсии Π½Π° Linux: CentOS8 ΠΈ Ubuntu 19

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ опишСм минималния Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ дСйствия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ инсталиранС Π½Π° Firebird DBMS вСрсия 3.0 Π½Π° Π½ΠΎΠ²ΠΈ дистрибуции Π½Π° Linux. CentOS 8 ΠΈ Ubuntu 19 са ΠΈΠ·Π±Ρ€Π°Π½ΠΈ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ.

Π—Π° Π΄Π° β€žΠ΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚Π΅β€œ дистрибуцията Π½Π° Firebird Π΄ΠΎ Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° систСма, Π² Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π΅ ΠΈΠ·Π±Ρ€Π°Π½Π° опцията Π·Π° изтСглянС Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π° tar.gz Ρ‡Ρ€Π΅Π· Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΎΡ‚ официалния уСбсайт Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (firebirdsql.org).

Π—Π° Π½Π°ΠΉ-Π½Π΅Ρ‚ΡŠΡ€ΠΏΠ΅Π»ΠΈΠ²ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²ΠΎ Π² Π±ΠΈΡ‚ΠΊΠ°:

Π‘ΡŠΡ€Π·Π° инсталация

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»Π° /etc/sysctl.confΡ‡Ρ€Π΅Π· добавянС Π½Π° Ρ€Π΅Π΄Π°:

vm.max_map_count = 256000

Π—Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Ρ‚Π΅ настройката:

sudo sysctl -p /etc/sysctl.conf

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ инструкции сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚ Π·Π° CentOS 8 ΠΈ Ubuntu 19, Π½ΠΎ Π‘Π‘Π«Π›ΠšΠ ΠΈ ΠšΠΠ’ΠΠ›ΠžΠ“ посочСтС Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΎΡ‚ официалния уСбсайт Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Firebird Π·Π° изтСглянС Π½Π° дистрибуцията ΠΈ дирСкторията, Π² която дистрибуцията Ρ‰Π΅ бъдС Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСса Π½Π° изтСглянС.
Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° (ΠΌΠ°Ρ€Ρ‚ 2020 Π³.) Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π΅ Firebird 3.0.5 (Ρ‚ΡƒΠΊ Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° към 64-Π±ΠΈΡ‚ΠΎΠ²Π°Ρ‚Π° вСрсия).

CentOS 8

sudo yum -y install epel-release
sudo yum -y makecache
sudo yum -y install libicu libtommath tar
ln -s libncurses.so.5 
/usr/lib64/libncurses.so.5
ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
curl -L Π‘Π‘Π«Π›ΠšΠ|tar -zxC /tmp

Ubuntu 19

sudo apt-get -y install libncurses5 libtommath1
ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0
wget -O- Π‘Π‘Π«Π›ΠšΠ|tar -zxC /tmp

ДСйствитСлната инсталация Π½Π° Π‘Π£Π‘Π” Firebird:

cd /tmp/ΠšΠΠ’ΠΠ›ΠžΠ“
sudo ./install.sh

Ако искатС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΊΠ°ΠΊΠ²ΠΎ правят Ρ‚Π΅Π·ΠΈ дСйствия, ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ.

Основна част

ΠšΡ€Π°Ρ‚ΡŠΠΊ ΠΏΡ€Π΅Π°ΠΌΠ±ΡŽΠ»

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π²Π΅Ρ‡Π΅ Π΅ инсталирана Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° вСрсия ΠΈ Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ»ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈ копия.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ читатСлят ΠΈΠΌΠ° основни познания Π·Π° Linux ΠΈ Π‘Π£Π‘Π” Firebird.

ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π΅

На Π‘Π£Π‘Π” ΡΡŠΡ€Π²ΡŠΡ€Π° сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС отдСлят ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ сСкции Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (/tmp), Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈ.

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° сортиранС, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° β€žΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅β€œ Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (GTT) ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π·Π° наблюдСниС. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° сортиранС ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² /tmp, mon$-table Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ – Π² /tmp/firebird.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС β€žΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚β€œ (unlink) Π²Π΅Π΄Π½Π°Π³Π° слСд ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ β€žΠ²ΠΈΠΆΠ΄Π°Π½ΠΈβ€œ Π² списъка с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ - само Π² списъка с ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° процСси (ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ deleted):

sudo ls -lhF /proc/`pgrep firebird`/fd

Π’ списъка с псСвдодирСктории /proc/…/fd/ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ сС символни Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΈ дСйствитСлната информация Π·Π° Ρ„Π°ΠΉΠ»Π° сС Π΄Π°Π²Π° ΠΎΡ‚:

sudo stat -L /proc/`pgrep firebird`/fd/ΠΠžΠœΠ•Π 

ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΠžΠœΠ•Π  – дСскриптор (дСскриптор) Π½Π° Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΠΉΡ‚ΠΎ прСдставлява интСрСс.

ВмСсто Π΄Π° сС ΠΎΠ±Π°Π΄ΠΈΡ‚Π΅ Π½Π° "pgrep исполняСмый-Ρ„Π°ΠΉΠ»β€žΠœΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° процСса, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ интСрСсува.

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ /tmp ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠΎΠ½Π΅ 20-30 GB. Врябва Π΄Π° сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° сортиранитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ зависи само ΠΎΡ‚ количСството Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ ΠΈΠ»ΠΈ нСявно сортирани Π² заявката, ΠΈ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° β€žΡΡŠΠ·Π΄Π°Π΄Π΅β€œ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

БСкцията Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ трябва Π΄Π° ΠΏΠΎΠ±ΠΈΡ€Π° всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. плюс Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π½Π°ΠΉ-голСмия Ρ„Π°ΠΉΠ» с Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. НСобходимо Π΅ Π΄Π° сС Π²Π·Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ нарастванСто Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Π·Π° няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΠΏΡ€Π΅Π΄.

Π Π°Π·Π΄Π΅Π»ΡŠΡ‚ Π·Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈ трябва Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ Ρ€Π΅Π·Π΅Ρ€Π²Π΅Π½ Π°Ρ€Ρ…ΠΈΠ² Π½Π° всички Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ плюс Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π½Π°ΠΉ-голямата Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π–Π΅Π»Π°Ρ‚Π΅Π»Π½ΠΎ Π΅ Ρ‚ΠΎΠ·ΠΈ Ρ€Π°Π·Π΄Π΅Π» Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΈ място Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΠΉ-голямата Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Врябва Π΄Π° сС Π²Π·Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ нарастванСто Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈΡ‚Π΅ копия ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π½ΠΈΡ‚Π΅ Π°Ρ€Ρ…ΠΈΠ²ΠΈ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Π·Π° няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Firebird 3.0 DBMS ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ разпрСдСля ΠΈ освобоТдава систСмна ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΠΉΠ½Π°Ρ‚Π° фрагмСнтация. НапримСр, слСд ΠΊΠ°Ρ‚ΠΎ голям Π±Ρ€ΠΎΠΉ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΎΡ‚ ΡΡƒΠΏΠ΅Ρ€ΡΡŠΡ€Π²ΡŠΡ€Π° навСднъТ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ създаванС Π½Π° Π½ΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

ЀрагмСнтацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° сС управлява ΠΎΡ‚ систСмСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ vm.max_map_count, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ 64K. ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ стойността ΠΌΡƒ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ ΠΏΡŠΡ‚ΠΈ:

sudo sysctl vm.max_map_count=256000

Π’Π°ΠΊΠ° Ρ‡Π΅ Π½ΠΎΠ²Π°Ρ‚Π° стойност Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ систСмата сС рСстартира, Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ към Ρ„Π°ΠΉΠ»Π° /etc/sysctl.conf линия:

vm.max_map_count = 256000

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€, Π·Π° Π΄Π° Π΅ ясна ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° промяната Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡŠΡ€Π²ΠΎ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ настройкитС, записани Π² Π½Π΅Π³ΠΎ:

sudo sysctl -p /etc/sysctl.conf

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ

Π˜Π·ΠΏΡŠΠ»Π½ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Firebird 3.0 Linux Π‘Π£Π‘Π” зависят ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ncurses (libncurses.so.5), ICU (Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с вСрсията ΠΈ Π½Π΅ сС ΠΏΠΎΠΊΠ°Π·Π²Π° Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° ldd) ΠΈ Ρ‚ΠΎΠΌΠΌΠ°Ρ‚ (libtommath.so.0). Π—Π° Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ ΠΈ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚Π΅ Π°Ρ€Ρ…ΠΈΠ²Π° Π½Π° ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ°, Ρ‰Π΅ Π²ΠΈ трябва ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ gzip, tar ΠΈ curl ΠΈΠ»ΠΈ wget. ICU вСрсии, gzip, tar ΠΈ curl/wget – са Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ.

Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ зависи ΠΎΡ‚ систСмата ΠΈ ΠΎΡ‚ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² систСмата, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‰Π΅ Π³ΠΈ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΠΎ Π΅Π΄ΠΈΠ½.

CentOS 8

CentOS 8 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΠΎΠ² ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ – dnf ΠΈ сС Π½Π°Ρ€ΠΈΡ‡Π° "ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ" ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° yum. Въй ΠΊΠ°Ρ‚ΠΎ Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ няма Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ тях - Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‰Π΅ ΠΈΠΌΠ° yum.

АктуализирайтС кСша Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅: sudo yum makecache

ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ libtomath сС Π½Π°ΠΌΠΈΡ€Π° Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ E(xtra)P(ackages for)E(nterprise)L(inux) Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ провСрявамС Π΄Π°Π»ΠΈ Π²Π΅Ρ‡Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½:

yum -C repolist

ΠžΠΏΡ†ΠΈΡ "само ΠΎΡ‚ кСша" (-C ΠΈΠ»ΠΈ --cache-only) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅Π½ΡƒΠΆΠ½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ изтСгляния, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ yum ΠΏΠΎ-Π±ΡŠΡ€Π·. Ако Π² списъка няма Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° epel, инсталирайтС Π³ΠΎ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ кСша Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅:

sudo yum install epel-release &&
sudo yum makecache

ΠŸΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°ΠΌΠ΅ заявкитС, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΊΠ°Ρ‚ΠΎ провСрявамС стойноститС Π½Π° pgp ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ с Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ са извСстни ΠΎΡ‚ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ.

Ако ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° мСтаинформация Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ ΠΎΡ‚ https рСсурси, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Π° /etc/yum.repos.d/epel.repo, замСствайки https:// Π½Π° http:// ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° кСша.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π΅ слоТна, Π² примСрния ΠΈΠ·Ρ…ΠΎΠ΄ 32-битовият ΠΏΠ°ΠΊΠ΅Ρ‚ Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½):

yum -C list 
ncurses libicu libtommath 
gzip tar curl wget |
grep -v i686
Installed Packages
curl.x86_64 7.61.1-11.el8 @anaconda
gzip.x86_64 1.9-9.el8 @anaconda
ncurses.x86_64 6.1-7.20180224.el8 @anaconda
Available Packages
libicu.x86_64 60.3-1.el8 BaseOS
libtommath.x86_64 1.1.0-1.el8 epel
tar.x86_64 2:1.30-4.el8 BaseOS
wget.x86_64 1.19.5-8.el8_1.1 AppStream

Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° curl, gzip ΠΈ ncurses хостван Π² псСвдо-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° инсталатора (anaconda), ΠΈ tar – ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΎΡ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° инсталация Π½Π° систСмата. Основни вСрсии libncurses ΠΈ libtommath ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ: 6 ΠΈ 1 вмСсто ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ 5 ΠΈ 0. Ако ΡΡŠΡ‰ΠΈΡΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΅ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ инсталиран ΠΈ Π½Π°Π»ΠΈΡ‡Π΅Π½, Π·Π° Π½Π΅Π³ΠΎ Π΅ пусната актуализация. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ липсващитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ:

sudo yum install 
libicu libtommath tar

Ubuntu 19

ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ са ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ apt, apt‑get ΠΈ apt‑cache. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π° послСднитС Π΄Π²Π° са ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² скриптовС. Π˜ΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ вСрсията.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°, примСрният ΠΈΠ·Ρ…ΠΎΠ΄ сС ΡΡŠΠΊΡ€Π°Ρ‰Π°Π²Π° ΠΈ 32-Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ сС Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚):

apt list libncurses? libicu?? libtommath? 
gzip tar curl wget |
grep -v i386
curl 7.65.3-1
gzip 1.10-0 [upgradable…]
libicu63 63.2-2 [installed]
libncurses5 6.1
libncurses6 6.1 [installed,automatic]
libtommath1 1.1.0
tar 1.30 [installed]
wget 1.20.3 [installed]

ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ скоби ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ installed/upgradable – инсталиран. НаличСн, Π½ΠΎ Π½Π΅ Π΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½ ncurses5вмСсто curl инсталиран wget. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ липсващитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ:

sudo apt‑get install 
libncurses5 libtommath1

БъздаванС Π½Π° символни Π²Ρ€ΡŠΠ·ΠΊΠΈ

ΠžΡ‚ libtommath.so.1 ΠΈ libncurses.so.6 ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с libtommath.so.0 ΠΈ libncurses.so.5, Ρ‚ΠΎΠ³Π°Π²Π° Π·Π° Firebird Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ символни Π²Ρ€ΡŠΠ·ΠΊΠΈ към ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ вСрсии Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅.

Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΠΌΠ΅ libtommath.so.1 (libncurses.so.? Π½Π°ΠΌΠΈΡ€Π°Ρ‰ сС Π² ΡΡŠΡ‰Π°Ρ‚Π° дирСктория):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

/usr/lib/x86_64-linux-gnu/libtommath.so.1

НиС създавамС символни Π²Ρ€ΡŠΠ·ΠΊΠΈ.

CentOS:

sudo ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
sudo ln -s libncurses.so.6 
/usr/lib64/libncurses.so.5

Ubuntu:

sudo ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0

НСка ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π΅ слоТна, ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ са ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΈ):

ls -lhF 
$(dirname `find /usr -name libtommath.so.1`) |
grep "lib(ncurses|tommath).so."

CentOS:

libncurses.so.5 -> libncurses.so.6*
libncurses.so.6 -> libncurses.so.6.1*
libncurses.so.6.1*
libtommath.so.0 -> libtommath.so.1*
libtommath.so.1 -> libtommath.so.1.1.0*
libtommath.so.1.1.0*

Ubuntu:

libncurses.so.5 -> libncurses.so.5.9
libncurses.so.5.9
libncurses.so.6 -> libncurses.so.6.1
libncurses.so.6.1
libtommath.so.0 -> libtommath.so.1
libtommath.so.1 -> libtommath.so.1.1.0
libtommath.so.1.1.0

Π˜Π·Ρ‚Π΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Π·Π° разпространСниС Π½Π° Π‘Π£Π‘Π” Firebird.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈΡΡ‚ уСбсайт Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Firebird (firebirdsql.org) ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ към дистрибуции Π½Π° β€žΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈβ€œ вСрсии ΠΈ β€žΠ΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈβ€œ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ (ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки).

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈΡ‚Π΅ вСрсии Π½Π° Linux са Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈ (tar.gz) ΠΈ deb/rpm ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈΡ‚Π΅ са Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ само ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈ. Π©Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ "гСнСричния инсталатор" (generic installer ΠΎΡ‚ tar.gz).

ΠΡ€Ρ…ΠΈΠ²ΡŠΡ‚ Π½Π° компилацията трябва Π΄Π° бъдС ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ ΠΈ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½, Π½ΠΎ Π½ΠΈΠ΅ Ρ‰Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΌΠ΅ ΠΈ Π΄Π²Π°Ρ‚Π° процСса. Π Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π² /tmp,URL ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° към Π°Ρ€Ρ…ΠΈΠ²Π° Π·Π° изтСглянС.

ΠΊΡŠΠ΄Ρ€ΠΈΡ†Π°:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ curl ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ към stdout, Π½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° прСнасочвания ΠΈ добавямС "‑L", Π½ΠΎ wget, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ²: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° прСнасочвания, Π½ΠΎ записва Π΄Π°Π½Π½ΠΈ във Ρ„Π°ΠΉΠ» ΠΈ Π½ΠΈΠ΅ поставямС "‑O‑" Π—Π° tar посочСтС ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° gzip-filter ΠΈ дирСкторията, Π² която Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‰Π΅ сС появи ΠΏΠΎΠ΄ΠΎΠ±Π½Π° дирСктория Firebird‑3.0.5.33220‑0.amd64 с Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°: install.sh, buildroot.tar.gz ΠΈ manifest.txt.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Firebird

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ…ΠΌΠ΅ стойността Π½Π° систСмния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ vm.max_map_count, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π·Π° наличност ΠΈ инсталира Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ICU, ncurses ΠΈ tommath. Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ вСрсиитС Π½Π° ncurses ΠΈ tommath са ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ (libncures.so.5 ΠΈ libtommath.so.0) ΠΈ създадС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ символни Π²Ρ€ΡŠΠ·ΠΊΠΈ.

ДСйствитСлната инсталация Π΅ ΠΌΠ½ΠΎΠ³ΠΎ проста. ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π² дирСкторията, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π°Ρ€Ρ…ΠΈΠ²ΡŠΡ‚ Π·Π° разпространСниС Π½Π° Firebird, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π°Π΄Π°ΠΉΡ‚Π΅ Ρ„Π»Π°Π³Π° β€žΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΠΌβ€œ Π·Π° скрипта install.sh:

chmod +x install.sh

стартирайтС инсталационния скрипт:

sudo ./install.sh

Π‘ натисканС Π½Π° клавиша Enter ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°ΠΌΠ΅ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° инсталацията ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° заявката въвСТдамС ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° Π·Π° sysdba.

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡΡ‚ скрипт сС стартира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ systemd-ΠΌΠ΅Ρ€Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° firebird-superserver (Ρ‚ΠΈΡ…Π° Firebird 3.0 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°). Услугата Firebird Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° ΡΡƒΠΏΠ΅Ρ€ΡΡŠΡ€Π²ΡŠΡ€Π°: кСш Π½Π° страници ΠΎΡ‚ 2048 страници (Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ), Π±ΡƒΡ„Π΅Ρ€ Π·Π° сортиранС ΠΎΡ‚ 64 MB (сподСлСн) ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ само Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ вСрсия XNUMX. Π’ΠΈΠΆΡ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ firebird.conf:

grep -v ^# firebird.conf | grep -v ^$

Моля, ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π½ΠΎΠ²ΠΈΡ‚Π΅ стойности ΠΎΡ‚ firebird.conf Ρ‰Π΅ сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° само слСд рСстартиранС Π½Π° услугата Firebird.

ΠŸΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° стойности Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ трябва Π΄Π° сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ основни β€žΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Ρβ€œ: кСш страницата (Π·Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ), Π±ΡƒΡ„Π΅Ρ€ΡŠΡ‚ Π·Π° сортиранС (сподСлСн) ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° клиСнтски Π²Ρ€ΡŠΠ·ΠΊΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° управляватС само ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ Π΄Π²Π΅ - количСството ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° клиСнтски Π²Ρ€ΡŠΠ·ΠΊΠΈ зависи ΠΎΡ‚ броя ΠΈ тСкста Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈΡ‚Π΅ заявки, Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² заявкитС. ΠžΡ†Π΅Π½ΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° клиСнтската Π²Ρ€ΡŠΠ·ΠΊΠ° сС правят само Π΅ΠΌΠΏΠΈΡ€ΠΈΡ‡Π½ΠΎ ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС промСнят, ΠΊΠΎΠ³Π°Ρ‚ΠΎ клиСнтскитС прилоТСния ΠΈ/ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ сС промСнят.

Π—Π° ΡΡƒΠΏΠ΅Ρ€ΡΡŠΡ€Π²ΡŠΡ€ Π½Π° хостовС с малък ΠΎΠ±Π΅ΠΌ ΠΏΠ°ΠΌΠ΅Ρ‚ (Π΄ΠΎ 12-16 GB), Π½Π΅ трябва Π΄Π° отдСлятС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° ΠΈΠ»ΠΈ Π΅Π΄Π½Π° Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚ ΠΎΡ‚ ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ количСство RAM Π·Π° кСша Π½Π° страницитС ΠΈ Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° сортиранС.

Ако броят Π½Π° Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π΅ Π΅ фиксиран ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС промСня, общият Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° кСш ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° страницитС трябва Π΄Π° бъдС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° максималния Π±Ρ€ΠΎΠΉ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° кСша Π½Π° страницитС Π΅ посочСн Π² страници ΠΈ трябва Π΄Π° бъдС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅.

Π—Π° Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ към класичСската Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, трябва ΠΏΠΎΠ½Π΅ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ Π΄Π° посочитС ServerMode Π² firebird.conf, Π½Π°ΠΌΠ°Π»Π΅Ρ‚Π΅ кСша Π½Π° страницата Ρ‚Π°ΠΌ (Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 2K), Π½Π°ΠΌΠ°Π»Π΅Ρ‚Π΅ Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° сортиранС (общия допустим ΠΎΠ±Π΅ΠΌ Π½Π° всички Π²ΠΈΠ΄ΠΎΠ²Π΅, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° максималния Π±Ρ€ΠΎΠΉ Π²Ρ€ΡŠΠ·ΠΊΠΈ), Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ спрСтС ΠΌΠΎΠ΄ΡƒΠ»Π° firebird-superserver, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ стартирайтС устройството firebird-classic.socket.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° супСркласичСската Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° във Firebird 3.0 няма ΠΌΠ½ΠΎΠ³ΠΎ смисъл: β€žΠ½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ‚Ρ‚Π°β€œ Π΅ ΠΊΠ°Ρ‚ΠΎ ΡΡƒΠΏΠ΅Ρ€ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΡΡŠΡ‰ΠΈΡ ΠΎΠ±Ρ‰ Π±ΡƒΡ„Π΅Ρ€ Π·Π° сортиранС. Няма ΠΎΠ±Ρ‰ кСш Π½Π° страницитС ΠΈ "Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅" Π·Π° синхронизиранС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си са ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ класичСския.

Врябва Π΄Π° сС ΠΏΠΎΠΌΠ½ΠΈ, Ρ‡Π΅ във Firebird 3.0 някои ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ (кСш Π½Π° страници, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ някои Π΄Ρ€ΡƒΠ³ΠΈ) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π² databases.conf ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΎ Π·Π° всяка Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π—Π° ΡΡƒΠΏΠ΅Ρ€ΡΡŠΡ€Π²ΡŠΡ€ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΌΠ°Π»ΠΊΠ° стойност DefaultDbCachePages Π² firebird.conf ΠΈ инсталирайтС ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ кСшовС Π½Π° страници Π·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² databases.conf.

Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΡŠΠΏΡ€ΠΎΡΠΈ относно статията Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ писма Π½Π° нашия адрСс Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° [ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½].

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€