actions.py
Bu dosyadaki python kodları, pisi paketi yapılmak istenen yazılımın kaynak dosyasından derlenmesi ve install dizinine sanal bir kurulum yapılması için pisi tarafından çalıştırılır.
Temel Python yapısı
Python kodları kolay yazılıp okunan bir yapıdadır. Bir fonksiyon def fonksiyonadı(argüman1, argüman2): şeklinde, veriler de değişken=veri şeklinde tanımlanabilir. # işaretinden sonra yazılanlar açıklama satırlarıdır. Örneğin;
#!/usr/bin/python
#Fonksiyonu tanımlama
def bir_fonksiyon(adi, soyadi): #Ekrana yazdır print(isim) print(sistemi)
#Değişkenlere veri ata name="Pisi" surname="Linux"
#Fonksiyonu kullan bir_fonksiyon(name, surname)
Yukarıdaki python betiği ekrana “Pisi Linux” yazacaktır. Görüldüğü gibi fonksiyonu kullanırken verilen parametrelerin değeri, fonksiyon tanımında belirtilen değişken adlarıyla fonksiyon içinde kullanılabiliyor.
Burada dikkat edilmesi gereken nokta fonksiyon tanımından sonra fonksiyonun içeriğini oluşturan kodların dört karakter boşluk içeriden başlaması gerektiği kuralıdır, girintisi verilmeyen kodlar fonksiyona ait değilmiş gibi işlem görür. Her fonksiyonu da bir satır boşluk ile diğer kodlardan ayırmak kodu okumayı kolaylaştırır.
Programda bir kütüphaneye (yani başka python kodlarına ve fonksiyonlarına) ihtiyaç varsa import ile programda kullanılabilir olması sağlanır, nereden yükleneceği de from ile belirtilir. Örneğin;
from pisi.actionsapi import pisitools
Böylece pisi.actionsapi içindeki pisitools dosyasındaki fonksiyonları pisitools.fonksiyon_adı(…) şeklinde kullanabiliriz.
Hepsi bu kadar, eğer pisileme yapacaksanız Python konusunda bundan daha fazla bir şey bilmenize pek gerek olmayacaktır. Çünkü paket hazırlanırken ve kurulurken gerekli olan tüm fonksiyonlar için Pisi geliştiricileri tarafından sağlanmıştır, paket depolarındaki tüm paketler bu hazır fonksiyonlar kullanılarak hazırlanmıştır. Bu hazır fonksiyon kütüphanesindeki fonksiyonlara genel olarak Actions API denir.
Tek yapmanız gereken bu kütüphanelerdeki fonksiyonları doğru parametrelerle kullanmaktan ibarettir. Bu açıdan bakınca pisi paketi yapabilmek için Python ile önceden çalışmış bir programcı olmaya gerek yoktur, sadece yukarıda bahsedilen Python yazım kurallarını ve Actions API’yi bilmek yeterlidir. Hatta Pisi geliştiricileri actions.py’de Actions API dışında bir kütüphane kullanılmamasını şiddetle tavsiye ederler.
actions.py
Yazılım derlenerek install dizinine kurulurken, pisi sistemi setup, build ve install fonksiyonlarını sırasıyla çalıştırır. En basit actions.py dosyası şu yapıda olmalıdır;
#!/usr/bin/python
def setup(): #Hazırlık işlemleri
def build(): #Derleme işlemleri
def install(): #Kurulum işlemleri
Daha önceden kaynak dosyadan program kurmuş iseniz bunun genelde configure, make ve install aşamalarından geçilerek yapıldığını biliyorsunuzdur. İşte actions.py'deki setup() fonksiyonu pisi tarafından çalıştırıldığında da configure(), bulid() çalıştırıldığında make ve install() çalıştırıldığında install işlemi yapılmaktadır. Ancak maalesef her paket için bu üç komutun öylece girilmesi yeterli olmuyor, örneğin configure işleminde pek çok parametre ile paketin pisi linux sistemine uygun şekilde derlenmesi gerekiyor veya bazen paketin kaynak dosyasında farklı dizinlere girilerek bu komutları işletmek gerekebiliyor.
Kaynak paket Work dizinine açıldıktan sonra dizin içinde iken ./configure --help komutu ile parametreleri görüntüleyebilirsiniz.
Bu nedenle öncelikle yapmanız gereken, hazırlanacak paket eğer bir yazılım ise, varsa configure, make aşamalarını ve parametrelerini yazılımın dokümanlarından öğrenmek olacaktır.
- Daha sonra da bu parametreleri ve diğer gerekli işlemleri Actinos API'deki hangi fonksiyonlarla yapacağınızı tespit etmelisiniz.
- Bundan sonra birkaç deneme yanılma ile uygun bir configure, make ve install işlemi gerçekleştirebilirsiniz. Denemelerin sonuçlarını görmek için de /var/pisi/paket_adı/install dizininden faydalanabilirsiniz.
Sonuçta actions.py dosyasında kalıplaşmış kodlar yoktur, işlenen her paketin ihtiyaçlarına göre setup(), bulid() ve install() fonksiyonlarının kodları değişecektir. Onun için henüz hiç paket yapmadıysanız pisilinux git repolarındaki actions.py dosyalarını incelemeniz gerekecektir.