actions.py

Bu dosyadaki kodlar paketin kaynak dosyasından pisileme işleminin yapıldığı bilgisayarda derlenmesi ve sanal olarak 2.1'de bahsedilen install dizinine sanal bir kurulum yapılması için pisi tarafından çalıştırılır. Python programı yapısındadı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 olarak kullanılır. Örneğin;

!/usr/bin/python

Fonksiyonu tanımlama

def bir_fonksiyon(adi, soyadi):

Ekrana yazdır

print(adi)

print(soyadi)

Değişkenlere veri ata

name=”Luke”

surname=”Skywalker”

Fonksiyonu kullan

bir_fonksiyon(name, surname)

Ekrana “Luke Skywalker” 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 fonksiyon tanımından sonra fonksiyon içeriğini oluşturan kodların dört karakter boşluk içeriden başlaması gerektiği kuralıdır, yoksa girinti verilmeyen kodlar fonksiyona ait değilmiş gibi işlem görür. Her fonksiyonu da boşluk ile diğer kodlardan ayırmak kodu okumayı kolaylaştırır.

Programda bir kütüphaneye (yani başka python kodları, fonksiyonları) 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 kurulurken gerekli olan tüm işlemler için Pisi Linux geliştiricilerinin sağladığı hazır fonksiyonlar bulunmaktadır, paket depolarındaki büyük küçük tüm paketler bu hazır fonksiyonlar kullanılarak sisteme kurulur. 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 Linux geliştiricileri actions.py’de Actions API dışında bir kütüphane kullanılmamasını şiddetle tavsiye ederler.

actions.py

Paket derlenirken ve 1.2'de anlatılan install dizinine kurulurken, pisi sistemi bu dosyadan setup, bulid 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 komutlarının sırasıyla girilmesiyle 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şlemini yapmalıyız. Ancak maalesef her paket için bu üç komutun öylece girilmesi yeterli olmuyor, örneğin configure işleminde pek çok parametre ile paketin bizim sistemimize uygun şekilde derlenmesine yardımcı olmak gerekiyor veya paketin kaynak dosyasında farklı dizinlerde bu komutları kullanmak gerekebiliyor.

  • Bu nedenle öncelikle yapmanız gereken, kurulumu yapılacak paket eğer bir program ise, varsa configure, make parametrelerini paketin 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 1.2 bölümünde bahsedilen /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 mutlaka 1.3 bölümünde belirtilen svn depolarındaki actions.py dosyalarını incelemeniz gerekecektir.

Actions API

Actions API burada tek tek anlatılamayacak kadar çeşitli fonksiyona sahiptir ayrıca geliştiriciler tarafından belgelendirilmiştir. ActionsAPI adresinden en güncel Actions API referansına ulaşılabilir.

Last updated