Pythontr

husonet | Tarih: 03.01.2018

Linux Paket Yöneticileri

Birazda paket yöneticilerinden bahsedelim apt, yum, dnf, pkg

Uzun zamandır yazmak istediğim konulardan biride buydu. Koyu bir Debian taraftarı olmama rağmen yeri geliyor centos, ubuntu vb.. gibi sistemler üzerinde çalışmak zorunda kalabiliyoruz. Bu yazımda da bu paket yönetimi için bu makaleyi rehber oluşturmasını hedeflemeye çalışalım. Lütfen eksikler ve düzeltmeler için yorum bırakmaktan çekinmeyelim.


Çoğu modern Unix benzeri işletim sistemi, yazılım paketleri aranması ve yüklenmesi için merkezi bir mekanizma sunmaktadır. Yazılım genellikle depolarda saklanan paket halinde dağıtılır. Paketler, bir işletim sisteminin temel bileşenlerini, paylaşılan kütüphanelerini, uygulamalarını, servisler ve belgelerle birlikte ortak kullanır. Paketler İşlemleri genellikle Paket Yönetimi olarak adlandırılırlar.


Bir paket yönetim sistemi, sizin ihitiyaç duyduğunuz uygulamaları güvenli bir şekilde yüklemenizi sağlar. Ayrıca önceden yüklenmiş paketleri yükseltmek için araçlar da sağlar.


Sunucuları veya geliştirme ortamlarını yapılandırırken genellikle resmi depoların dışınada bakmak gerekebilir. Bir dağıtımın istikrarlı sürümündeki paketler, özellikle yeni veya hızlı değişen yazılımlar söz konusu olduğunda güncelliğini yitirmiş olabilir. Bununla birlikte, paket yönetimi, sistem yöneticileri ve geliştiricileri için çok önemli bir beceridir ve büyük dağıtımlar için paket yazılım zenginliği muazzam bir kaynaktır.


Bu yazımız, çeşitli dağıtımlardaki paketleri arama, kurma ve yükseltme ile ilgili temel bilgiler için hızlı bir referans olarak tasarlanmıştır ve bu bilgileri sistemler arasında geçiş yapmanıza yardımcı olmalıdır.


Paket Yönetim Sistemleri


Bir paket dosyası içinde genellikle, kurulum komutlarıyla birlikte, derlenmiş ikili dosyalar ve yazılımı oluşturan diğer kaynakları içeren bir dosya arşivleridir. Paketler, gereksinimleri, bunlarla beraber yüklemek ve çalıştırmak için gereken diğer paketlerin bir listesi de dahil olmak üzere değerli meta verileri saklar.


Her nekadar benzer yapılarda olsalarda, paketleme formatları ve araçları platforma göre değişir:


Operating SystemFormatAraçlar
Debian.debapt, apt-cache, apt-get, dpkg
Ubuntudebapt, apt-cache, apt-get, dpkg
CentOS.rpmyum
Fedora.rpmdnf
FreeBSDPorts, .txzmake, pkg

Debian, Ubuntu, Linux Mint ve Raspbian dağıtımlarında dosya formatı .deb uzantılıdır. Gelişmiş paket yönetimi olarak en çok kullanılan yöntem APT paket yönetimidir, bu paket yöneticisinde arama, kurulma ve güncelleme işlemleri rahatlıkla yapılabilmektedir.


Debian kaynaklı dağıtımların çoğu, geleneksel olarak daha özel olan apt-get ve apt-cache komutlarına ortak işlemler için birleştirilmiş bir arabirim sunar bu apt komutudur.


CentOS, Fedora ve Red Hat ailesinin diğer üyeleri RPM dosyalarını kullanmaktadır. CentOS'ta, yum hem bireysel paket dosyaları ve depoları ile etkileşim kurmak için kullanılır.


Fedora'nın son sürümlerinde, yum, yum'un arabiriminin çoğunu koruyarak modern bir çatal olan dnf olarak değiştirdi.


FreeBSD ise ikili paket sistemi pkg komutu ile yönetilir. FreeBSD ayrıca yerel bir dizin yapısı olan Ports Collection'ı ve kullanıcının Makefiles kullanarak doğrudan kaynak paketleri almasını, derlemesini ve kurmasını sağlayan araçlar sunmaktadır. Pkg kullanmak genellikle daha elverişlidir, ancak zaman zaman önceden derlenmiş bir paket kullanılamaz veya derleme zamanı seçeneklerini değiştirmeniz gerekebilir.


Linux Paketlerini Güncelleme


Çoğu sistem, paketlerin yerel bir veritabanını uzak depolardan temin etmektedir. Paketleri kurmadan veya güncellemeden depolar üzerinden gelişmiş paket yönetimleri üzerinden haraket etmek daha iyi bir seçim olacaktır.


SistemKomut
Debian / Ubuntusudo apt-get update yada sudo apt update
CentOSyum check-update
Fedoradnf check-update
FreeBSD Packagessudo pkg update
FreeBSD Portssudo portsnap fetch update

Linux Yüklü Paketlerin Güncellenmesi


Bir sistemde yüklü paketlerin güncellenmesini sağlamak bir paket sisteminin en zor işlemlerinden biridir, hem takip hem sıkıntısız olmalıdırlar. Ayrıca güncellemer esnasında yapılan bildirimleri mutlaka dikkatlice okumalı nelerin değişip değişmediğini görmeli ve ona göre onay verilmesi gerekmektedir. Aksi taktirde çalışan uygulamalarınızda sorunlar oluşabilir. En sık rastlanan sorunlar konfigürasyon dosyalarının yenilenmesinden kaynaklanır bu yüzden onayla çok önemlidir.


FreeBSD'de, yüklü portların güncellenmesi, önemli değişiklikler getirebilir veya manuel yapılandırma adımları gerektirebilir. Portmaster ile yükseltmeden önce /usr/ports/UPDATING görüntülemek en iyisidir.


-
SistemKomutNot
Debian / Ubuntusudo apt-get upgradeMümkünse, yalnızca yüklü paketleri günceller.
-sudo apt-get dist-upgradeYeni bağımlılıkları gidermek için paketler ekleyebilir veya kaldırabilir.
-sudo apt upgradeapt-get upgrade gibi.
-sudo apt full-upgradeapt-get dist-upgrade gibi.
CentOSsudo yum update
-
Fedorasudo dnf upgrade-
FreeBSD Packagessudo pkg upgrade-
FreeBSD Portsless /usr/ports/UPDATINGBağlantı noktaları 'PORT' için güncelleme notlarını görüntülemek için less kullanır (kaydırmak için ok tuşlarını kullanın, çıkmak için q tuşuna basın).
-cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -aPortmaster'ı yükler ve yüklü bağlantı noktalarını 'PORT' güncellemek için kullanır.

Linux Paketlerini Bulma


Bir çok dağıtım, paketler için arama yapmak için grafik ve menü arayüzü sunar. Bunlar kategorilendirme ve keşfetme için iyi yoldur. Bununla birlikte çoğu zaman hızlı bir paket bulmak ve uygulamak için konsol üzerinden aramayı tercih edebiliriz. Mesala ben genelde konsol uygulamalarını tercih ediyorum.



SistemKomutNot
Debian / Ubuntuapt-cache search search_string-
-apt search search_string-
CentOSyum search search_string-
-yum search all search_stringAçıklamayı da içeren tüm alanları arar.
Fedoradnf search search_string-
-dnf search all search_stringAçıklamayı da içeren tüm alanları arar.
FreeBSD Packagespkg search search_stringİsme göre arar.
-pkg search -f search_stringİsme göre arar, tam açıklamaları döndürür.
-pkg search -D search_stringAçıklamalarda arar
FreeBSD Portscd /usr/ports && make search name=packageİsme göre arar.
-cd /usr/ports && make search key=search_stringYorumları, açıklamaları ve bağımlılıkları arar.

Linux Belirli Bir Paket Hakkında Bilgi Görüntüleme


Yüklemelere başlamadan, paketlerin ayrıntılı açıklamalarını okumak genellikle yararlıdır. Paket içerikleri hakkında verilen bilgilerin dışında, sürüm numaraları ve paketin bağımlılıklarının bir listesi gibi meta verilerdir.


SistemKomutNot
Debian / Ubuntuapt-cache show packagePaket hakkında yerel olarak önbelleğe alınan bilgileri gösterir.
-apt show package-
-dpkg -s packageBir paketin mevcut kurulum durumunu gösterir.
CentOSyum info package-
-yum deplist packagePaket için bağımlılıkları listeler.
Fedoradnf info package-
-dnf repoquery --requires packagePaket için bağımlılıkları listeler.
FreeBSD Packagespkg info packageYüklü bir paket için bilgi gösterir.
FreeBSD Portscd /usr/ports/category/port && cat pkg-descr-

Linux Depodan Paket Yükleme


Bir paketin adını bildikten sonra, genelde onu ve bağımlılıklarını tek bir komutla yükleyebilirsiniz.


SistemKomutNot
Debian / Ubuntusudo apt-get install package-
-sudo apt-get install package1 package2 ...Listelenen tüm paketleri yükler.
-sudo apt-get install -y packageSormadan yüklemek için kullanılabilir. Kısaca evet 'yes' demenin kısa yolu.
-sudo apt install packageRenkli bir ilerleme çubuğu görüntüler.
CentOSsudo yum install package-
-sudo yum install package1 package2 ...Listelenen tüm paketleri yükler.
-sudo yum install -y packageyum, sormadan yüklemek için kullanılabilir. Kısaca evet 'yes' demenin kısa yolu.
Fedorasudo dnf install package-
-sudo dnf install package1 package2 ...Listelenen tüm paketleri yükler.
-sudo dnf install -y packagednf, sormadan yüklemek için kullanılabilir. Kısaca evet 'yes' demenin kısa yolu.
FreeBSD Packagessudo pkg install package-
-sudo pkg install package1 package2 ...Listelenen tüm paketleri yükler.
FreeBSD Portscd /usr/ports/category/port && sudo make installKaynaktan bir port yükler ve build eder.

Yerel Dosya Sisteminden Bir Paket Yükleme


Bazı yazılımlar resmi olarak işletim sistemi dağıtımları tarafından paketlenmeyebilir. Bu satın aldığımız bir yazılım yada yeni geliştirilen bir proje olabilir. Bu yazılımları web tarayıcımız üzerinden yada CURL programı ile konsol üzerinden indirebiliriz. Bu paketler tek bir komut ile sistemimize kolayca kurulabilir.


Debian ve türevleri dpkg türündeki dosyaları sisteminde işleyebilir bu tür dosyalar .deb uzantılıdırlar.


CentOS ve Fedora sistemlerinde, yum ve dnf ayrıca dosyaları yüklemek için kullanılır ve gerekli bağımlılıklarında kurulumlarını yapar.


SistemKomutNot
Debian / Ubuntusudo dpkg -i package.deb
-
-sudo apt-get install -y gdebi && sudo gdebi package.deb.deb paketini kurmak ve eksik bağımlılıkları almak için gdebi'yi yükler ve kullanır.
CentOSsudo yum install package.rpm-
Fedorasudo dnf install package.rpm-
FreeBSD Packagessudo pkg add package.txz-
-sudo pkg add -f package.txzYüklü olsa bile paketi yükler.

Linux Yüklü Paketlerin Kaldırılması


Bir paket yöneticisi, belirli bir paket tarafından hangi dosyaların yüklü olduğunu bildiğinden, yazılım artık gerekmedikçe bunları bir sistemden temiz bir şekilde kaldırabilir.



SistemKomutNot
Debian / Ubuntusudo apt-get remove package
-
-sudo apt remove package-
-sudo apt-get autoremoveGereksiz paketleri kaldırır.
CentOSsudo yum remove package-
Fedorasudo dnf erase package-
FreeBSD Packagessudo pkg delete package-
-sudo pkg autoremoveGereksiz paketleri kaldırır.
FreeBSD Portssudo pkg delete package-
-cd /usr/ports/path_to_port && make deinstallYüklü bir portu kaldırır.

APT Komutu


Debian ailesindeki dağıtımların yöneticileri genelde apt-get ve apt-cache kullanırlar. Etkileşimli kullanım için özel olarak tasarlanmış basitleştirilmiş apt arayüzü daha az bilinir. apt kullanılabilirlik artırmak için tasarlanmıştır.


Geleneksel Kullanımapt Kullanımı
apt-get updateapt update
apt-get dist-upgradeapt full-upgrade
apt-cache search stringapt search string
apt-get install packageapt install package
apt-get remove packageapt remove package
apt-get purge packageapt purge package

Paket Yöneticileri Yardım


Web üzerinde yer alan dökümantasyonlara ek olaran unix sistemlerde konsol üzerinden man uygulamasını kullanarak yardım alabileceğinizide unutmayın.


man page

man uygulamasında ok tuşlarıyla gezinebilirsiniz. Sayfa içinde metin aramak için / tuşlarına ve çıkmak için q tuşuna basarak çıkabilirsiniz.


SistemKomutNot
Debian / Ubuntuman apt-getYerel paket veritabanını güncelleme ve paketlerle çalışma.
-man apt-cacheYerel paket veritabanını sorgulama.
-man dpkgBireysel paket dosyaları ile çalışma ve yüklü paketleri sorgulama.
-man aptÇoğu temel işlemi daha özlü, kullanıcı dostu bir arayüzle çalışmak.
CentOSman yum-
Fedoraman dnf-
FreeBSD Packagesman pkgÖnceden derlenmiş ikili paketler ile çalışma.
FreeBSD Portsman portsPort koleksiyonu ile çalışmak.