Yum, RPM, Apt, Dpkg, Aptitude ve Zypper ile Linux Paket Yönetimi - Bölüm 9


Geçtiğimiz Ağustos ayında, Linux Vakfı, dünyanın her yerindeki sistem yöneticilerinin performansa dayalı bir sınav yoluyla, başarılı olduklarını göstermeleri için parlak bir şans olan LFCS sertifikasını (Linux Foundation Sertifikalı Sistem Yöneticisi) duyurdu. Linux sistemleri için genel operasyonel destek konusunda başarılı olma kapasitesine sahiptirler. Linux Foundation Sertifikalı Sistem Yöneticisi, etkili sistem desteği, birinci düzey sorun giderme ve izleme, gerektiğinde sorunların mühendislik destek ekiplerine iletilmesini sağlayacak uzmanlığa sahiptir.

Linux Temel Sertifikasyon Programı'nı açıklayan aşağıdaki videoyu izleyin.

Bu makale 10 öğretici uzun serinin 9. Bölümüdür, bugün bu makalede LFCS sertifika sınavı için gerekli olan Linux Paket Yönetimi hakkında size rehberlik edeceğiz.

Paket Yönetimi

Birkaç kelimeyle söylemek gerekirse, paket yönetimi, sistemdeki yazılımı yükleme ve sürdürme (buna güncelleme ve muhtemelen kaldırmayı da içerir) yöntemidir.

Linux'un ilk günlerinde programlar yalnızca kaynak kodu, gerekli kılavuz sayfaları, gerekli yapılandırma dosyaları ve daha fazlasıyla birlikte dağıtılıyordu. Günümüzde çoğu Linux dağıtıcısı, varsayılan olarak önceden oluşturulmuş programları veya paket adı verilen ve söz konusu dağıtım üzerinde kuruluma hazır olarak kullanıcılara sunulan program kümelerini kullanmaktadır. Ancak Linux'un harikalarından biri hala üzerinde çalışılacak, geliştirilecek ve derlenecek bir programın kaynak kodunu elde etme olanağıdır.

Paket yönetim sistemleri nasıl çalışır?

Belirli bir paket, paylaşılan kitaplık veya başka bir paket gibi belirli bir kaynağı gerektiriyorsa, bağımlı olduğu söylenir. Tüm modern paket yönetim sistemleri, bir paket kurulduğunda tüm bağımlılıklarının da kurulduğundan emin olmak için bazı bağımlılık çözümleme yöntemleri sağlar.

Paketleme Sistemleri

Modern bir Linux sistemine yüklenen yazılımların neredeyse tamamı internette bulunacaktır. Dağıtım satıcısı tarafından merkezi depolar aracılığıyla sağlanabilir (her biri dağıtım için özel olarak oluşturulmuş, test edilmiş ve bakımı yapılmış binlerce paket içerebilir) veya manuel olarak indirilip kurulabilen kaynak kodunda mevcut olabilir. .

Çünkü farklı dağıtım aileleri farklı paketleme sistemleri kullanır (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm için özel olarak oluşturulmuştur) openSUSE), bir dağıtıma yönelik bir paket başka bir dağıtımla uyumlu olmayacaktır. Ancak çoğu dağıtımın LFCS sertifikasının kapsadığı üç dağıtım ailesinden birine girmesi muhtemeldir.

Yüksek ve düşük seviyeli paket araçları

Paket yönetimi görevini etkili bir şekilde gerçekleştirmek için, iki tür kullanılabilir yardımcı programa sahip olduğunuzun farkında olmanız gerekir: düşük seviyeli araçlar (arka uçta asıl kurulum, yükseltme ve yükseltme işlemlerini gerçekleştirir). paket dosyalarının kaldırılması) ve üst düzey araçlar (bağımlılık çözümleme ve meta veri arama - “verilerle ilgili veriler” görevlerinin yerine getirilmesinden sorumlu olan) araçlar.

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Düşük seviyeli ve yüksek seviyeli araçların açıklamalarına bakalım.

dpkg, Debian tabanlı sistemler için düşük seviyeli bir paket yöneticisidir. *.deb paketlerini kurabilir, kaldırabilir, bunlar hakkında bilgi sağlayabilir ve oluşturabilir, ancak bunlara karşılık gelen bağımlılıkları otomatik olarak indirip yükleyemez.

Daha Fazla Bilgi Edinin: 15 dpkg Komut Örnekleri

apt-get, Debian ve türevleri için üst düzey bir paket yöneticisidir ve komut satırını kullanarak birden fazla kaynaktan bağımlılık çözümü de dahil olmak üzere paketleri almak ve yüklemek için basit bir yol sağlar. Dpkg'den farklı olarak apt-get, doğrudan *.deb dosyalarıyla değil, paketin özel adıyla çalışır.

Daha Fazlasını Okuyun: 25 apt-get Komut Örneği

aptitude, Debian tabanlı sistemler için başka bir üst düzey paket yöneticisidir ve yönetim görevlerini (paketleri yükleme, yükseltme ve kaldırma, ayrıca bağımlılık çözümlemesini otomatik olarak yönetme) hızlı ve kolay bir şekilde gerçekleştirmek için kullanılabilir. . Bir paketin çeşitli sürümlerine erişim sunmak gibi apt-get ve ek işlevlerle aynı işlevleri sağlar.

rpm, paketlerin düşük düzeyde işlenmesi için Linux Standard Base (LSB) uyumlu dağıtımlar tarafından kullanılan paket yönetim sistemidir. Tıpkı dpkg gibi paketleri sorgulayabilir, kurabilir, doğrulayabilir, yükseltebilir ve kaldırabilir ve RHEL ve CentOS gibi Fedora tabanlı dağıtımlar tarafından daha sık kullanılır.

Daha Fazla Bilgi: 20 rpm Komut Örnekleri

yum, RPM tabanlı sistemlere bağımlılık yönetimiyle birlikte otomatik güncelleme ve paket yönetimi işlevlerini ekler. Apt-get veya aptitude gibi üst düzey bir araç olan yum, depolarla çalışır.

Daha Fazlasını Okuyun: 20 yum Komut Örnekleri

Düşük Seviyeli Araçların Ortak Kullanımı

Düşük seviyeli araçlarla en sık yapacağınız görevler şunlardır:

1. Derlenmiş (*.deb veya *.rpm) dosyadan paket yükleme

Bu yükleme yönteminin dezavantajı, herhangi bir bağımlılık çözümlemesinin sağlanmamasıdır. Büyük olasılıkla, böyle bir paket dağıtımın depolarında bulunmadığında ve bu nedenle üst düzey bir araç aracılığıyla indirilip yüklenemediğinde, derlenmiş bir dosyadan bir paket yüklemeyi seçeceksiniz. Düşük seviyeli araçlar bağımlılık çözümlemesi yapmadığından, karşılanmayan bağımlılıklara sahip bir paket kurmaya çalıştığımızda hata vererek çıkacaklardır.

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

Not: OpenSUSE için oluşturulmuş bir *.rpm dosyasını CentOS'a yüklemeye çalışmayın veya tam tersi!

2. Derlenmiş bir dosyadan paketi yükseltmek

Yine, kurulu bir paketi yalnızca merkezi depolarda mevcut olmadığında manuel olarak yükselteceksiniz.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Kurulu paketlerin listelenmesi

Zaten çalışan bir sistemi ilk kez elinize aldığınızda, muhtemelen hangi paketlerin kurulu olduğunu bilmek isteyeceksiniz.

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

Belirli bir paketin kurulu olup olmadığını öğrenmek istiyorsanız, bu serinin Linux'ta dosyaları yönetme – Bölüm 1 bölümünde açıklandığı gibi yukarıdaki komutların çıktısını grep'e yönlendirebilirsiniz. mysql-common paketinin bir Ubuntu sisteminde kurulu olup olmadığını doğrulamamız gerektiğini varsayalım.

dpkg -l | grep mysql-common

Bir paketin kurulu olup olmadığını belirlemenin başka bir yolu.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

Örneğin sistemimizde sysdig paketinin kurulu olup olmadığını öğrenelim.

rpm -qa | grep sysdig

4. Bir dosyayı hangi paketin yüklediğini bulma
dpkg --search file_name
rpm -qf file_name

Örneğin, pw_dict.hwm hangi paket yüklü?

rpm -qf /usr/share/cracklib/pw_dict.hwm

Üst Düzey Araçların Ortak Kullanımı

Üst düzey araçlarla en sık yapacağınız görevler aşağıdaki gibidir.

1. Paket aranıyor

aptitude update, kullanılabilir paketlerin listesini günceller ve aptitude search, paket_adı için gerçek aramayı gerçekleştirir.

aptitude update && aptitude search package_name 

Tümünü ara seçeneğinde, yum paket_adı'nı yalnızca paket adlarında değil aynı zamanda paket açıklamalarında da arayacaktır.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

Adı sysdig olan bir dosyaya ihtiyacımız olduğunu varsayalım. Kurmamız gereken paketi bilmek için koşalım.

yum whatprovides “*/sysdig”

whatprovides, yum'a paketi aramasını söyler ve yukarıdaki normal ifadeyle eşleşen bir dosya sağlar.

zypper refresh && zypper search package_name		[On openSUSE]
2. Depodan paket kurulumu

Bir paketi kurarken, paket yöneticisi tüm bağımlılıkları çözdükten sonra kurulumu onaylamanız istenebilir. Güncelleme veya yenileme çalıştırmanın (kullanılan paket yöneticisine göre) kesinlikle gerekli olmadığını, ancak kurulu paketleri güncel tutmanın güvenlik ve bağımlılık nedenleriyle iyi bir sistem yöneticisi uygulaması olduğunu unutmayın.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Paketin çıkarılması

Kaldır seçeneği paketi kaldırır ancak yapılandırma dosyalarını olduğu gibi bırakır; temizleme işlemi ise programın tüm izlerini sisteminizden siler.
# yetenek paketi_adı kaldır/temizle
# yum paket_adı sil

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

Paket yöneticilerinin çoğu (hepsi olmasa da) varsayılan olarak, kaldırma işlemini gerçekleştirmeden önce işleme devam edip etmeyeceğinizden eminseniz sizi uyaracaktır. Bu yüzden gereksiz sorunlarla karşılaşmamak için ekrandaki mesajları dikkatlice okuyun!

4. Bir pakete ilişkin bilgilerin görüntülenmesi

Aşağıdaki komut doğum günü paketi hakkındaki bilgileri görüntüleyecektir.

aptitude show birthday 
yum info birthday
zypper info birthday

Özet

Paket yönetimi, bir sistem yöneticisi olarak halının altına süpüremeyeceğiniz bir şeydir. Bu makalede açıklanan araçları hemen kullanmaya hazır olmalısınız. LFCS sınavına hazırlanırken ve günlük görevleriniz için bunu faydalı bulacağınızı umarız. Yorumlarınızı veya sorularınızı aşağıya bırakmaktan çekinmeyin. En kısa sürede size geri dönüş yapmaktan büyük mutluluk duyacağız.