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 System | Format | Araçlar |
Debian | .deb | apt, apt-cache, apt-get, dpkg |
Ubuntu | deb | apt, apt-cache, apt-get, dpkg |
CentOS | .rpm | yum |
Fedora | .rpm | dnf |
FreeBSD | Ports, .txz | make, 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.
Sistem | Komut |
Debian / Ubuntu | sudo apt-get update yada sudo apt update |
CentOS | yum check-update |
Fedora | dnf check-update |
FreeBSD Packages | sudo pkg update |
FreeBSD Ports | sudo 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.
Sistem | Komut | Not |
Debian / Ubuntu | sudo apt-get upgrade | Mümkünse, yalnızca yüklü paketleri günceller. |
- | sudo apt-get dist-upgrade | Yeni bağımlılıkları gidermek için paketler ekleyebilir veya kaldırabilir. |
- | sudo apt upgrade | apt-get upgrade gibi. |
- | -sudo apt full-upgrade | apt-get dist-upgrade gibi. |
CentOS | sudo yum update | - |
Fedora | sudo dnf upgrade | - |
FreeBSD Packages | sudo pkg upgrade | - |
FreeBSD Ports | less /usr/ports/UPDATING | Bağ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 -a | Portmaster'ı 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.
Sistem | Komut | Not |
Debian / Ubuntu | apt-cache search search_string | - |
- | apt search search_string | - |
CentOS | yum search search_string | - |
- | yum search all search_string | Açıklamayı da içeren tüm alanları arar. |
Fedora | dnf search search_string | - |
- | dnf search all search_string | Açıklamayı da içeren tüm alanları arar. |
FreeBSD Packages | pkg 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_string | Açıklamalarda arar |
FreeBSD Ports | cd /usr/ports && make search name=package | İsme göre arar. |
- | cd /usr/ports && make search key=search_string | Yorumları, 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.
Sistem | Komut | Not |
Debian / Ubuntu | apt-cache show package | Paket hakkında yerel olarak önbelleğe alınan bilgileri gösterir. |
- | apt show package | - |
- | dpkg -s package | Bir paketin mevcut kurulum durumunu gösterir. |
CentOS | yum info package | - |
- | yum deplist package | Paket için bağımlılıkları listeler. |
Fedora | dnf info package | - |
- | dnf repoquery --requires package | Paket için bağımlılıkları listeler. |
FreeBSD Packages | pkg info package | Yüklü bir paket için bilgi gösterir. |
FreeBSD Ports | cd /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.
Sistem | Komut | Not |
Debian / Ubuntu | sudo apt-get install package | - |
- | sudo apt-get install package1 package2 ... | Listelenen tüm paketleri yükler. |
- | sudo apt-get install -y package | Sormadan yüklemek için kullanılabilir. Kısaca evet 'yes' demenin kısa yolu. |
- | sudo apt install package | Renkli bir ilerleme çubuğu görüntüler. |
CentOS | sudo yum install package | - |
- | sudo yum install package1 package2 ... | Listelenen tüm paketleri yükler. |
- | sudo yum install -y package | yum, sormadan yüklemek için kullanılabilir. Kısaca evet 'yes' demenin kısa yolu. |
Fedora | sudo dnf install package | - |
- | sudo dnf install package1 package2 ... | Listelenen tüm paketleri yükler. |
- | sudo dnf install -y package | dnf, sormadan yüklemek için kullanılabilir. Kısaca evet 'yes' demenin kısa yolu. |
FreeBSD Packages | sudo pkg install package | - |
- | sudo pkg install package1 package2 ... | Listelenen tüm paketleri yükler. |
FreeBSD Ports | cd /usr/ports/category/port && sudo make install | Kaynaktan 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.
Sistem | Komut | Not |
Debian / Ubuntu | sudo 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. |
CentOS | sudo yum install package.rpm | - |
Fedora | sudo dnf install package.rpm | - |
FreeBSD Packages | sudo pkg add package.txz | - |
- | sudo pkg add -f package.txz | Yü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.
Sistem | Komut | Not |
Debian / Ubuntu | sudo apt-get remove package | - |
- | sudo apt remove package | - |
- | sudo apt-get autoremove | Gereksiz paketleri kaldırır. |
CentOS | sudo yum remove package | - |
Fedora | sudo dnf erase package | - |
FreeBSD Packages | sudo pkg delete package | - |
- | sudo pkg autoremove | Gereksiz paketleri kaldırır. |
FreeBSD Ports | sudo pkg delete package | - |
- | cd /usr/ports/path_to_port && make deinstall | Yü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ım | apt Kullanımı |
apt-get update | apt update |
apt-get dist-upgrade | apt full-upgrade |
apt-cache search string | apt search string |
apt-get install package | apt install package |
apt-get remove package | apt remove package |
apt-get purge package | apt 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.
Sistem | Komut | Not |
Debian / Ubuntu | man apt-get | Yerel paket veritabanını güncelleme ve paketlerle çalışma. |
- | man apt-cache | Yerel paket veritabanını sorgulama. |
- | man dpkg | Bireysel 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. |
CentOS | man yum | - |
Fedora | man dnf | - |
FreeBSD Packages | man pkg | Önceden derlenmiş ikili paketler ile çalışma. |
FreeBSD Ports | man ports | Port koleksiyonu ile çalışmak. |