PisiLinux için yeni bir altyapı…

Merhaba bugün sizlere PisiLinux için geliştirilen dağıtık derleme çiftliğinden bahsedeceğim biraz. Öncelikle dağıtık derleme çiftliği uygulaması sevgili İlker Manap tarafından geliştirilmektedir. Dağıtık derleme çiftliğinde daha öncekinden farklı olarak docker alt yapısı kullanıldı. Docker içinde ise sevgili Ertuğrul Erata tarafından hazırlanan docker imajı kullanılmaktadır. @ertugerata bu imajı hazırlarken çok emek harcadı ve temel sistemi 75 pakete kadar indirdi.

Peki bu docker nedir ve ne işe yarayacak?
Öncelikle docker ile sanal bir sistem oluşuyor ve hazırlanan docker imajı ile tüm kullanıcılarda aynı derleme ortamı elde ediliyor. Böylece paket derlemede standart bir sistem kullanılmış oluyor ve uygulamaların yanlış kitaplıklara bağlantılanması (linklenmesi) engellenmiş oluyor.

Docker uygulaması PisiLinux deposunda yer almaktadır. Öncelikle docker uygulamasını aşağıdaki komutu kullanarak bilgisayarımıza kuruyoruz.

pisi it docker

docker ı çalıştırmak için ise aşağıdaki komut kullanılıyor

sudo docker -d -s overlay

docker1

Docker’ı çalıştırdıktan sonra sıra docker imajının yerele alınmasında. Bunun için ise öncelikle yeni bir konsol açıyoruz ve aşağıdaki komutu kullanıyoruz.

sudo docker pull ertugerata/pisi-chroot-farm

docker2Tüm satırlarda “Download complete” yazdığında docker imajı sistemimizde hazır demektir.

NOT: Eğer docker imajı yenilenirse aynı şekilde sudo docker pull ertugerata/pisi-chroot-farm ile güncellemek gerekir.

Docker bilgisayarınızdaki sistemden izole bir ortam oluşturduğundan derleme için kullanacağımız dizinleri ilk çalıştırma esnasında docker’a bağlamamız gerekmektedir. Örnek olarak aşağıdaki komutta git adı ile PisiLinux_2.0 dizinini, root adıyla build dizinini, archives ve packages adıyla ana sistemin archives ve packages dizinlerini bağlamış oluyoruz docker’a.

sudo docker run -v /home/PisiLinux/Masaüstü/PisiLinux_2.0:/git -v /home/PisiLinux/Masaüstü/Pisi2.0/build:/root -v /var/cache/pisi/archives:/var/cache/pisi/archives -v /var/cache/pisi/packages:/var/cache/pisi/packages -itd ertugerata/pisi-chroot-farm bash

Sonra aşağıdaki komut ile çalışan konteynırları görüyoruz. Her defasında bu şekilde kontrol etmemiz gerekiyor çünkü docker her çalıştırmada yeni bir konteynır ile başlıyor.

sudo docker ps

docker_psNOT: Eğer derleme ortamı için aynı konteynırı kullanacaksak

sudo docker ps -a ile tüm konteynırlar listelenir ve kullanmak istediğimiz konteyner aşağıdaki komut ile çalışır hale getirilir.

sudo docker start konteynır_adı

komutlarını kullanıyoruz. Dikkat edilmesi gereken konu her iş bitiminde /var/pisi dizininin temizlenmesi gerekliliğidir. Zamanla orada biriken derleme dosyaları docker imajını doldurabilir. Bunun için

rm -r /var/pisi komutunu kullanıyoruz. Diğer bir önemli nokta ise docker imajı yenilendiğinde konteynırlar değişeceğinden

sudo docker ps ile konteynır ismine bakıyoruz ve daha sonra o konteynırı yukarıda bahsettiğim gibi sürekli bağlayıp  kullanabiliyoruz.

Şimdi de çalışlan konteynırımızı docker’a ekleyelim. Bunun için  konteyer_adı yazan yere konteynır adını yazarak Enter’a basıyoruz

sudo docker attach konteynır_adı

docker_attachŞuan itibariyle docker içindeyiz. Pisi paketlerimizi yapmaya başlamadan önce her defasında şu komutu kullanarak dbus servisini başlatıp pisi paket deposunu güncelliyoruz:

service dbus start && pisi ur
Son olarak bağladığımız dizinler yerinde mi bir kontrol edelim.

ls /git

ls_git

şuanda bu komut ile git dizini olarak bağlamış olduğum PisiLinux_2.0 dizi içindeki dizinleri görüyorum. Dikkat edilirse birden fazla dizin var. Bunun nedeni derlemede kullanacağım kaynak dosya dizinlerini PisiLinux_2.0 dizini altında toplamış olmamdır.

Artık pisi paketlerini derlemeye başlayabiliriz. Aşağıdaki komutta yer alan /git/… alanına derlenecek uygulamanın pspec.xml dosyasının tam adı yazılır ve derleme işlemine başlanır.

pisi bi /git/main/…/pspec.xml -d –ignore-safety

Derleme esnasında eksik bağımlılık söz konusu olunca önce eksik bağımlılık core reposunda varsa kurulur yoksa eksik bağımlılık derlenerek kurulur sonra önceki paketin derleme işleminde devam edilir. Bu arada derleme esnasında tespit edilen eksik *-devel bağımlılıkları pspec.xml dosyasında BuildDependencies altına eklenir. Derleme işlemi bittikten sonra ise

checkelf -s -x *.pisi

komutuyla çalışma zamanı bağımlılıklarını tespit ediyoruz ve bunlarıda RuntimeDependencies altına ekliyoruz.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s