Anasayfa Makale Paket Yöneticisi Nedir?

Paket Yöneticisi Nedir?

Paket yöneticisi nedir

Bu yazımızda ö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.

Synaptic paket yöneticisi
Synaptic paket yöneticisi

Paket yöneticileri, sadece Linux’a veya UNIX implementasyonları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.

Paket yöneticisi nedir
APT paket yöneticisi ile “Visual Studio Code” uygulamasının gereksinimlerini ekrana bastırdık.

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 opsiyoneldir. Ö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?

Paket yöneticisi nedir
Paket yöneticilerinin çalışma prensibi.

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 versiyon bilgisi, paket ismi gibi temel bilgileri içeriyor. APT paket yöneticisi ile Visual Studio Code’un metadata bilgisini inceleyelim.

Paket yöneticisi nedir
APT’a göre “Visual Studio Code” yazılımının metadata bilgisi.

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.

Paket yöneticisi nedir
“Neofetch” uygulamasının sistem güncellemeleri ile birlikte güncellenmesini devre dışı bıraktık. Fakat istediğimiz zaman elle güncelleyebiliriz.

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.