giriiş
A paket yönetim sistemi veya paket yöneticisi bir grup yazılım aracıdır. Bilgisayarın işletim sistemine ait bilgisayar programlarının kurulum, yükseltme, konfigürasyon ve kaldırma işlemlerini verimli bir şekilde otomatikleştirir. A Paketleme yöneticisi paketlerle, arşiv dosyalarındaki verilerle ve yazılım dağıtımlarıyla çalışır.
Paketler aşağıdaki gibi meta verileri içerir: Yazılımın adı, amacının açıklaması, sağlama toplamı (tercihen bir kriptografik karma işlevi), d bağımlılık listesi, satıcı, Ve versiyon numarası Yazılımın düzgün çalışması için gereklidir.
- Meta veriler, kurulum sırasında yerel paketin veritabanına kaydedilir.
- Tipik olarak paket yöneticileri, eksik önkoşulları ve yazılım uyumsuzluklarını önlemek için sürüm bilgilerinin ve yazılım bağımlılıklarının veritabanını yönetir.
- Uygulama mağazaları, ikili veri havuzu yöneticileri ve yazılım depoları ile yakın işbirliği içinde çalışırlar.
- Paket yöneticileri manuel güncelleme ve kurulum ihtiyacını ortadan kaldırmak için geliştirilmiştir.
- Özellikle, işletim sistemleri tipik olarak yüzlerce veya daha fazla farklı yazılım paketini birleştiren büyük kuruluşlar için yararlı olabilir.
Paket Yöneticisinin İşlevleri
Bir yazılım paketi şu şekilde tanımlanabilir: Arşiv dosyası geliştirme için bir bilgisayar programı ile temel meta verileri birleştirmek. Sistem programı, ilk önce oluşturulup derlenmesi gereken kaynak kodun içinde olabilir.
Paket meta verileri paket sürümünü, paket açıklamasını ve bağımlılıkları (önceden kurulması gereken paketler) içerir. Birçok paket yöneticisi, kullanıcının komutu altında yazılım paketlerini kurma, kaldırma, bakımını yapma veya bulma eylemine sahiptir.
paket yönetim sistemi bazı tipik içerir işlevler aşağıda belirtilenler:
- Paket arşivlerini çıkarmak için dosya arşivleyicileriyle ilgilenmek.
- Sırasıyla dijital sertifikaları ve sağlama toplamlarını doğrulayarak paketin orijinalliğini ve bütünlüğünü sağlamak.
- Bir uygulama mağazası veya yazılım deposu aracılığıyla mevcut yazılımı güncellemek, yüklemek, indirmek veya aramak.
- Kullanıcının kafa karışıklığını azaltmak için paketleri fonksiyon aracılığıyla birleştirmek.
- Bir paketin ihtiyaç duyduğu her paketle birlikte kurulduğundan emin olmak için bağımlılıkların sürdürülmesi. Yani görmezden gelmek 'bağımlılık cehennemi'.
Derlenmiş paketler için ön uçlar (yerel olarak)
Sistem yöneticileri Paket yönetimi yazılımı dışında bazı araçlar yardımıyla yazılımı kurabilir ve yönetebilir. Örneğin, yerel bir yönetici kaynak kodunu (paketlenmemiş) indirebilir, derleyebilir ve sonra kurabilir.
Paket yöneticisi durumunun veritabanıyla birlikte yerel sistem durumunun da senkronizasyonun dışına çıkmasına neden olabilir. Yerel yöneticinin, değişiklikleri manuel olarak bir paket yöneticisine entegre etmek veya birkaç bağımlılığı yönetmek gibi bazı ek önlemler alması gerekecektir.
linux'ta script çalıştırma
Derleme paketlerinin doğru olmasını sağlamak için bazı araçlar mevcuttur. (yerel olarak) Paket yönetimi ile geliştirilmiştir.
Kontrol Kurulumu için kullanılabilir .rpm veya .deb dosya tabanlı dağıtımlar Ve Slackware Linux'u ilave olarak. İçin melez gibi sistemler Arch Linux Ve Reçeteye dayalı sistemler beğenmek Gento Linux, Başlangıçta bir paketin yerel paket veri tabanına uyduğunu doğrulayan bir tarif belirlemek mümkündür.
Dağıtılmış kütüphanelerle ilgili zorluklar
Statik kitaplık bağlantısı yerine dinamik kitaplık bağlantısına dayanan çeşitli bilgisayar sistemleri, makine talimatlarının kitaplıklarını (yürütülebilir) uygulamalar ve paketler arasında dağıtır.
Bu tür sistemlerde, kitaplık sonuç sürümlerine ihtiyaç duyan farklı paketler arasındaki tipik ilişkiler, adı verilen bir zorlukta 'bağımlılık cehennemi'.
Aynı zamanda şu şekilde de bilinir: 'DLL cehennemi' Bağlantılı kütüphanelerle dinamik olarak ilgilenirken Microsoft Windows'ta. Bu sistemler için iyi paket yönetimi çok önemlidir.
İtibaren AÇIK ADIM Çerçeve sistemi, birden fazla kitaplık sürümünün aynı anda kurulmasına ve birçok yazılım paketinin hangi sürüme bağlandığını tanımlamasına izin vererek bu sorunu çözme şansına sahipti.
Yapılandırma Bakımı
Yapılandırma dosyasının yükseltmeleri özellikle yazılım yükseltmelerinde sorunludur. En azından Unix'te, paket yöneticileri dosya arşivleme yardımcı programı uzantısı olarak ortaya çıktığından.
Genellikle, yapılandırma dosyalarını kurallar kullanmak yerine yalnızca korurlar veya üzerine yazarlar. Yapılandırma dosyası formatı değiştiğinde çeşitli sorunlar ortaya çıkabilir. Örneğin, eski bir yapılandırma dosyası, görüntülenmesi gereken daha yeni seçenekleri açıkça devre dışı bırakmıyorsa. Debian'ın dpkg'si gibi birkaç paket yöneticisi, kurulum sırasında konfigürasyona izin verir. Diğer bazı durumlarda, varsayılan konfigürasyon kullanılarak paketlerin kurulması ve çok sayıda sistemde kurulumdaki (başsız) konfigürasyonun üzerine yazılması tercih edilir. Bu tür kurulum (önceden yapılandırılmış) dpkg aracılığıyla da desteklenir.
Yükseltme Bastırma
Kullanıcının yükseltmeyi gerçekleştirmek için paket yönetim yazılımıyla işbirliği yapması durumunda, kullanıcıya çalıştırılacak eylem listesiyle (genellikle yükseltilecek paket listesi ve muhtemelen yeni ve eski sürüm numaralarını sağlar) birlikte sunulması gelenekseldir.
Kullanıcının yükseltmeler için tek bir paket seçmesine veya yükseltmeyi toplu olarak almasına olanak tanır. Çeşitli paket yöneticileri, çok sayıda paketi asla yükseltmeyecek veya yazılım paketi tarafından belirtildiği gibi yalnızca eski standartta kritik kararsızlıklar veya güvenlik açıkları tespit edilirse yükseltilecek şekilde yapılandırılabilir. Bazen bu işleme sürüm sabitleme adı verilir.
Örneğin:
yum bunu şununla destekliyor: hariç tut=açık ofis* sözdizimi
söz dizimi ile pacman Yoksay=açık ofis (her iki durumda da, openoffice yükseltmesini engellemek için)
dselect ve dpkg, paket seçimlerindeki tutma bayrağıyla bunu kısmen destekler.
yetenek var 'yasaklamak' Ve 'tutmak' bayraklar.
portage bunu bir konfigürasyon dosyasıyla destekler; paket.mask.
APT bayrağı genişletir, yani tutmak kompleks tarafından 'sabitleme' yöntemi (kullanıcılar paketi kara listeye de alabilir).
Depolar
Kullanıcılara, sistemlerine kurulmasına izin verdikleri yazılım türleri üzerinde ekstra kontrol sağlamak için (bazen dağıtıcı tarafındaki kolaylık ve yasal nedenlerden dolayı), yazılım bazen birçok yazılım deposu kullanılarak indirilir.
kalın metin css
Basamaklı paket kaldırma
Daha gelişmiş paket yönetimi yönlerinden birkaçı kolaylaştırıyor 'Basamaklı paket kaldırma', Hedef pakete bağlı olan her paket ve hedef paketin bağlı olduğu her paket de kaldırılır.
Komut karşılaştırması
Ancak komutlar tüm spesifik paket yöneticileri için benzersizdir. Bu komutlar büyük ölçüde çevrilebilir çünkü paket yöneticilerinin çoğu aynı işlevleri kolaylaştırır.
Paket Yöneticisinin Yaygınlığı
Dpkg gibi paket yöneticileri 1994 gibi erken bir tarihte mevcuttu. İkili paketlere yönelik çeşitli Linux dağıtımları, yazılımın bakımı ve yönetimine yönelik ana araçlardan dolayı büyük ölçüde paket yönetim sistemine güvenmektedir.
Windows Phone, iOS (Unix benzeri) ve Android (Linux tabanlı) gibi birçok mobil işletim sistemi neredeyse satıcının ilgili App Store'una bağlıdır. Bu nedenle paket yönetim sistemlerini (özel) kullanıyorlar.
Kurulumcularla Karşılaştırma
Genellikle bir paket yöneticisi şu şekilde bilinir: 'yükleme yöneticisi'. Kurulumcular ve paket yöneticileri arasında kafa karışıklığına neden olabilir. Temel farklılıklardan bazıları aşağıda verilmiştir:
Kriter | Paketleme yöneticisi | Kurulumcu |
---|---|---|
Birlikte gönderilir | Genellikle işletim sistemi | Tüm bilgisayar programları |
Kurulum bilgisi konumu | Kurulum için merkezi bir veritabanı | Tamamen yükleyicinin takdirine bağlıdır. Uygulamanın klasöründeki bir dosya veya işletim sisteminin klasörleri ve dosyaları arasında olabilir. Kurulum bilgilerini açıklamadan kendilerini bir kaldırıcı listesine kaydedebilirler. |
Bakım kapsamı | Potansiyel olarak bir sistemdeki her paket | Sadece paketlendiği ürün |
Geliştirici | Tek paket yöneticisi satıcısı | Birden fazla yükleyici satıcısı |
Paketin formatı | Bir avuç tanınmış format | Uygulamanın numarası kadar format olabilir |
Paket formatının uyumluluğu | Bir paket yöneticisi kullandığı sürece kullanılabilir. Ya kullanıcı bir paket yöneticisini yükseltmez ya da yeni paket yöneticisi sürümleri onu desteklemeye devam eder. | Yükleyici herhangi bir arşiv biçimini kullanıyorsa, yükleyici her zaman onunla uyumludur. Ancak kurulumcular da her bilgisayar gibi yazılım çürümesinden etkilenebilir. |
Otomasyon yardımcı programıyla karşılaştırma
Neredeyse tüm yazılım konfigürasyon yönetimi sistemleri, yazılımın dağıtılmasını ve yazılımın oluşturulmasını ayrı olarak temsil eder. Tipik olarak, yapı otomasyonu yardımcı programı, halihazırda sistemde bulunan, insan tarafından okunabilen formattaki kaynak kod dosyalarını alır ve bunları benzer bir sistem üzerinde yürütülebilir bir pakete (ikili) dönüştürme prosedürünü hızlandırır.
Tipik olarak, daha sonra birkaç başka sistemde çalışan bir paket yöneticisi, bu yürütülebilir paketleri (önceden oluşturulmuş ikili) İnternet'e indirir ve sonra yükler.
Bununla birlikte, her iki araç türü de aşağıda belirtilen birkaç ortak faktörü içerir:
- Bağımlılık grafiği topolojik sıralaması, birçok ikili bileşen arasındaki bağımlılıkları yönetmek için bir paket yöneticisi içinde uygulanır.
- Ayrıca birçok kaynak bileşen arasındaki bağımlılığı yönetmek için bir yapı yöneticisinin içinde uygulanır.
- Yalnızca yürütülebilir dosyalar oluşturmakla kalmayıp, çeşitli makefile'lar da destek sağlar.
- Ayrıca make install kullanarak kurulumu da desteklerler.
- Tüm paket yöneticileri, kaynak kodunun (insan tarafından okunabilen) ikili yürütülebilir dosyalara çevrilmesini ve ardından bunu Homebrew, Sorcery, Portage vb. gibi kaynak tabanlı dağıtım için yüklemeyi destekler.
Gibi bazı araçlar A-A-P Ve Yapmak hem dağıtımı hem de binayı yönetmek için geliştirildi. Ayrıca paket yöneticisi veya yapı otomasyon yardımcı programı veya her ikisi olarak da kullanılabilirler.
Temel paket yöneticileri ve biçimleri
Evrensel paket yöneticisi
Ayrıca denir ikili depo yöneticisi. Bu paket yöneticisi, depolamayı optimize etmek ve bir yazılım geliştirme sürecinde üretilen ve kullanılan ikili dosyaları, paketleri ve yapıları indirmek için oluşturulmuş bir yazılım aracıdır.
Evrensel paket yöneticileri Kullanıcıların her tür ambalaja uyguladığı modayı standartlaştırmaya odaklanın. Kullanıcılara her yapı türü için uyumluluk ve güvenlik ölçümlerini kullanma yeteneği sağlarlar. Bir işin ortasında olarak görevlendirildiler DevOps araç zinciri.
Açık kaynaklı ve özgür yazılım sistemleri
Uyumlu ve benzer lisanslara sahip paketler, açık kaynak ve özgür yazılım davranışı nedeniyle çeşitli işletim sistemlerinde kullanılmak üzere mevcuttur.
Bu paketler, çeşitli sürüme özgü çakışmaları, bağımlılıkları ve yazılım permütasyonlarını yönetmek için dahili olarak karmaşık ve yapılandırılabilir paketleme sistemleri kullanılarak dağıtılabilir ve birleştirilebilir.
Ayrıca, açık kaynaklı ve özgür yazılımlardan oluşan birkaç paketleme sistemi de açık kaynaklı ve özgür yazılım olarak yayınlanmaktadır.
Windows ve Mac OS X gibi işletim sistemlerindeki paket yönetimi ile Linux gibi açık kaynaklı ve özgür yazılımlardaki paket yönetimi arasındaki farklardan biri, açık kaynaklı ve özgür yazılım sistemlerinin üçüncü taraf paketlerin benzer bir mekanizmadan yükseltilmesine ve kurulmasına izin vermesidir. . Oysa Windows ve Mac OS X'in birçok paket yöneticisi sırasıyla Microsoft ve Apple tarafından verilen yazılımları yükseltecektir.
Üçüncü taraf yazılımlarını sürekli olarak yükseltme yeteneği, ilgili depo URL'sinin paket yönetiminin yapılandırma dosyasına eklenmesiyle eklenir.
Paket formatları
Tüm paket yöneticileri, yönetebildikleri paketlerin meta verilerine ve formatına bağlıdır. Paket yöneticileri, dosya gruplarının belirli bir paket yöneticisi için bağımlılıklar gibi uygun meta verilerle gruplandırılmasını gerektirir.
Temel bir yardımcı program koleksiyonu genellikle bu paketler aracılığıyla genel kurulumu yönetir ve birden fazla paket yöneticisi, ek işlevsellik sağlamak için bu yardımcı programları uygular.
Örnek:
- yum, arka uç olarak rpm'ye bağlıdır. Yum, sistem ağını korumak için basit yapılandırma gibi özellikler ekleyerek arka uç işlevselliğini geliştirir.
- Sinaptik paket yöneticisi, dpkg'ye bağlı olan Gelişmiş Paketleme Aracının kitaplığını uygulayarak bir GUI verir.
Yabancı farklı Linux paket formatları arasında çeviri yapan bir program olarak tanımlanabilir. Arasında dönüşümü destekliyor Slackware (.tgz, .tlz, .tbz, .txz) paketler, Solaris (.pkg), Stampede (.slp), .deb, .rpm paketleri, Ve Linux Standart Tabanı (LSB) uyumludur.
Gibi çeşitli mobil işletim sistemlerinde Google Oyun paket formatını kullanır Android Uygulama Paketi (Kısacası APK'nın ) iken Windows Mağazası formatlarını kullanır XAP Ve APX. İkisi birden Windows Mağazası Ve Google Oyun isimsiz paket yöneticileri içerir.
Uygulama düzeyinde paket yöneticileri
Programlama dilleri için işletim sistemlerine yönelik ve geliştiricilerin mevcut kitaplıklara ihtiyaç duyduğu sınırlı yeteneklere sahip birkaç paket yöneticisi (eklenti) vardır. Uygulama düzeyindeki paket yöneticileri, sistem düzeyindeki paket yöneticilerinin aksine yazılım sisteminin küçük kısmına odaklanır.
Genellikle bir dizin ağacında bulunurlar. Gibi sistem düzeyinde bir paket yöneticisi tarafından organize edilmemiştir. /usr/yerel/fink veya c:cygwin. Bununla birlikte, programlama kitaplıklarıyla çalışan bir paket yöneticisi için bu durum söz konusu olmayabilir ve her iki paket yöneticisi de yükseltmeleri bozabileceği ve yükseltme talebinde bulunabileceği için olası bir çakışmaya neden olabilir. 'sahip olmak' dosya.