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
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
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
1.3.rpm paketlerinizin indirileceği depolama alanı olşuturulur.
mkdir -p /storage/centos/8/{BaseOS,Devel,extras,AppStream,PowerTools}/x86_64/os/
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
1.5.Paketler indirildikten sonra aşağıdaki şekilde görüntülenebilmelidir.
ls -al /storage/centos/8/extras/x86_64/os/Packages/
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/
1.7.Depoyu yayınlayacak bir web servisi yüklenir, örneğin apache2.
apt install apache2
1.8.Indirilen depo apache içerisine linklenir.
rm /var/www/html/index.html
ln -s /storage/centos /var/www/html/
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
2.2. Betik çalıştırışır hale getirilir.
sudo chmod +x /etc/centos.sh
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
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
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
4.2.Depo güncellenerek paket kurulumu yapılabilir.
sudo yum update