PostgreSQL 16.2 çevrimdışı kurulum dosyaları hazırlama
Öncelikle minimal rhel işletim sistemi kuruldu.
cd /tmp
yum install python3
Paketleri offline yüklenecek şekilde indirmek için aşağıdaki kod yazılır.
rpm -qa | grep python3 > python3_packages.txt
klasör açalım.
mkdir python3_rpm_repo
cd python3_rpm_repo
Klasör içerisinde aşağıdaki komutu çalıştırıyoruz.
while read -r package; do
>dnf download --resolve "$package"
>done < ../python3_packages.txt
bir önceki dizine gidelim.
cd ..
postgre sql kurulum dosyaları istenilen sürüm ve uygun işletim sistemi seçilerek aşağıdaki linkten indirilir.
Packages - PostgreSQL YUM Repository
Örnek olması açısından pgsql 16.2 sürümü rhel8.6 için kurulum dosyalarının linki aşağıdadır.
Kurulum dosyalarının indirileceği klasör oluşturulup içerisine rpm paketleri indirilir.
mkdir pg16_rpm_repo
cd pg16_rpm_repo
curl -O https://download.postgresql.org/pub/repos/yum/16/redhat/rhel-8-x86_64/postgresql16-libs-16.2-1PGDG.rhel8.x86_64.rpm
curl -O https://download.postgresql.org/pub/repos/yum/16/redhat/rhel-8-x86_64/postgresql16-16.2-1PGDG.rhel8.x86_64.rpm
curl -O https://download.postgresql.org/pub/repos/yum/16/redhat/rhel-8-x86_64/postgresql16-server-16.2-1PGDG.rhel8.x86_64.rpm
curl -O https://download.postgresql.org/pub/repos/yum/16/redhat/rhel-8-x86_64/postgresql16-contrib-16.2-1PGDG.rhel8.x86_64.rpm
Sonrasında sırasıyla aşağıdaki komutları çalıştırıyoruz. Buradaki komutları çalıştırdığımızda eksik dependencyler gözükecektir. Bu dependencyleri çevrimiçi yükleyip, çevrimdışı yüklenecek hale getireceğiz.
rpm -ivh postgresql16-libs-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-server-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-contrib-16.2-1PGDG.rhel8.x86_64.rpm
Bizim kullandığımız işletim sisteminde aşağıdaki dependencyler eksiktir. Ve bu dependencyleri yükleyeceğiz.
lz4
cd /tmp
sudo dnf install lz4
rpm -qa | grep lz4 > lz4_packages.txt
mkdir lz4_rpm_repo
cd lz4_rpm_repo
while read -r package; do
>dnf download --resolve "$package"
>
>done < ../lz4_packages.txt
perl
cd /tmp
sudo dnf install perl
rpm -qa | grep perl > perl_packages.txt
mkdir perl_rpm_repo
cd perl_rpm_repo
while read -r package; do dnf download --resolve "$package"; done < ../perl_packages.txt
Bundan sonra çevrimdışı kurulum için bütün kurulum dosyalarını dependencylerle birlikte tek bir klasörde topluyoruz.
cd ..
mkdir pg16_setup
mv -vi python3_rpm_repo pg16_setup
mv -vi pg16_rpm_repo pg16_setup
mv -vi perl_rpm_repo/ pg16_setup
mv -vi lz4_rpm_repo/ pg16_setup
tar -cvf pg16_setup.tar pg16_setup
Bundan sonra çevrimdışı kurulum yapılacak sunucuya bu tar dosyasını /tmp klasörüne kopyalıyoruz.
Sonrasında oluşturduğumuz tar dosyasını çıkarıyoruz.
cd /tmp
tar -xf pg16_setup.tar
cd pg16_setup
python3 kurulumunu yapalım.
cd python3_rpm_repo
rpm -Uvh ./*.rpm --nodeps --force
cd ..
dependency kurulumlarını yapalım.
cd lz4_rpm_repo/
rpm -Uvh ./*.rpm --nodeps --force
cd ..
cd perl_rpm_repo
rpm -Uvh ./*.rpm --nodeps --force
cd ..
postgre kurulumunu yapalım.
cd pg16_rpm_repo
rpm -ivh postgresql16-libs-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-server-16.2-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql16-contrib-16.2-1PGDG.rhel8.x86_64.rpm
cd ..
postgre konfigürasyonlarını yapalım
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
systemctl enable postgresql-16
systemctl start postgresql-16
systemctl status postgresql-16