CentOS 6 VPS’te Yum Depolarını Kurma ve Kullanma Rehberi
CentOS 6, kurumsal düzeyde sunucu ortamlarında hala aktif olarak kullanılabilen sağlam ve güvenilir bir işletim sistemidir. Bu sistemlerde yazılım paketlerini yönetmenin anahtarı, Yellowdog Updater, Modified (Yum) paket yöneticisi ve onun kullandığı depolardır (repositories). Bu rehberde, CentOS 6 VPS’inizde Yum depolarını nasıl anlayacağınızı, yöneteceğinizi, yeni depolar ekleyeceğinizi ve karşılaşabileceğiniz sorunları nasıl gidereceğinizi detaylı bir şekilde ele alacağız.
Yum, paketleri otomatik olarak bağımlılıklarıyla birlikte indirip kurmanızı, güncellemenizi veya kaldırmanızı sağlayan güçlü bir araçtır. Bu süreçte, paketlerin alındığı kaynaklara “depo” denir. Depolar, binlerce yazılım paketini barındıran sunuculardır ve Yum, bu sunucularla iletişim kurarak istediğiniz yazılımları bulur ve yönetir.
Neden Yum Depoları Önemlidir?
- Kolay Paket Yönetimi: Yazılım kurma, güncelleme ve kaldırma işlemlerini basitleştirir.
- Bağımlılık Çözümü: Bir yazılımın ihtiyaç duyduğu diğer yazılımları (bağımlılıkları) otomatik olarak tespit eder ve kurar.
- Güvenlik ve Güncellemeler: Sisteminizin en son güvenlik yamaları ve hata düzeltmeleriyle güncel kalmasını sağlar.
- Geniş Yazılım Yelpazesi: Resmi depoların yanı sıra üçüncü taraf depolar sayesinde çok çeşitli yazılımlara erişim imkanı sunar.
Temel Yum Komutları ve Kullanımı
Yum ile çalışmaya başlamadan önce, en sık kullanılan temel komutları bilmek önemlidir. Bu komutlar, paket yönetimi işlemlerinizin çoğunu kapsayacaktır.
Sisteminizi Güncelleme
Sisteminizdeki tüm yüklü paketleri en son sürümlerine güncellemek için kullanılır. Bu, güvenlik ve kararlılık açısından çok önemlidir.
sudo yum update -y
-y parametresi, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar, bu da etkileşimsiz güncellemeler için kullanışlıdır.
Paket Kurulumu
Belirli bir paketi sisteminize kurmak için kullanılır.
sudo yum install
Örneğin, Nginx web sunucusunu kurmak için:
sudo yum install nginx
Paket Kaldırma
Sistemden bir paketi ve onun bağımlılıklarını (eğer başka bir paket tarafından kullanılmıyorsa) kaldırmak için kullanılır.
sudo yum remove
Örneğin, Nginx’i kaldırmak için:
sudo yum remove nginx
Paket Arama
Bir anahtar kelimeye göre paket aramak için kullanılır.
yum search
Örneğin, “php” ile ilgili paketleri aramak için:
yum search php
Paket Bilgisi Görüntüleme
Bir paketin detaylı bilgilerini (sürüm, boyut, açıklama, depo kaynağı vb.) görüntülemek için kullanılır.
yum info
Depoları Listeleme
Etkin olan veya tüm tanımlı depoları listelemek için kullanılır.
yum repolist # Sadece etkin depoları listeler
yum repolist all # Tüm tanımlı depoları (etkin/devre dışı) listeler
Yum Önbelleğini Temizleme
Yum, indirdiği paketleri ve depo meta verilerini önbelleğinde saklar. Bazen bu önbellek bozulabilir veya eski bilgiler içerebilir. Önbelleği temizlemek, sorun giderme ve güncel depo bilgileri almak için faydalıdır.
sudo yum clean all
Yum Depolarını Anlamak
Yum depoları, CentOS sisteminizde /etc/yum.repos.d/ dizininde bulunan .repo uzantılı dosyalarda tanımlanır. Her bir dosya, bir veya daha fazla depo tanımı içerebilir. Bu dosyalar, Yum’un paketleri nereden indireceğini, GPG anahtarlarıyla nasıl doğrulayacağını ve depo hakkında diğer önemli bilgileri içerir.
Bir .repo Dosyasının Yapısı
Bir .repo dosyası genellikle aşağıdaki gibi bir yapıya sahiptir:
[depo_kimliği]
name=Depo Adı
baseurl=http://example.com/repo/centos/$releasever/$basearch/
#mirrorlist=http://example.com/repo/mirrorlist?release=$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=http://example.com/repo/RPM-GPG-KEY-example
Yukarıdaki parametrelerin anlamları:
[depo_kimliği]: Deponun benzersiz adıdır. Yum komutlarında bu kimliği kullanarak depoyu referans alırsınız (örn.--enablerepo=depo_kimliği).name: Deponun insanlar tarafından okunabilir adıdır.baseurl: Paketlerin indirileceği ana URL’yi belirtir. Genellikle$releasever(örneğin 6) ve$basearch(örneğin x86_64) gibi değişkenler içerir.mirrorlist:baseurlyerine kullanılabilen, otomatik olarak en yakın ve güncel yansıyı (mirror) bulan bir URL’dir. Genelliklebaseurlveyamirrorlist‘ten sadece biri aktif olur.enabled: Bu deponun etkin olup olmadığını belirler.1etkin,0devre dışı demektir.gpgcheck: Paketlerin GPG anahtarıyla doğrulanıp doğrulanmayacağını belirler. Güvenlik için1(etkin) olarak bırakılması şiddetle tavsiye edilir.gpgkey: Deponun GPG anahtarının URL’sini belirtir. Bu anahtar, indirilen paketlerin bütünlüğünü ve orijinalliğini doğrulamak için kullanılır.
Varsayılan CentOS Depoları
CentOS 6’da varsayılan olarak birkaç depo tanımlıdır. Bunlar genellikle CentOS-Base.repo, CentOS-Media.repo, CentOS-Vault.repo gibi dosyalarda bulunur.
cat /etc/yum.repos.d/CentOS-Base.repo
Bu komut, ana CentOS deposunun içeriğini size gösterecektir.
Yeni Bir Yum Deposu Ekleme
CentOS’un varsayılan depoları birçok yaygın yazılımı içerse de, bazen daha güncel sürümlere veya özel yazılımlara erişmek için üçüncü taraf depolar eklemeniz gerekebilir. En yaygın eklenen depolardan biri EPEL’dir.
EPEL (Extra Packages for Enterprise Linux) Deposunu Ekleme
EPEL, Fedora projesi tarafından sürdürülen ve RHEL tabanlı dağıtımlar (CentOS dahil) için ek paketler sağlayan bir depodur. Birçok popüler yazılım EPEL’de bulunur.
EPEL deposunu eklemenin en kolay yolu, EPEL yayın paketini kurmaktır:
sudo yum install epel-release
Bu komut, /etc/yum.repos.d/epel.repo dosyasını otomatik olarak oluşturacak ve gerekli GPG anahtarını içe aktaracaktır. Kurulumdan sonra depoyu kontrol edebilirsiniz:
yum repolist | grep epel
Üçüncü Taraf Depoları Manuel Olarak Ekleme (Örnek: Nginx)
Bazı yazılımların kendi resmi depoları vardır. Bu depoları eklemek için genellikle .repo dosyasını manuel olarak oluşturmanız gerekir.
Örnek olarak, Nginx’in en son stabil sürümünü kurmak için Nginx’in resmi deposunu ekleyelim:
- Depo dosyasını oluşturun:
sudo nano /etc/yum.repos.d/nginx.repo - Aşağıdaki içeriği dosyaya yapıştırın:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key$releasever(CentOS sürümü) ve$basearch(sistem mimarisi) değişkenleri Yum tarafından otomatik olarak çözümlenecektir. - GPG anahtarını içe aktarın: Nginx deposunun GPG anahtarını manuel olarak içe aktarmanız gerekebilir.
sudo rpm --import https://nginx.org/keys/nginx_signing.keyBu adımı atlamanız durumunda, Yum paket kurmaya çalıştığında bir GPG anahtarı hatası verecektir.
- Depoyu kontrol edin ve Nginx’i kurun:
yum repolist | grep nginx sudo yum install nginx
Yerel (Local) Yum Deposu Oluşturma
Bazen internet erişimi olmayan sunucular için veya özel geliştirilmiş paketleri dağıtmak için kendi yerel deponuzu oluşturmanız gerekebilir. Bu senaryo, paketleri bir sunucuya kopyalayıp, o sunucuyu bir depo olarak yapılandırmayı içerir.
createrepoaracını kurun:sudo yum install createrepo- Paketleriniz için bir dizin oluşturun:
sudo mkdir -p /var/www/html/localrepo - RPM paketlerinizi bu dizine kopyalayın:
sudo cp /path/to/your/packages/*.rpm /var/www/html/localrepo/ - Depo meta verilerini oluşturun:
sudo createrepo /var/www/html/localrepo/Bu komut, depodaki paketlerin indeksini oluşturan
repodatadizinini oluşturacaktır. - Bir web sunucusu (Apache veya Nginx) kurun ve yapılandırın: Yerel deponuzu diğer sunuculara veya aynı sunucuya HTTP üzerinden sunmak için bir web sunucusu gereklidir. Örnek olarak Apache:
sudo yum install httpd sudo service httpd start sudo chkconfig httpd on # Yeniden başlatmalarda otomatik başlaması için sudo chown -R apache:apache /var/www/html/localrepo # Apache'nin okuma izni olması için - Yerel depoyu sisteme ekleyin:
sudo nano /etc/yum.repos.d/local.repoİçeriği aşağıdaki gibi yapıştırın:
[localrepo] name=Local Repository baseurl=http://localhost/localrepo/ enabled=1 gpgcheck=0 # Yerel depoda genellikle GPG kontrolü devre dışı bırakılır, ancak isteğe bağlıdır.Başka bir sunucudan erişecekseniz,
localhostyerine web sunucusunun IP adresini veya alan adını kullanın. - Yum önbelleğini temizleyin ve depoyu kontrol edin:
sudo yum clean all yum repolist | grep localrepo
Depoları Yönetme ve Sık Karşılaşılan Sorunlar
Birden fazla depo eklediğinizde, bunları düzgün bir şekilde yönetmek ve olası sorunları gidermek önemlidir.
Depoları Etkinleştirme ve Devre Dışı Bırakma
Bir deponun .repo dosyasındaki enabled=1 parametresini enabled=0 olarak değiştirerek veya tam tersi şekilde depoyu etkinleştirebilir veya devre dışı bırakabilirsiniz. Bu, özellikle test amaçlı veya çakışmalara neden olan depolar için kullanışlıdır.
Geçici olarak bir depoyu etkinleştirmek veya devre dışı bırakmak için yum komutlarıyla birlikte --enablerepo veya --disablerepo parametrelerini kullanabilirsiniz:
sudo yum install --enablerepo=
sudo yum install --disablerepo=
Örneğin, EPEL’den bir paketi sadece bir seferlik kurmak için:
sudo yum install htop --enablerepo=epel
Depo Önceliklendirme
Birden fazla depo aynı paketin farklı sürümlerini içerdiğinde çakışmalar yaşanabilir. Bu durumlarda, Yum’un hangi depodan paket alacağını belirlemek için önceliklendirme kullanılır. CentOS 6’da bu genellikle yum-plugin-priorities paketi ile yapılır.
sudo yum install yum-plugin-priorities
Kurulduktan sonra, .repo dosyalarınıza priority= parametresini ekleyebilirsiniz. Daha düşük sayı daha yüksek öncelik anlamına gelir (1 en yüksek önceliktir). Örneğin:
[myrepo]
name=My Custom Repo
baseurl=http://example.com/repo
enabled=1
gpgcheck=1
gpgkey=http://example.com/repo/RPM-GPG-KEY
priority=5 # Varsayılan depolar genellikle 10-20 aralığındadır.
Sık Karşılaşılan Sorunlar ve Çözümleri
- GPG Anahtarı Hatası:
"Public key for .rpm is not installed"veya"GPG key retrieval failed: [Errno 14] problem making ssl connection"gibi hatalar alabilirsiniz.Çözüm: İlgili deponun GPG anahtarını manuel olarak içe aktarın (yukarıdaki Nginx örneğindeki gibi). Eğer SSL bağlantı hatası alıyorsanız, sunucunuzun internet bağlantısını ve DNS ayarlarını kontrol edin.
sudo rpm --import - “Nothing to do” veya “No package available”:
Yum, paketi bulamadığında bu mesajı verebilir.
Çözüm:
- Paket adını doğru yazdığınızdan emin olun.
- Deponun etkin olduğundan emin olun (
enabled=1). sudo yum clean allkomutunu çalıştırıp tekrar deneyin.- Depo
baseurlveyamirrorlistadreslerinin doğru ve erişilebilir olduğundan emin olun.
- Bağımlılık Sorunları:
Yum, bir paketi kurarken veya güncellerken bağımlılıkları çözemediğinde hatalar verebilir.
Çözüm:
yum deplistkomutu ile paketin bağımlılıklarını kontrol edin.- Çakışan depoları kontrol edin ve önceliklendirme kullanmayı düşünün.
- Bazen sorunlu bir paketi kaldırmak ve yeniden kurmak yardımcı olabilir.
yum history undoile önceki bir işlemi geri alabilirsiniz.
- Depo URL’sine Erişilemiyor:
"Could not retrieve mirrorlist"veya"Error: Cannot retrieve repository metadata (repomd.xml) for repository"gibi hatalar.Çözüm:
- VPS’inizin internet bağlantısını kontrol edin (
ping google.com). - Depo dosyasındaki
baseurlveyamirrorlistadresinin doğru olduğundan ve çalışır durumda olduğundan emin olun (bir web tarayıcısından erişmeyi deneyebilirsiniz). - Güvenlik duvarı (firewall) kurallarınızın depo sunucusuna erişimi engellemediğinden emin olun.
- VPS’inizin internet bağlantısını kontrol edin (
Sonuç ve Sıkça Sorulan Sorular (SSS)
Bu rehberde, CentOS 6 VPS’inizde Yum depolarını kurma, yönetme ve kullanmanın temel prensiplerini öğrendiniz. Yum, paket yönetimi için güçlü ve esnek bir araçtır ve depoları doğru bir şekilde yapılandırmak, sisteminizin güncel, güvenli ve istediğiniz yazılımlara sahip olmasını sağlar. Üçüncü taraf depolar ekleyerek veya kendi yerel deponuzu oluşturarak sisteminizin yeteneklerini genişletebilirsiniz.
Sıkça Sorulan Sorular
S: Yum ve DNF arasındaki fark nedir?
C: DNF (Dandified Yum), Yum’un daha modern bir halefidir ve Fedora ile CentOS/RHEL 8+ sürümlerinde varsayılan paket yöneticisidir. DNF, Yum’a göre daha iyi bağımlılık çözme algoritması, daha hızlı performans ve daha kullanıcı dostu bir arayüze sahiptir. CentOS 6’da DNF bulunmaz, sadece Yum kullanılır.
S: Depo dosyalarını düzenlerken nelere dikkat etmeliyim?
C: Depo dosyalarını düzenlerken her zaman dikkatli olun. Yanlış yapılandırma, sisteminizin paketleri bulamamasına veya yanlış paketleri kurmasına neden olabilir. Her zaman bir yedekleme (cp /etc/yum.repos.d/original.repo /etc/yum.repos.d/original.repo.bak) alın ve değişiklikleri yapmadan önce ne yaptığınızdan emin olun. Özellikle gpgcheck ve enabled parametreleri önemlidir.
S: GPG anahtarı neden önemlidir?
C: GPG (GNU Privacy Guard) anahtarları, indirilen paketlerin bütünlüğünü ve orijinalliğini doğrulamak için kullanılır. Bu, kötü niyetli kişilerin değiştirilmiş veya sahte paketleri sisteminize kurmasını engeller. Güvenlik için gpgcheck=1 olarak bırakılması ve anahtarın güvenilir bir kaynaktan alındığından emin olunması hayati önem taşır.
S: Bir paketin hangi depodan geldiğini nasıl anlarım?
C: Yüklü bir paketin hangi depodan geldiğini öğrenmek için yum info komutunu kullanabilirsiniz. Çıktıda “From repo:” satırı, paketin kaynağını gösterecektir. Ayrıca yum list installed | grep komutu da depoyu listeleyebilir.
S: Yum önbelleği nedir ve neden temizlemeliyim?
C: Yum önbelleği, indirilen paket RPM dosyalarını ve depo meta verilerini (paket listeleri, bağımlılık bilgileri) depolar. Bu, gelecekteki işlemleri hızlandırmak için yapılır. Ancak, bazen önbellek eski veya bozuk bilgiler içerebilir. sudo yum clean all komutunu kullanarak önbelleği temizlemek, Yum’un depo bilgilerini yeniden indirmesini ve olası sorunları gidermesini sağlayabilir.
