ÖNSÖZ

PİSİ (Packages Installed Successfully as Intended) 2011 öncesi Pardus projesi kapsamında geliştirilen bir ikili(binary) paket yönetim sistemidir. PiSi paket sistemi paketlerin sadece kurulup kaldırılmasından daha fazla işleve sahiptir, örneğin tüm kurulu paketlerin eski bir tarihteki haline geri döndürülebilmesi mümkündür.

Temel Bilgiler

Paket: Sisteme kurulacak bir yazılım, doküman veya her tür veri.

Kaynak dosya: Pakete ait derlenmemiş dosyaları, veri ve dökümanları bulunduran ve internetten indirilebilir haldeki sıkıştırılmış dosyalardır.

Pisilemek: Bir paketi Pisi paketi haline getirmek.

Derleme: Derlenebilir bir programlama dili ile yazılan programların (C, C++ gibi) kaynak kodlarını çalıştırılabilir ikili dosyaya (executable binary) dönüştürmek için yapılması gereken işlem.

Bağımlılık: yazılımın çalışması ve derlenmesi sırasında kullandığı ve sisteme kurulması gereken başka paketler.

Doğrulama kodu: İnternetten indirilen dosyaların doğruluğunu test etmek için kullanılır. Pisi paketi oluşturulurken yazılımın sıkıştırılmış kaynak dosyalarından sha1sum algoritmasıyla elde edilen anahtar yazılımın kendi sitesinde yayınlanan anahtar ile karşılaştırılarak doğrulama yapılır.

Bir yazılımı pisi paket sistemine dahil edilmesi pisilemek istediğiniz paketin ne olduğu ve nasıl çalıştığı hakkında bilgi toplamaktan başlayıp pisi dosyası oluşturulduktan sonra test edilip hata düzeltme ve yeni sürümlerin takip edilmesiyle devam eden bir süreçtir. Bir paketçi eğer bu süreci takip edebileceğini düşünüyorsa pisileme işlemine başlamalıdır. Bu açıdan bakınca yapılan pisi dosyaları onu yapanların çocukları gibi olurlar ve paketin her yeni sürümünde ve hata düzeltmesinde yenilenirler.

Ancak sürece sadık kalınmadan başıboş bırakılan ve takip edilmeyen pisi paketlerinin ömrü her gün yeni geliştirmelerin yapıldığı Linux dünyasında çok kısa olacaktır. Bu nedenle "yapabildiğin kadar değil bakabileceğin kadar pisile" sözünü unutmamalısınız. Ayrıca Linux dünyası kollektif çalışmanın ve imece yönteminin en güzel örneklerini sergileyip geliştiğinden mutlaka pisilediğiniz inşa dosyalarını internette paylaşın. Bu sayede pisi paketlerinizi takip edecek pek çok ebeveyni olabilir.

Bu işlev sonraki bölümde anlatılan dosyalar (Pisi inşa dosyaları) kullanılarak paketin inşa dosyasından Pisi tarafından kullanılabilecek bir paket ortaya çıkarma mekanizmasıdır. Bu mekanizma ile Pisi tarafından paket oluşturma süreci şöyledir;+

  • Oluşturulan pspec.xml dosyasının Source bölümündeki bilgiler işlenerek yazılımın kaynak kodu indirilir ve sha1sum şifreleme anahtarı ile doğruluğu kontrol edilerek /var/pisi/paket_adi/work klasörüne açılır.

  • Eğer varsa files klasörü içindeki gerekli dosya ve yamalar uygun bir şekilde koda uygulanır.

  • actions.py python betiği işletilerek paket elde etmek için kaynak koddan /var/pisi/paket_adi/install dizinine kurulum yapılır.

  • Varsa ek dosyalar install dizinine pspec.xml dosyasında "additional files" kısmında belirtildiği üzere kopyalanır.

  • Pisi, install dizinindeki oluşan dosyaları XML biçiminde indeksler.

  • Bu indeks dosyaları ve paket verisi pspec.xml'den alınan verilerle birleştirilerek tek bir pisi dosyası olarak sıkıştırılır.

Görüldüğü gibi pisi dosyası oluştururken aynı zamanda paketi /var/pisi/paket_adi/install dizinine de kurmuş oluyoruz. Pisi bu kurulumun sanki kök dizine kuruluyormuş gibi olmasını sağlıyor. Bu sayede bu dizine bakarak paket kurulduğunda sistemdeki hangi dosyaları oluşturduğunu görmüş oluyoruz.

GIT reposu Pisi Linux geliştiricilerinin paketler için oluşturduğu pisi inşa dosyalarını ve Pisi Linux projelerini barındıran bir servistir. Depoya Github adresinden ulaşabilirsiniz, burada Pisi Linux için pisilenmiş paketlerin inşa dosyaları ve projelerin kaynak kodları bulunur. Pisilemeye yeni başlayanların "Nasıl?" sorularının yanıtlarının hepsi aslında bu Pisi Paketleri reposundaki inşa dosyalarında mevcuttur.