RPM Nedir?

Linux Package Managers - Open Source Tutorials

Paket yöneticisi veya paket yönetim sistemi , bir bilgisayar için bilgisayar programlarını tutarlı bir şekilde yükleme, yükseltme, yapılandırma ve kaldırma sürecini otomatikleştiren bir yazılım araçları koleksiyonudur. Linux dağıtımlarına göre paket yöneticileri değişmektedir.

RPM-YUM-DNF 

RPM Paket Yöneticisi ücretsiz ve açık kaynaklı bir paket yönetim sistemidir. RPM adı, .rpm dosya biçimini ve paket yöneticisi programının kendisini ifade eder. RPM, öncelikle Linux dağıtımları için tasarlanmıştı; dosya formatı, Linux Standard Base'in temel paket formatıdır.

Yellowdog Updater, Modified, RPM Paket Yöneticisini kullanarak Linux işletim sistemini çalıştıran bilgisayarlar için ücretsiz ve açık kaynaklı bir komut satırı paket yönetimi yardımcı programıdır.

Dandified Yum; RPM tabanlı dağıtımlar için paket yöneticisidir. Yum'un yeni neslidir. Fedora 18 ile birlikte tanıtılmıştır ve Fedora'nın 22. sürümünden beri öntanımlı paket yöneticisidir.

OS: ORACLE, RHEL, CENTOS

RPM Paket Yöneticisi (rpm)

RPM Paket Yöneticisi (rpm), Red Hat tabanlı (veya türetilmiş) sistemlerdeki yazılım paketlerini yönetmek için gerekli araçtır.

Paketleri Yükleme

En temel işlem, aşağıdakilerle yapılabilecek bir paket kurmaktır. Aşağıdaki görseldeki gibi bir çok global firma artık linux desteği sağlamaktadır.

Burada PACKAGENAME adıdır. Yani yüklemek istediğiniz rpm paketi.

rpm -i PACKAGENAME

Paketleri Yükseltme

Sistemde bir paketin önceki bir sürümü varsa, -U parametresini kullanarak daha yeni bir sürüme yükseltebilirsiniz:

rpm -U PACKAGENAME

PACKAGENAME'İN önceki bir sürümü yüklü değilse, yeni bir kopyası yüklenir. 

Her iki işlemde de ayrıntılı bir çıktı elde etmek için -v parametresini (yükleme sırasında daha fazla bilgi gösterilir).

Paket Kaldırma

Yüklü bir paketi kaldırmak için  rpm ile birlikte  -e parametresini ve ardından kaldırmak istediğiniz paketin adına yazın.

rpm -e wget 

Bağımlı Paketleri Kaldırma

Kaldırma işlemi ayrıca bir bağımlılık denetimi de çalıştırır ve ona bağlı olan diğer tüm paketler de kaldırılmadıkça bir paket kaldırılamaz. Bunu yapmaya çalışırsanız, aşağıdaki gibi bir hata mesajı alacaksınız.

rpm -e unzip

hata: Başarısız bağımlılıklar

İşlemi tamamlamak için önce kaldırmak istediğinize bağlı paketleri kaldırmanız gerekir. Aynı anda birden çok paketi kaldırmak için birden çok paket adını rpm  aracına iletebilirsiniz.

Paket Bağımlılıklarla Başa Çıkmak

Çoğu zaman, bir paketin amaçlandığı gibi çalışması başkalarına bağlı olabilir. Örneğin, uzak bağlantı aracı dosyalarını açmak için kitaplıklara ihtiyacı olabilir.

rpm, bu bağımlılıkların sisteminizde yüklü olup olmadığını kontrol eder ve yüklü değilse paketi yükleyemez. Bu durumda, rpm neyin eksik olduğunu listeler. Ancak bağımlılıkları kendi başına çözemez.

Aşağıdaki örnekte, kullanıcı teamviewer için bir paket yüklemeye çalıştı, ancak bazı bağımlılıklar eksikti.

rpm -i teamviewer.rpm 

Bu bulmak için kullanıcıya kalmış. rpm paketleri karşılık gelen bağımlılıklara sahiptir ve bunları yükler.

Kurulu Paketleri Listeleme

Sisteminizde kurulu tüm paketlerin bir listesini almak için rpm -qa öğesini kullanın. Örneğin:

rpm -qa 

Tüm yüklü paketlerin sayısına bakabiliriz.

rpm -qa | wc -l 

Belirli bir paketi arayabilirsiniz.

rpm -qa | grep -i nano
rpm -qa | grep -i sudo

Paket Bilgilerini Alma

Yüklü bir paket hakkında sürüm numarası, mimarisi, yükleme tarihi, paketleyicisi, özeti vb. gibi bilgileri almak rpm -qi parametreleri ve ardından paket adını kullanın. Örneğin:

rpm -qi wget 

Kurulu Paketleri ve Paket İçeriklerini Listeleme

Kurulu bir paketin içinde hangi dosyaların bulunduğunun bir listesini almak için  rpm -ql parametreleri ve ardından paket adını kullanın. Örneğin:

rmp -ql wget 

Paket Bilgilerini Alma

Sürüm, mimari, bakımcı, bağımlılıklar ve daha fazlası gibi bir paketi yüklemeden önce hakkında bilgi almak için -qip  parametreyi ve ardından RPM dosyasının adını eklemeniz yeterlidir. Örneğin:

rpm -qip teamviewr.rpm 

Hangi Paketin Belirli Bir Dosyaya Sahip Olduğunu Bulma

Hangi yüklü paketin bir dosyaya sahip olduğunu bulmak için -qf ve ardından dosyanın tam yolunu kullanın. Örneğin:

rpm -qf /usr/bin/unzip 

Paket ve Çekirdek Güncelleme Almasını Engelleme

Sistemi yum aracılığıyla güncellerken çekirdeğin veya diğer paketlerin  Linux'ta güncellenmesini nasıl engelleyeceğimize bakalım. Test amaçlı ilk olarak sistemde kurulu olan bir paketi bulup, sonrasında güncelleme sonrası yükseltme alıp almayacağına bakıyorum. Görseldeki gibi openssh server güncelleme sonrası 8.0p1-5'ten 8.0p1-10'a yükselecek. Ancak ben güncellenmesini istemiyorum.

sudo rpm -qa | grep -i openssh-server
sudo yum update | grep -i openssh-server 

 İlgili konfigürasyon dosyamızı açıyorum.

sudo vi /etc/yum.conf 

Bu kısımda, güncelleme almasını istemediğimiz paketleri, başına exclude yazarak ekliyoruz. Sonlarına glob karakter olan asterisk “*” ekleyerek o paket ile ilgili tüm paketleri hariç tutabilirsiniz.

exclude=package package1 package2* 

 Dosyayı kayıt edip çıkış yapıyorum.

:wq!

İşletim sistemi versiyonlarına göre, paket yöneticileri değişebilir. O yüzden yum ve dnf paket yöneticilerini kullanarak paket yükseltmeye çalışıyorum. İşlemin başarılı olduğunu rahatlıkla görebiliyoruz.

sudo yum install nano
sudo dnf install openssh-server 

 Son olarak dosyayı tekrar açıp, sadece asterisk “*” ekleyiyorum. Artık sistemde hiç bir paket ve çekirdek güncellenemez hale geliyor.

sudo yum upgrade 
Blog'a Dön