CentOS 7'de Yerel HTTP Yum Deposu Nasıl Kurulur


Yazılım deposu (kısacası "repo"), kullanıcıların paketleri alıp bilgisayarlarına yükleyebilecekleri, yazılım paketlerinin saklanması ve bakımının yapıldığı merkezi bir dosya depolama konumudur.

Depolar genellikle birden fazla kullanıcının erişebildiği bir ağdaki (örneğin internet) sunucularda depolanır. Ancak, bilgisayarınızda yerel bir depo oluşturup yapılandırabilir ve bu depoya tek kullanıcı olarak erişebilir veya LAN'ınızdaki (Yerel Alan Ağı) diğer makinelere erişime izin verebilirsiniz.

Yerel bir depo kurmanın bir avantajı, yazılım paketlerini yüklemek için internet bağlantısına ihtiyacınız olmamasıdır.

YUM (Yellowdog Updater Modified), Linux sistemlerini temel alan RPM (RedHat Paket Yöneticisi) için yaygın olarak kullanılan bir paket yönetim aracıdır ve Red Hat'te yazılım kurulumunu kolaylaştırır /CentOS Linux.

Bu makalede, CentOS 7 VPS'de HTTP (Nginx) web sunucusu üzerinden yerel YUM deposunun nasıl kurulacağını açıklayacağız. ve ayrıca istemci CentOS 7 makinelerinde yazılım paketlerini nasıl bulacağınızı ve yükleyeceğinizi de göstereceğim.

Test Ortamımız

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Adım 1: Nginx Web Sunucusunu Kurun

1. Öncelikle aşağıdaki gibi YUM paket yöneticisini kullanarak EPEL deposundan Nginx HTTP sunucusunu yükleyerek başlayın.

yum install epel-release
yum install nginx 

2. Nginx web sunucusunu kurduktan sonra, onu ilk kez başlatabilir ve sistem açılışında otomatik olarak başlamasını sağlayabilirsiniz.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Daha sonra, Nginx hizmetine yönelik web trafiğine izin vermek için 80 ve 443 bağlantı noktalarını açmanız, sistem güvenlik duvarı kurallarını gelen paketlere izin verecek şekilde güncellemeniz gerekir. aşağıdaki komutları kullanarak HTTP ve HTTPS'de.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

4. Artık aşağıdaki URL'yi kullanarak Nginx sunucunuzun çalışır durumda olduğunu doğrulayabilirsiniz; Varsayılan Nginx web sayfasını görüyorsanız her şey yolunda demektir.

http://SERVER_DOMAIN_NAME_OR_IP 

Adım 2: Yum Yerel Deposu Oluşturun

5. Bu adımda, yerel deponuzu oluşturmak, yapılandırmak ve yönetmek için gerekli paketleri kurmanız gerekir.

yum install createrepo  yum-utils

6. Ardından, paketleri ve ilgili bilgileri depolayacak gerekli dizinleri (yum depoları) oluşturun.

mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Ardından, CentOS YUM depolarını gösterildiği gibi yerel dizinlerle senkronize etmek için reposync aracını kullanın.

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Örnek Çıktı
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

Yukarıdaki komutlarda seçenek:

  • -g – indirme sonrasında GPG imza kontrolünde başarısız olan paketlerin kaldırılmasını sağlar.
  • -l – yum eklenti desteğini etkinleştirir.
  • -d – artık depoda bulunmayan yerel paketlerin silinmesine olanak sağlar.
  • -mcomps.xml dosyalarının indirilmesini sağlar.
  • --repoid – depo kimliğini belirtir.
  • --en yeni – reposync'e depolardaki her paketin yalnızca en son sürümünü çekmesini söyleyin.
  • --download-metadata – varsayılan olmayan tüm meta verilerin indirilmesine olanak sağlar.
  • --download_path – paketleri indirmenin yolunu belirtir.

8. Ardından, tüm paketlerin yerel olarak senkronize edildiğinden emin olmak için yerel dizinlerinizin içeriğini kontrol edin.

ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

9. Şimdi aşağıdaki komutları çalıştırarak yerel depolar için yeni bir depo verisi oluşturun; burada -g işareti, belirtilen kullanılarak paket grubu bilgilerini güncellemek için kullanılır. .xml dosyası.

createrepo -g comps.xml /var/www/html/repos/base/  
createrepo -g comps.xml /var/www/html/repos/centosplus/	
createrepo -g comps.xml /var/www/html/repos/extras/  
createrepo -g comps.xml /var/www/html/repos/updates/  

10. Depoların ve içlerindeki paketlerin bir web tarayıcısı aracılığıyla görüntülenmesini sağlamak için, gösterildiği gibi depolarınızın kökünü işaret eden bir Nginx sunucu bloğu oluşturun.

vim /etc/nginx/conf.d/repos.conf 

repos.conf dosyasına aşağıdaki yapılandırmayı ekleyin.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Dosyayı kaydedin ve kapatın.

11. Ardından Nginx sunucunuzu yeniden başlatın ve aşağıdaki URL'yi kullanarak depoları bir web tarayıcısından görüntüleyin.

http://repos.test.lab

Adım 3: Depoları Senkronize Etmek ve Oluşturmak için Bir Cron İşi Oluşturun

12. Ardından, güncellemeleri ve güvenlik yamalarını almak için yerel depolarınızı resmi CentOS depolarıyla otomatik olarak senkronize edecek bir cron işi ekleyin.

vim /etc/cron.daily/update-localrepos

Bu komutları betiğe ekleyin.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

Komut dosyasını kaydedin, kapatın ve uygun izinleri ayarlayın.

chmod 755 /etc/cron.daily/update-localrepos

Adım 4: İstemci Makinelerde Yerel Yum Deposunu Kurun

13. Şimdi CentOS istemci makinelerinizde, yerel depolarınızı YUM yapılandırmasına ekleyin.

vim /etc/yum.repos.d/local-repos.repo

Aşağıdaki yapılandırmayı kopyalayıp local-repos.repo dosyasına yapıştırın (gerektiğinde değişiklik yapın).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

Dosyayı kaydedin ve yerel YUM aynalarınızı kullanmaya başlayın.

14. Ardından, istemci makinelerdeki mevcut YUM depoları listesinde yerel depolarınızı görüntülemek için aşağıdaki komutu çalıştırın.

 yum repolist
OR
yum repolist all

Bu kadar! Bu yazımızda CentOS 7 üzerinde yerel YUM deposunun nasıl kurulacağını anlattık. Bu kılavuzu faydalı bulduğunuzu umuyoruz. Herhangi bir sorunuz veya paylaşmak istediğiniz başka düşünceleriniz varsa aşağıdaki yorum formunu kullanın.