Centos Local Yum Repository Oluşturma ve Kurulumu
7 min read

Centos Local Yum Repository Oluşturma ve Kurulumu

Centos Local Yum Repository Oluşturma ve Kurulumu

Linux’ta repository, paketlerin depolandığı merkezi bir yazılım veritabanıdır. Linux dağıtımları, sistem ve yaygın olarak kullanılan yazılımlar için merkezi bir havuza sahiptir. Bu havuzlardan genel olarak kullanılanlara internet üzerinden erişebilir veya kendi deponuzu (repository) oluşturabiliriz. İnternetten bağımsız local bir repositoryi nasıl oluşturabileceğimizi bu yazımızda göstereceğiz.

Çoğu zaman sistem yöneticilerinin özel bir yazılım paketine veya ağ bant genişliğini yönetmeye ihtiyacı olabilir. Bu nedenlerle, yeni bir özel yerel depo kurmaları gerekir. Yum (YellowDog Updater, Modified), RPM paket dosyaları için yerel bir depodur. Bu paketler, Linux dağıtımları için mevcut yazılımları sıkıştırır. Depo ile yerel bir diskte veya uzaktan paketleri indirebilir, kurabilir ve tutabilirsiniz. Hadi başlayalım.

1. Local Repository İçin Gerekenler

  • root veya sudo ayrıcalıklarına sahip bir kullanıcı hesabına erişim
  • Bir terminal penceresine/komut satırına erişim (Menü > Uygulamalar > Yardımcı Programlar > Terminal)
  • Varsayılan olarak yüklenen YUM (Yellowdog Updater Modified) paket yöneticisi

2. CentOS’ta Yum Deposu Kurmak ve Yapılandırma

Önkoşulları sağladıktan sonra hızlıca repomuzu kurmaya başlayalım.

2.1. Ağ Erişimini Yapılandırma

İlk olarak, bir yum deposunu barındırmak, sistemi ağ erişimi için yapılandırmanızı gerektirir. Yum, dosyaları genellikle FTP veya HTTP üzerinden teslim eder. Ancak, her ikisini de yapılandıramazsınız, bu nedenle hangi yöntemi kullanmak istediğinize karar vermek için bir dakikanızı ayırın.

Sisteminiz zaten Apache ile bir web sunucusu veya vsftpd ile bir FTP sunucusu olarak yapılandırılmışsa, Adım 2’ye geçebilirsiniz.

HTTP’yi kullanmak için Apache web hizmetleri paketini şu komutla kurun:

sudo yum install httpd

Bunun yerine FTP kullanacaksanız, vsftpd yazılım paketini aşağıdakilerle yükleyin:

sudo yum install vsftpd

Ardından kurduğunuz HTTP veya FTP servisini başlatarak otomatik başlangıca ekleyiniz.

sudo systemctl enable --now httpd

veya

sudo systemctl enable --now vsftpd

Son olarak güvenlik duvarınızda doğru bağlantı noktalarını açtığınızdan emin olun (HTTP için Bağlantı Noktası 80, FTP için Bağlantı Noktası 21).

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

veya

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-service=ftp
firewall-cmd --reload

Ardından demo sayfasını repoyu kurmaya çalıştığınız ip adresinde görmeniz gerekmektedir.

1224x776

NOT: Apache yerine Nginx‘i web sunucusu olarak da kullanabilirsiniz.

2.2. Yum Yerel Deposu Oluşturun

createrepo yazılım paketi, yararlı bir araçtır. Bu yazılım, birkaç .rpm dosyasını bir depoda bir araya toplar. Aşağıdakileri girerek yazılımı yükleyin:

sudo yum install createrepo

Ardından, sisteminize depoları yönetmek için daha iyi bir araç kutusu sağlamak adına yum-utils‘i kurun. Aşağıdakileri girerek yum-utils’i kurabilirsiniz:

sudo yum install yum-utils

2.3. Repository’leri Depolamak için Bir Dizin Oluşturun

Ardından, aşağıdakileri kullanarak bir HTTP deposu için bir dizin oluşturun. Repo ismini özgürce belirleyebilirsiniz:

sudo mkdir –p /var/www/html/repos

Alternatif olarak, aşağıdakini yazarak bir FTP dizini oluşturun:

sudo mkdir –p /var/ftp/repos

2.4. HTTP Repository’leri Senkronize Etmek

Bu yazıda kullanabileceğiniz iki yöntemden ilkine geldik. İlki resmi Centos repolarını kendi reponuza senkronize etmek ve artık her seferinde internet bant genişliğini kullanmak yerine kendi kurduğunuz repoları kullanmaktır. İkincisi ise sadece kullanmak/kullandırmak istediğiniz paketleri kendi reponuza atmak ve kullanıcıların erişebileceği paketleri sınırlandırmaktır. İlkiyle başlayalım:

Sunucunuza resmi CentOS Repository’lerin yerel bir kopyasını indirin. Bu, aynı ağdaki sistemlerin güncellemeleri daha verimli bir şekilde yüklemesini sağlar. Depoları indirmek için şu komutları kullanın:

sudo reposync -g -m --delete --repoid=base --newest-only --download-metadata -p /var/www/html/repos/
sudo reposync -g -m --delete --repoid=centosplus --newest-only --download-metadata -p /var/www/html/repos/
sudo reposync -g -m --delete --repoid=extras --newest-only --download-metadata -p /var/www/html/repos/
sudo reposync -g -m --delete --repoid=updates --newest-only --download-metadata -p /var/www/html/repos/

Böylece resmi basecentosplusextras ve updates repolarını kendi localimize indirmiş olduk. Kullandığımız parametrelerin açıklamaları ise şu şekildedir;

  • –g – CentOS’ta bir GPG kontrolünden geçemeyen paketleri kaldırmanıza izin verir
  • –m – paket gruplarını işleve göre paketlemek için yararlı olan comps.xml dosyalarını indirmenize izin verir
  • –-delete – resmi repository’de artık mevcut olmayan yerel paketleri silmenizi sağlar
  • ––repoid – repository kimliği
  • ––newest-only – yalnızca en son paket sürümünü indirir, havuzun boyutunu yönetmeye yardımcı olur
  • --download-metadata – varsayılan olmayan meta verileri indir
  • –p – paketlerin kaydedileceği konumu belirtir
800x317

Örnekte extras reposunu çektiğimizde repo dizinimizin içeriği şu şekilde olacaktır.

800x350

FTP kullanıyorsanız, yukarıdaki komutlardaki indirme dizinini FTP dizini olarak değiştiriniz. Kurulum CD’nizi depolar için kaynak olarak da kullanabilirsiniz. Bunun için;

Önce CD’yi bağlayın, ardından dosyaları aşağıdaki komutlarla birlikte FTP dizininize kopyalayın:

cp /media/packages/* /var/ftp/repos

2.5. Sadece Belirli Paketlerle Repository Oluşturmak

Bir üstteki maddede resmi repoları localinize nasıl çekecebileceğinizi gösterdik. Şimdi ise ikinci kullanım olarak anlattığımız yöntemi, yani, sadece istediğiniz paketleri repomuza nasıl koyabileceğimizi göstereceğiz. Bunun için örnek olarak samba paketini indirerek repomuza koyacağız.

  1. Paketleri koyacağımız dizini ve bu dizin içinde Packages isimli dizini oluşturalım
sudo mkdir –p /var/www/html/repos/depo/Packages
  1. Koyacağımız paketi bağımlılıkları ile birlikte bu dizine indirelim.
yum install --downloadonly --downloaddir=/var/www/html/repos/depo/Packages samba

Bu işlemin sonucunda depo dizinimiz şu şekilde olacaktır.

800x221

Ve tarayıcıda şu şekilde görünecektir.

838x307

2.6. Yeni Bir Repository Oluşturun

Dizinlerimizi oluşturduktan ve paketlerimizi bu dizinlere koyduktan sonra artık ilgili dizinleri repository olarak yayınlamaya başlamanının vakti geldi demektir. Bunun için için createrepo yardımcı programını kullanacağız.

sudo createrepo /var/www/html

Benzer şekilde, FTP için bir havuz oluşturmak için aşağıdakini giriniz:

sudo createrepo /var/ftp
800x244

NOT: Eğer daha önce createrepo komutuyla reponuzu oluşturmuş ve daha sonrasında sadece yeni paketler eklemişseniz, repo bilgilerini güncellemek için şu komutu çalıştırmanız yeterli olacaktır:

sudo createrepo --update /var/www/html

2.7. İstemci Sisteminde Yerel Yum Deposu Kurulumu

Artık elimizde local repository’lerimiz var ve istemcilerin bu repository’leri kullanmasını sağlamamız gerekiyor. Bunun için istemci makinesindeki resmi repo adreslerini kaldırarak yerel Yum Depo adresimizi eklemeliyiz.

1. İlk olarak, istemci sistemine geçin ve root veya sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açın.
2. Ardından, yum’un yanlış yerden indirilmesini engellemeniz gerekecek. Bunu yapmak için varsayılan yum deposu dosyalarını aşağıdaki komutla taşıyın:

mv /etc/yum.repos.d/*.repo /tmp/

Bu komut, dosyaları /tmp/ dizininde yedek olarak saklar. İstediğiniz başka bir konumla değiştirebilirsiniz.

3. Yeni bir yapılandırma dosyası oluşturun ve düzenleyin:

sudo nano /etc/yum.repos.d/remote.repo

Sistem, bir metin düzenleyicide yeni bir dosya açmalıdır.

4. Yeni dosyaya şu satırları giriniz. IP adresini repository’inizi kurduğunuz sunucunuzun IP adresiyle değiştiriniz:

[remote]
name=Kerteriz Depo Apache
baseurl=http://192.168.1.10
enabled=1
gpgcheck=0

Eğer FTP için yapılandırıyorsanız, bunun yerine aşağıdakini kullanın. IP adresini repository’inizi kurduğunuz sunucunuzun IP adresiyle değiştiriniz:

[remote] 
name=Kerteriz Depo FTP
baseurl=ftp://192.168.1.10
enabled=1
gpgcheck=0

5. Son olarak dosyayı kaydedin ve çıkın.

2.8. Yapılandırmayı Test Edin

Hala istemci sistemdeyken, yum paket yöneticisi ile bir paket kurmak için bir komut çalıştırın:

sudo yum install samba

Sistem buna göre sunucunuza ulaşmalı ve yazılımı yüklemelidir.

800x516

3. Sonuç

Bu adımları izledikten sonra artık CentOS işletim sistemi yüklü cihazınında yerel bir YUM deposunu nasıl kuracağınızı artık öğrendiniz. Varsayılan depoları indirmeye (veya CD’den kopyalamaya) ek olarak, diğer yazılım paketlerini de depolama klasörünüze kopyalayabilirsiniz. Bu, kullanıcıların yazılıma erişip yükleyebilecekleri basit ve merkezi bir konum sağlar.