DEV Community

Duygu Ölmez for Açıklab

Posted on • Edited on

3 1

Debian Üzerinde Rpm (Centos 8) Deposu Oluşturma

Debian tabanlı bir işletim sistemi üzerinde rpm deposu aynalamak için aşağıdaki adımları izlemek yeterlidir.

1.Debian Sunucu

1.1.Gerekli paketler indirilir.

sudo apt install yum-utils createrepo
Enter fullscreen mode Exit fullscreen mode

1.2.İndirmek istenilen depolar debian sunucunuzdaki ls -al /etc/yum/repos.d/ dizinine .repo uzantısı ile eklenir ve yum update komutu çalıştırılır.

echo """[baseos]
name=CentOS Linux 8 - BaseOS
baseurl=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum/repos.d/Centos-8-BaseOS.repo

echo """[powertools]
name=CentOS Linux 8 - PowerTools
baseurl=http://mirror.centos.org/centos/8/PowerTools/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum/repos.d/Centos-8-PowerTools.repo

echo """[extras]
name=CentOS Linux 8 - Extras
baseurl=http://mirror.centos.org/centos/8/extras/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum/repos.d/Centos-8-Extras.repo

echo """[appstream]
name=CentOS Linux 8 - AppStream
baseurl=http://mirror.centos.org/centos/8/AppStream/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum/repos.d/Centos-8-AppStream.repo

echo """[devel]
name=CentOS Linux 8 - Devel
baseurl=http://mirror.centos.org/centos/8/Devel/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum/repos.d/Centos-8-Devel.repo
Enter fullscreen mode Exit fullscreen mode
root@repo:/# yum update
appstream | 4.3 kB  00:00:00     
appstream/primary_db | 2.7 MB  00:00:00     
baseos | 3.9 kB  00:00:00     
devel | 3.8 kB  00:00:00     
devel/primary_db | 8.4 kB  00:00:00     
extras | 1.5 kB  00:00:00     
Setting up Update Process
No Packages marked for Update
Enter fullscreen mode Exit fullscreen mode

1.3.rpm paketlerinizin indirileceği depolama alanı olşuturulur.

mkdir -p /storage/centos/8/{BaseOS,Devel,extras,AppStream,PowerTools}/x86_64/os/
Enter fullscreen mode Exit fullscreen mode

1.4.Depodaki paketler indirilir.

reposync -g -l -d -m -a x86_64 --repoid=baseos --newest-only --download-metadata --download_path=/storage/centos/8/BaseOS/x86_64/os/ --norepopath
reposync -g -l -d -m -a x86_64 --repoid=appstream --newest-only --download-metadata --download_path=/storage/centos/8/AppStream/x86_64/os/ --norepopath
reposync -g -l -d -m -a x86_64 --repoid=extras --newest-only --download-metadata --download_path=/storage/centos/8/extras/x86_64/os/ --norepopath
reposync -g -l -d -m -a x86_64 --repoid=devel --newest-only --download-metadata --download_path=/storage/centos/8/Devel/x86_64/os/ --norepopath
reposync -g -l -d -m -a x86_64 --repoid=powertools --newest-only --download-metadata --download_path=/storage/centos/8/PowerTools/x86_64/os/ --norepopath
Enter fullscreen mode Exit fullscreen mode

1.5.Paketler indirildikten sonra aşağıdaki şekilde görüntülenebilmelidir.

ls -al /storage/centos/8/extras/x86_64/os/Packages/
Enter fullscreen mode Exit fullscreen mode

1.6.Index dosyaları oluşturulmalıdır.

createrepo /storage/centos/8/BaseOS/x86_64/os/
createrepo /storage/centos/8/extras/x86_64/os/
createrepo /storage/centos/8/Devel/x86_64/os/
createrepo /storage/centos/8/AppStream/x86_64/os/
createrepo /storage/centos/8/PowerTools/x86_64/os/
Enter fullscreen mode Exit fullscreen mode

1.7.Depoyu yayınlayacak bir web servisi yüklenir, örneğin apache2.

apt install apache2
Enter fullscreen mode Exit fullscreen mode

1.8.Indirilen depo apache içerisine linklenir.

rm /var/www/html/index.html
ln -s /storage/centos /var/www/html/
Enter fullscreen mode Exit fullscreen mode

2. Crontab for reposync

2.1. Paketlerin düzenli olarak aynalanması için /etc/centos.sh adında bir dosya oluşturulur ve içerisine aşağıdaki betik yazılır

base_path=/storage/
for i in $( ls /etc/yum/repos.d/ | grep ".repo")
do
        echo $i
        destination_path=$(grep baseurl /etc/yum/repos.d/$i | grep -oP 'centos/(.*)'  | grep -oP '/(.*)' )
        destination_path=$(grep baseurl /etc/yum/repos.d/$i | grep -oP 'centos/(.*)' )
        echo $base_path$destination_path
        repo_id=$(grep -oP "\[\K(.*)"  /etc/yum/repos.d/$i | sed 's/.$//')
        echo $repo_id
        reposync -g -l -d -m -a x86_64 --repoid=$repo_id --newest-only --download-metadata --download_path=$base_path$destination_path --norepopath
        echo reposync -g -l -d -m -a x86_64 --repoid=$repo_id --newest-only --download-metadata --download_path=$base_path$destination_path --norepopath
        createrepo $base_path$destination_path
done  
Enter fullscreen mode Exit fullscreen mode

2.2. Betik çalıştırışır hale getirilir.

sudo chmod +x /etc/centos.sh
Enter fullscreen mode Exit fullscreen mode

2.3 sudo crontab -e komutu çalıştırılır ve açılan metin dosyasının en sonuna aşağıdaki cron satırı eklenir.

0 5 * * * /etc/centos.sh
Enter fullscreen mode Exit fullscreen mode

3.Centos 8 GPG Keyinin Web Sunucuna Eklenmesi

3.1. Deponun indirildiği centos dizinine gidilir. wget ile php anahtarı çekilir.

cd /storage/centos
wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official
Enter fullscreen mode Exit fullscreen mode

4.Centos 8 İstemci

4.1.Centos 8 üzerinde depoyu kullanabilmek için aşağıdaki formatta .repo dosyalarına depo sunucunuzu yazmanız yeterli.

echo """[baseos]
name=CentOS Linux 8 - BaseOS
baseurl=http://10.10.10.10/8/x86_64/BaseOS/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum.repos.d/Centos-8-BaseOS.repo

echo """[extras]
name=CentOS Linux 8 - Extras
baseurl=http://10.10.10.10/8/x86_64/extras/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum.repos.d/Centos-8-Extras.repo

echo """[appstream]
name=CentOS Linux 8 - AppStream
baseurl=http://10.10.10.10/centos/8/AppStream/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum.repos.d/Centos-8-AppStream.repo

echo """[devel]
name=CentOS Linux 8 - Devel
baseurl=http://10.10.10.10/centos/8/Devel/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum.repos.d/Centos-8-Devel.repo

echo """[powertools]
name=CentOS Linux 8 - PowerTools
baseurl=http://10.10.10.10/centos/8/PowerTools/x86_64/os/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial""" > /etc/yum.repos.d/Centos-8-PowerTools.repo
Enter fullscreen mode Exit fullscreen mode

4.2.Depo güncellenerek paket kurulumu yapılabilir.

sudo yum update
Enter fullscreen mode Exit fullscreen mode

Billboard image

Imagine monitoring that's actually built for developers

Join Vercel, CrowdStrike, and thousands of other teams that trust Checkly to streamline monitor creation and configuration with Monitoring as Code.

Start Monitoring

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

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay