Pardus Temel Seviye Kullanıcı Sürüm 1.0 13 Ağustos 2012 Pardus 2011.3K Fatih Akıllı Tahta sürümüne göre hazırlanmıştır.
Bu bölümde, Pardus dahil olmak üzere tüm Linux dağıtımlarında önemli bir konu olan uygulamaların kurulması ve kaldırılması konusu işlenecektir. Paket yönetim sistemi kavramı, bölümün en önemli konusudur. 11. Bölüm Uygulamaların Kurulması ve Kaldırılması (Paket Yönetimi) 2
Uygulama Kurulumu ve Çalışma Ortamına Uyumluluk Kavramları Bir uygulama yazılımı, programlanırken bir çok bileşene ayrışır. Grafik arayüz başta olmak üzere arayüz bileşenleri, Uygulamanın ana mantığını içeren kodlar, Ayar dosyaları, Çok dil desteği, vb amaçla ayrışan dosyalar Dış görünüşe dönük grafik bileşenler ve yazı tipleri gibi bileşenler, Özgür yazılımların önemli bir bölümü ekip halinde geliştirilmekte olduğu ve bir çok farklı ortamda farklı amaçlar için geliştirilmekte olduğu için bu bileşenleri de farklı kişilerin geliştirmesi gerekir. 3
Uygulama Kurulumu ve Çalışma Ortamına Uyumluluk Kavramları Bir uygulama kurulurken, uygulamaya ait bütün bileşenlerin kurulum yapılan bilgisayara kopyalanması gerekecektir. Arkasından, bazı ayar dosyalarının değiştirilmesi işlemi yapılmalıdır. Uygulama kurulumları, istisnai durumlar haricinde bilgisayarın kapatılıp açılmasını gerektirmez. Ancak işletim sisteminin bazı bileşenlerinin kısa süre için devre dışı bırakılması gerekebilir. Kurulumların küçülmesi ve kolaylaştırılması için çok sayıda alt bileşenin ayrı ayrı kurulması tercih edilir. Bu durumda bir kurulumun ilk adımı, bağımlı olunan diğer bileşenlerin kurulmasının sağlanmasıdır. Paylaşılan bileşenler varsa, bu bileşenlerin doğru sürümlerinin sistemde bulunması gerekecektir. 4
Paket Yönetim Sistemi Kavramı Linux da paket yönetimi, bir Linux sisteminde kurulu olan yazılımların ve bağımlılıklarının birlikte yönetilmesi anlamına gelmektedir. Bir yazılım kurulurken, bağımlılık bulunan tüm bileşenlerin kurulması, kaldırılırken bu bileşenlerin dikkatli biçimde kaldırılması gerekir. Kitaplıklar bu konuda özellikle dikkat gerektirmektedir. Paket yönetim sistemleri bu detayları kullanıcı adına çözen alt yapıyı sunarlar.
Paket Yönetim Sistemi Kavramı Paket yönetim sistemi sadece kurulum için önemli değildir. Aynı zamanda güncelleme ve uygulamaların kaldırılması için de önemlidir. Uygulamaların güncellenmesi sırasında, bağımlılıklar değişebilir veya sürüm değişiklikleri nedeni ile aynı bileşenin birden fazla sürümünün sistemde bulunur hale gelmesi gerekebilir.
Paket Yönetim Sistemi Kavramı Paket yönetim sistemi sadece kurulum için önemli değildir. Aynı zamanda güncelleme ve uygulamaların kaldırılması için de önemlidir. Uygulamaların kaldırılması sırasında, birden fazla uygulamanın paylaştığı alt bileşenler (ortak bağımlılıklar) sistemde kalmaya devam etmelidir.
Paket Yönetim Sistemi Kavramı Paket yönetim sisteminin kabiliyetleri, kullanılması hedeflenen ortama göre değişebilir. Ayrıca, bir paket yönetim sistemi bulunmakla birlikte, uygulamaların paket yönetim sistemine göre «paketlenmesi» gerekir. Paketlerin içinde şu varlıklar ve bilgiler bulunmalıdır: Sadece o uygulamaya ait olan veriler, Paketin kurulumu sırasında kopyalanacak dosyalar, yapılacak ayar değişiklikleri hakkında bilgiler Paketin bağımlı olduğu diğer paketler ve bu bağımlılıklar ile ilgili ek bilgiler 8
Paket Yönetim Sistemi Kavramı Paketlerin bağımlılıklarının yönetilmesi için bu bağımlılıkların paketlerin içinde kayda geçirilmesi gerekir. Bir paketin, bağımsız olarak paketlenen bir varlığa (örneğin bir kitaplığa) olan bağımlılığı, özellikle farklı bir sürüme ihtiyaç duyuyorsa, bunun o paket içinde ifade edilmesi önemlidir. Sürümlerin ayrıştırılmaması iki sonuca yol açabilir. Bir çok paketin, asgari müşterek sürüme göre paketlenmesi gerekeceği için bazı uygulamaların güncellemelerinin paketlenmesi gecikebilir. Bir uygulamanın güncellenmesi durumunda, bir diğer uygulanaın bağımlılıklarının bozulması ve uygulamanın çalışmaz hale gelmesi riski doğar. Bu durumda, paket yapanlar kendi bağımlılıklarını tekrar tekrar kurdurmak için yöntemler geliştirir ve paket yönetim sisteminin amacından sapma gerçekleşir. 9
Paket Yönetim Sistemi Kavramı Paket Yönetim Sistemi İşletim sistemi ile bütünleşik çalışır. Bir adet kurulum ve bağımlılık veri tabanı kullanır. Bağımlılıklar kurulum sonrasında da gözetilir. Tek Tek Kurulum Aracı Her bir uygulama kendisine ait kurulum programını ayrı üretir ve işletim sisteminden bağımsız olarak geliştirir. Her uygulamanın kurulumu bağımsız olarak yapılır ve uygulamanın bağımlılıkları bağımsız olarak yönetilir. Genellikle kurulum sonrasında bağımlılıkların denetimi bir daha yapılmaz. 10
Paket Yönetim Sistemi Kavramı Paket Yönetim Sistemi Sistemdeki kurulu bulunan tüm uygulamaları denetleyip kurulumların doğru yapılıp yapılmadığını doğrulayabilir. Paket yönetim sistemini geliştiren tek bir merkezi geliştirici ekibi bulunur. Ancak farklı paket yönetim sistemleri arasında rekabet sürer. Tek Tek Kurulum Aracı Sistemde kurulu bulunan uygulamalar için toplu doğrulama yapılamaz. Her biri kurulum programı sadece kendisi için doğrulama yapabilir. Her biri kurulum alt yapısını geliştiren bağımsız kişiler vardır. 11
Paket Yönetim Sistemi Kavramı Paket Yönetim Sistemi Paketlerin kullandığı ortak bir dosya biçimi bulunur. Böylece kullanıcı tek merkezden kurulum ve güncelleme yapabilir. Ancak kurulum sırasında kullanıcı etkileşimi sağlanarak farklı görünümlü kurulumlar oluşturulabilir. Tek Tek Kurulum Aracı Birden fazla kurulum biçimi vardır. Kullanıcı bunların hepsine uyum sağlamak zorunda kalır. Değişik kurulum araçlarının kurulum sırasında sunduğu etkileşim biçimleri de düzeyi değişkendir. 12
Paket Yönetim Sistemi Kavramı Paket yönetim sistemlerinin önemli kavramlarından birisi «depo» kavramıdır. Uygulama bileşenlerine ait kurulum dosyaları, Internet (veya yerel ağ) temelli hizmet veren depolardan temin edilerek kurulum ve güncelleme gerçekleştirilir.
Pardus Paket Yönetim Sistemi Pardus söz konusu olduğu zaman iki farklı ihtiyaç grubu ve bu grupların ihtiyaçları için farklı biçimlerde paket yönetim sisteminden bahsetmek mümkündür. Pardus un 2005 den başlayarak geliştirilen ve daha çok «bireylere» hitap eden sürümü (2000 serisi), küçük bir ekip tarafından geliştirildiği ve paket oluşturan katkıcı sayısı az olduğu için az sayıda paketin dikkatlice seçilmesi ve bağımlılıkların aynı sürümlerde tutulması prensibine sadık kalmıştır. Ancak kurumlarda kullanılması gereken Kurumsal sürümün, çok farklı kaynaklardan gelen çok fazla sayıda yazılımı desteklemesi ve bu yazılımların güncellemelerinin farklı takvimlerde yapılması gerekli olduğu için daha karmaşık bir paket yönetim sistemine ihtiyaç ortaya çıkmıştır. 14
Pardus Paket Yönetim Sistemi Bireysel Pardus (Camia) Kurumsal Pardus (TÜBİTAK) 2004 yılında tasarlanan Pisi adındaki özgün paket yönetim sistemini kullanmaktadır. Öncelikle temel paket yönetim sistemi ihtiyaçlarına odaklanmıştır. 1993 yılında Debian dağıtımı kapsamında geliştirilmeye başlanan APT adındaki yaygın paket yönetim sistemini kullanmaktadır. Son derece karmaşık ihtiyaçlar dahil olmak üzere farklı senaryoların desteklenebilmesi hedeflenir. Her paketin sistemde tek sürümü olması tercih edilir. Bağımlılıkların aynı ortak sürümde tutulması gözetilir. Araç sayısı azdır. Çok sayıda sürümün bulundurulması Farklı depolar dışında farklı kriterlere etiketleme desteği Çok sayıda özelleşmiş araç. Bu nedenlerle depodaki uygulama yazılımları «seçme» yazılımlardır ve deponun büyüme hızı sınırlıdır. Debian depolarının doğrudan kullanımı. (~70.000 paket) 15
Pardus Paket Yönetim Sistemi Pardus Kurumsal serisi tarafından kullanılan paket yönetim sistemi Advanced Package Management (Gelişmiş Pakey Yönetimi) yada kısaca APT adı verilen bir sistemdir. APT belli başlı bütün paket yönetim sistemlerinde bulunan temel özellikleri taşımaktadır. APT alt yapısının önemli bir bölümü bir C++ kitaplığı olan libapt kitaplığıdır. Böylelikle hemen her türlü uygulama yazılımının ihtiyaç duyulduğu takdirde paket yönetim sisteminin fonksiyonlarını kullanması olanaklı kılınmıştır. APT nin içerisinde bir çok araç vardır. Bu araçların bir kısmı komut satırında bazıları ise grafik arayüzde çalıştırılmak için tasarlanmıştır. Ayrıca çeşitli Linux dağıtımlarının geliştirdiği APT araçları da mevcuttur. 16
Pardus Paket Yönetim Sistemi 17
Pardus Paket Yönetim Sistemi Her bir Pardus paketi, bağımlıklar ile ilgili bir dizi bilgi içerir. APT sisteminde bağımlılıklar ayrıca sınıflandırılabilir. Zorunlu (Depends) : Bu bağımlılıklar kurulmadığı takdirde paketin içerisindeki uygulama işlevini yerine getiremeyecektir. Önerdiği (Recommends) : Bu bağımlılıklar kurulmadığı durumda uygulama çalışacaktır ancak bu bağımlılıkların kurulması uygulamanın çalışma kabiliyetini önemli oranda artıracaktır. Faydalı Gördüğü (Suggests) : Bu bağımlılıklar kurulmadığı durumda uygulama çalışacaktır ancak bu bağımlılıkların kurulması, uygulamanın çeşitli amaçlarla kullanımını kolaylaştıracaktır. APT araçları kullanıcıyı bağımlılıklar konusunda bilgilendirerek belirli bir oranda yönlendirir ve kullanıcının daha bilinçli biçimde paket seçip kurmasını sağlar. 18
Pardus Paket Yönetim Sistemi Komut Satırı Temel araçlar Dpkg Grafik Arayüz Synaptic Kpackage Gdebi Apt-get Aptitude 19
Pardus Paket Yönetim Sistemi 20
Pardus Paket Yönetim Sistemi Komut satırındaki ileri araçlar (bazıları) Apt-cache Paket depolarında bulunan tüm paket girdileri üzerinde arama yapmak için kullanılır. Apt-file Belirli bir isme sahip dosyayı kuran paketi bulmak için kullanılır. Apt-cdrom Bir CD/DVD ortamını paket depolarına eklemek için kullanılır. Apt-rdepends Bir paketin ters bağımlılık ağacını (o pakete bağımlı olan paketlerin listesini) çıkartmak için kullanılır. Apt-spy Paket deposu yansılarına bağlantı hızlarını test ederek ulaşılabilen kaynaklara dair tercihleri güncellemek için kullanılır. Apt-show-versions Bir paketin kurulabilen tüm sürümlerini listelemek için kullanılır. Deborphan Kurulmuş olan ancak kullanılmayan yada ters bağımlılığı kalmayan paketleri tespit etmek için kullanılır. Apt-proxy Apt araçlarının yansılara erişmesi için apt ye özel bir vekil sunucu yapılandırır. 21
Synaptic uygulaması, sadece Pardus da değil APT paket yönetim sistemini kullanan tüm dağıtımlarda (örneğin Debian, Ubuntu, Mint, vb) kullanılan ortak bir araçtır. Paket yönetim sistemi kullanılarak paketlerin kurulması, güncellenmesi, kaldırılması gibi temel işlemlere ek olarak paket depolarına dair bazı ayarların da yapılması için gereken arayüzlere sahiptir. 22
24
27
28
30
31
Belirli bir paketin kurulması için Synaptic in araç çubuğundaki hızlı süzgece adının yazılması yeterlidir. Ancak bu süzgecin sadece seçili bulunan kategoride çalıştığı gözardı edilmemelidir. Bu nedenle kategorisi bilinmeyen bir paket için «Hepsi» kategorisinde süzgeç uygulanmalıdır.
33
36
APT paket yönetim sisteminde, biri biri ile ilgili çok sayıda paketin birlikte kurulmasını sağlamanın bir yolu «meta-paket» oluşturmaktadır. Bir meta-paket, aslında içeriği boş olan ancak bir dizi pakete bağımlılık beyan ederek, o paketlerin topluca kurulmasını sağlayan bir pakettir. Meta-paketlere ayrıca birlikte kurulan paketlerdeki bileşenlerin daha iyi biçimde entegre olmasını sağlayacak ayarların yapılması için betikler de gömülebilir. Bu özellik, Linux dağıtımlarının kurulumları sırasında «Bu bilgisayarı hangi amaçla kullanacaksınız?» türü bir soruya verilen yanıtı kullanarak kolayca çok sayıda paketi seçip kurmak için de kullanılmaktadır. 37
APT sistemi içinde meta-paketlere «görev» (İng. Task) adı verilmektedir. Synaptic aracında da «Düzen» menüsü altında yer alan «Paketleri Göreve Göre Seç» seçeneği kullanılarak meta-paket işlemleri yapılabilir.
42
44
Synaptic ile uygulamaların kurulması ve güncellenmesi yanı sıra kaldırılması da kolaylaştırılmıştır. Bu amaçla kurulu bir paketin üzerine fare ile sağ tıklanıp «Kaldırmak için işaretle» seçeneği seçilmelidir. İşaretlenen paketin kaldırılması için araç çubuğunda yer alan «Uygula» düğmesine tıklanmalıdır. Synaptic, arka planda APT araçlarını kullandığı için bir paket kaldırılacağı zaman o paketin ters bağımlı paketlerini de tespit eder. Bu nedenle, paket kaldırma işlemi sırasında açılan bilgilendirme iletişim kutularındaki detaylara dikkatli bakılması yararlı olacaktır. Özellikle bir kitaplığın yanlışlıkla kaldırılması durumunda, ters bağımlılıklar nedeni ile çok fazla sayıda uygulama yazılımı da kaldırılabilir.