DEV Community

Ali Orhun Akkirman for Açıklab

Posted on

2

Oracle Linux Deposu olarak yerel PostgreSQL deposu oluşturmak

Yerel Oracle Linux deposu oluşturabilmek için öncelikle "/etc/yum.repos.d" altında "repoid"'si tanımlı olmalıdır.

Repo oluşturmak için altyapı paketi

Repo senkronize etmek için aşağıdaki paketin kurulu olduğundan emin olunmalı.

dnf install -y dnf-utils
Enter fullscreen mode Exit fullscreen mode

Sistemde tanımlı repo oluşturabilme

RepoID ekli olan OracleLinux'un mevcut repoları dışında bir repo eklenmesi gerekiyorsa herhangi bir makineye eklendiği gibi eklenmesi gerekmektedir. Bunun için örneğin PostgreSQL reposu ekleyebilmek için aşağıdaki komut kullanılarak gerekli imzalar hazırlanır.

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
yum module reset postgresql -y
yum module enable postgresql:13 -y
Enter fullscreen mode Exit fullscreen mode

PostgreSQL sürümlerine göre ayrı ayrı repolarda tutulduğu için 13 kurulması gerekiyorsa enable edilmesi gerekecektir.

PostgreSQL özelinde, normal repo kullanımlarında repo id'lerini bulabilmek için aşağıdaki komut kullanılabilir.

cat /etc/yum.repos.d/pgdg-redhat-all.repo  | grep "\["
Enter fullscreen mode Exit fullscreen mode

Örnek olarak "[pgdg13]" çıktısını kullanacağız.

Repoların yerel repo olarak indirilebilmesinin sağlanması

Daha önce farklı bir repo indirilmiş ise o klasöre veya yeni yönlendirilmesi gereken repolar var ise aşağıdaki gibi klasör oluşturularak repo adresi belirlenir.

mkdir -p /repodata/repos/postgresql
Enter fullscreen mode Exit fullscreen mode

Bu klasör altında senkronizasyon işleminin yapılması için ise aşağıdaki komut çalıştırılmalı

/usr/bin/reposync --newest-only --download-metadata --refresh --repoid=pgdg13 -p /repodata/repos/postgresql
Enter fullscreen mode Exit fullscreen mode

Sunucu üzerinden hizmet verilmesi

Bu adımdan sonra en son bağlanma işlemi yapılması gerekecek. Bu adımda daha önceden bir web sayfası hizmeti var ise o hizmet ile aynı adresten yayın yapılması gerekecektir. Bu bağlama işlemi çalışan sisteme aktarılması için gereklidir.

mkdir -p /var/www/html/repo/postgresql/pgdg13
ln -s /repodata/repos/postgresql/pgdg13/ /var/www/html/repo/postgresql/pgdg13/x86_64
mkdir /repodata/repos/logs
Enter fullscreen mode Exit fullscreen mode

Düzenli olarak çalıştırılması

Aşağıdaki betik yardımı ile belirlenecek aralıklarda senkronizasyon yapılması sağlanacaktır. /repodata/repos/scripts/repo_sync.sh dosyası olarak kayıt edilebilir

#!/bin/bash

LOG_FILE=/repodata/repos/logs/repo_sync_$(date +%Y.%m.%d).log

find /repodata/repos/logs/repo_sync* -mtime +5 -delete; >> $LOG_FILE 2>&1

/usr/bin/reposync --newest-only --download-metadata --refresh --repoid=pgdg13 -p /repodata/repos/postgresql >> $LOG_FILE 2>&1
Enter fullscreen mode Exit fullscreen mode

Düzenli aralıklarla çalışması için ise (örneğin her gece 01:00'de)

chmod u+x /repodata/repos/scripts/repo_sync.sh
0 1 * * * /repodata/repos/scripts/repo_sync.sh > /dev/null 2>&1
Enter fullscreen mode Exit fullscreen mode

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay