Özellikle UNIX sistemlerde adından sıkça söz edilen paket yöneticisi kavramından bahsediyoruz.
Bilindiği üzere, özellikle de Linux dağıtımlarını birbirinden ayıran en önemli özelliklerden birisi paket yönetim yazılımlarıdır. Red Hat’in RPM’i, Debian‘ın APT’si derken listemiz uzadıkça uzuyor. Peki bu paket yöneticileri aslında nasıl çalışıyor? Birbirlerinden farkları neler?
Paket yöneticilerinin asıl amacı, yazılımları güvenli ve pratik bir şekilde kontrol etmektir. Bu yazılımlar sayesinde, dağıtım sağlayıcınızın yazılım deposunda aradığınızı bulabilirsiniz. Örneğin Debian dağıtımı kullanıcılarının APT yazılımı, Debian’ın yazılım depolarına bağlıdır. Çoğu paket yönetim yazılımı üçüncü parti depoların eklenmesine de izin verir. Arch Linux dağıtımında, üçüncü parti kullanıcıların yazılım yükleyebilecekleri bir depo bulunmaktadır.
Paket yönetim yazılımları, grafik arayüzlü veya komut istemi tabanlı olabilir. Örneğin Synaptic isimli paket yönetim yazılımı grafik arayüzlü iken, APT komut istemi tabanlı çalışır; yani bir uçbirim aracılığı ile kullanılabilir.

Paket yöneticileri, sadece Linux’a veya UNIX uyarlamalarına özel yazılımlar değildir. Bazı yazılımların, hatta programlama dillerinin bile paket yöneticileri bulunmaktadır. Python dilinde bulunan PIP paket yöneticisi ve Sublime Text adlı metin düzenleyicisinde bulunan “Package Control” (Paket Kontrolü) sistemleri bu duruma örnek verilebilir. Bu makale UNIX implementasyonlarında bulunan paket yöneticilerini anlatmaktadır fakat genel konsept çoğunlukla aynı olduğu için, sizlere iyi bir referans olacak.
Paket kavramı nedir?
Paket yöneticilerini daha iyi anlamak için paket kavramının ne olduğunu daha iyi anlamamız gerekli. Paketler, paket yöneticilerinin anlayacağı şekilde tasarlanan arşiv dosyalarıdır. Bu tanımı daha da açacak olursak; paketlerin içerisinde konfigürasyon dosyaları, bazen ek gereksinimler olduğu için ek gereksinim bilgileri ve bilgisayarımıza yüklemek istediğimiz yazılımın kendisi bulunur.

Eskiden bir yazılımı yüklemek için kaynak kodlarını bilgisayarınızda derlemek veya internetten o yazılımı indirmek zorundaydınız. Kaynak kodlarını derlemek zahmetli ve internetten indirmek tehlikeli olunca, paket yöneticileri kendilerine ait paket formatları ile ortaya çıkıp bizleri bu durumdan kurtardı.
Günümüzde yine bir uygulamayı derleme yolunu seçebilirsiniz fakat bu tamamen isteğe bağlıdır. Özellikle teknik özellik bakımından düşük olan bilgisayarlarda bir uygulamayı derlemek, uygulamanın büyüklüğüne bağlı olarak çok uzun sürebiliyor. Hatta bazı uygulamaları derlemek çok karmaşık olabiliyor çünkü geliştirici, o uygulamanın nasıl derleneceğinden düzgünce bahsedemiyor veya başka türlü sorunlar ortaya çıkabiliyor.
Paket yöneticileri nasıl çalışıyor, neler yapabiliyor?

Görmüş olduğunuz üzere yazılımın geliştiricisi, yazılımını paketledikten sonra o yazılımı paket deposuna koyuyor. Böylece paketimiz, o depoya bağlı olan bir paket yöneticisi aracılığı ile kontrol edilebiliyor. Örneğin kullanıcımız sistemde güncelleme komutu çalıştırdığı zaman, sistemde halihazırda bulunan paketlerdeki metadata ile paket deposundaki pakette bulunan metadatalar kıyaslanıyor. Bu metadatalar, içerisinde uygulamaya ait sürüm bilgisi, paket ismi gibi temel bilgileri içeriyor. APT paket yöneticisi ile Visual Studio Code’un metadata bilgisini inceleyelim.

Paket yöneticiniz ile paket depo bilgisini güncellediğinizde, aslında bu metadata bilgilerini güncellemiş olursunuz. Daha sonra indirme veya güncelleme yaptığınız zaman, paket yöneticiniz bu metadata bilgisine göre hareket edecektir. Bu yüzden sisteminize bir paket indirmeden önce metadata bilgisini güncellemeniz önem teşkil etmektedir. Bunu APT paket yöneticisinde “sudo apt update” komutunu çalıştırarak yapabilirsiniz.
Bunların dışında, paket yöneticisi ile normal işlerin dışında biraz daha değişik işler de yapabilirsiniz. Örneğin, bir paketin sistem güncellemeleri aracılığı ile güncellenmesini devre dışı bırakabilirsiniz.

Bu gibi ilginç özellikler paket yöneticilerinde bulunmaktadır. Paket yöneticilerinin üreticilerine ait internet adreslerinde veya bir “help“ komutu aracılığı ile paket yöneticinizde bulunan özellikler hakkında yardım alabilirsiniz, örneğin RPM’in dokümantasyonuna web sitesinden ulaşabilirsiniz. Ek olarak Technopat Sosyal GNU/Linux bölümünde bir konu açabilirsiniz.
Farklı türdeki paket yöneticileri
Paket yöneticileri, paketleme sistemleri aracılığı ile birbirlerinden ayrılırlar fakat aynı paketleme sistemi üzerine yazılmış birden fazla paket yöneticisi olabilir. Örneğin, RPM sistemi için Yum ve DNF paket yöneticilerine, DEB sistemi için de APT ve Aptitude gibi alternatiflere sahibiz. Hatta Synaptic paket yöneticisi, APT tabanlı olduğu için DEB dosyalarını yönetir.
Özet
Bu yazımızda sizlere paket yöneticilerinden ve nasıl çalıştıklarından bahsettik. Bu yazıya ekleme yapmak için yorumlar bölümünü kullanabilir, sorularınıza cevap bulmak için ise Technopat Sosyal‘de konu açabilirsiniz.




linux bir paketi açmak için bazen başka paket yüklemek gerekli. Bazen çok sinir bozucu olabilir.