Portage Özellikleri

3.a Portage’nin Özellikleri

Portage, Gentoo deneyiminizi daha iyi kılacak birkaç özelliğe sahiptir. Bu özelliklerin pek çoğu performansı, güvenliği, güvenilirliği(reliabilty) artıracak araçlara dayanır.

Bu özellikleri aktifleştirmek ya da kapatmak için /etc/make.conf içindeki FEATURES anahtar sözcüğünü düzenlemeniz gerekir. Birkaç durumda ek araçlar kurmanız gerekebilmektedir.

Portage’nin tüm özellikleri bu klavuzda anlatılmamaktadır. Daha fazla bilgiye ulaşmak için make.conf’un man sayfasını inceleyiniz.

Kod listeleme 1.1: make.conf man sayfasını inceleme

$ man make.conf

Öntanımlı olarak hangi FEATURES değişkenlerinin kullanıldığını bulmak için emerge –info komutunu kullanabilirsiniz.

Kod listeleme 1.2: Kullanılan FEATURES değişkenlerini listeleme

$ emerge –info | grep FEATURES

3.b Dağıtık Derleme (Distributed Compiling)

distcc kullanımı

distcc, derleme işlemini bir ağdaki makinalara, benzer olmaları gerekli değil, dağıtan bir uygulamadır. distcc istemcisi tüm gerekli bilgileri distcc sunucusuna(distccd çalıştıran makinalar) gönderir ve böylece ağdaki bilgisayarlar kod parçalarını istemci için derlerler. Derleme hızının artması açık bir sonuçtur.

distcc hakkında daha ayrıntılı bilgiyi (ve Gentoo’da nasıl çalıştığını) Gentoo Distcc Dökümanından alabilirsiniz.

Distcc kurulumu

Distcc, monitör görevleri için grafiksel bir monitör ile birlikte gelir. Eğer Gnome kullanıyorsanız ‘gnome’ USE flagını kullanın. Gnome kullanmıyorsanız ve hala monitörü istiyorsanız ‘gtk’ USE flagını USE değişkenlerine koymanızı öneririz.

Kod listeleme 2.1 distcc kurma

# emerge distcc

Portage’de distcc özelliğini aktifleştirmek

Öncelikle, /etc/make.conf içindeki FEATURES değişkenine distcc kelimesini ekleyin. Sonra MAKEOPTS değişkenini kendinize göre düzenleyin. Pek çok klavuz “-jX” şeklinde doldurulmasını tavsiye eder. X, distccd’nin çalıştığı makinanın(including the current host) işlemci sayısının bir fazlasıdır ama başka X değerleriyle daha iyi sonuçlar alabilirsiniz. (Bu kısımın çevirisinden tam emin değilim… B.S)

Şimdi, distcc-config aracını çalıştırın ve uygun distcc sunucularının listesini görün. Basit bir örnek için DistCC sunucularını 192.168.1.102 (yazılımın kurulduğu makina) 192.168.1.103 ve 192.168.1.104 (iki uzak makina): olarak ayarlayabilirsiniz.

Kod listeleme 2.2: 3 adet distcc sunucusu için distcc ayarlaması

# distcc-config –set-hosts “192.168.1.102 192.168.1.103 192.168.1.104″

distccd deamonunu da çalıştırmayı unutmayın.

Kod listeleme 2.3: distccd deamonunun çalıştırılması

# rc-update add distccd default

# /etc/init.d/distccd start

3.c Derleme önbelleği(Caching Compilation)

ccache Hakkında

ccache bir derleme önbelleğidir. Bir program ara işlemler önbelleğe alınacak ve her ne zaman aynı programı derlemek isterseniz işlemin süresi büyük oranda azalacaktır.  5 ila 10 misli zaman kazanarak derleme yapabilirsiniz.

ccache’nin avantaj ve dezavantajlarını görmek için ccache anasayfasını ziyaret edin.

ccache yüklemek için emerge ccache kullanın …

Kod listeleme 3.1: ccache kurulumu

# emerge ccache

Portage’de ccache desteğini açmak

/etc/make.conf dosyasını açın ve FEATURES değişkenine ccache anahtar kelimesini ekleyin. Sonra, yeni bir CCACHE_SIZE değişkeni tanımlayın ve “2G” değerini verin.

Kod listeleme 3.2: /etc/make.conf içinde CCACHE_SIZE değerini düzenleme

CCACHE_SIZE=”2G”

ccache’nin çalışıp çalışmadığını kontrol etmek için ccache’den istatistik bilgilerini alın. Portage farklı bir ccache başlangıç dizini kullandığı için CCACHE_DIR değişkenini de ayarlamanız gerekir.

Kod listeleme 3.3: ccache istatistiklerini görüntüleme

# CCACHE_DIR=”/var/tmp/ccache” ccache -s

/var/tmp/ccache konumu Portage’nin öntanımle ccache ana klasörüdür(home directory) Eğer bu ayarı değiştirmek isterseniz, /etc/make.conf dosyasındaki CCACHE_DIR değişkenini düzenleyebilirsiniz.

Portage dışı C derlemelerinde ccache kullanımı

Eğer Portage dışı C derlemelerinde ccache kullanmak isterseniz /usr/lib/ccache/bin konumunu PATH değişkeninin başına eklemeniz gerekir(/usr/bin den önce) Bu iş, ev dizininizdeki .bash_profile dosyası düzenlenerek yapılabilir. .bash_profile kullanımı PATH değişkenini tanımlamanın bir yoludur.

Kod listeleme 3.4: .bash_profile düzenlemesi

PATH=”/usr/lib/ccache/bin:/opt/bin:${PATH}”

3.d İkili(binary) paket desteği

Hazır paketleri(Prebuilt packages) oluşturmak

Gentoo hazır paket sağlamamasına rağmen, Portage hazır paketlerinin yüklenmesini desteklemektedir. Eğer paket, sisteminizde yüklüyse hazır paket oluşturmak için quickpkg ya da emerge’yi --buildpkg veya –buildpkgonly parametresiyle kullanın.

Sisteme yüklediğiniz her paketin hazır paketini oluşturmak isterseniz, FEATURES değişkenine buildpkg sözcüğünü ekleyin.

Hazır paketleri yüklemek

Gentoo hazır paket sağlamaz ama hazır paketleri bulundurduğunuz bir merkezi depo hazırlayabilirsiniz Bu depoyu kullanmak için /etc/make.conf dosyasına PORTAGE_BINHOST değişkenini ekleyin. Eğer hazır paketler ftp://buildhost/gentoo gibi bir adreste  tutuluyorsa:

Kod listeleme 4.1: /etc/make.conf dosyasında PORTAGE_BINHOST değişkenini ayarlamak

PORTAGE_BINHOST=”ftp://buildhost/gentoo”

Hazır bir paket kurmak isterseniz, emerge komutuna –usepkg seçeneğinin yanısıra –getbinpkg seçeneğini de ekleyin. İlk seçenek, emerge’nin hazır paketi, kaynakları alıp derlemeksizin kurmaya çalışmasını sağlarken; ikinci seçenek, emerge’nin hazır paketi önceden tanımlanmış bir sunucudan indirmesini sağlar.

Kod listeleme 4.2: gnumeric’in hazır paketini yüklemek

# emerge –usepkg –getbinpkg gnumeric

emerge’nin hazır paket opsiyonlaryla ilgili ayrıntılı bilgi man sayfasından alınabilir.

Kod listeleme 4.3: emerge man sayfası

$ man emerge

3.e Dosyaların indirilmesi

Paralel İndirme

Bir seri paketin emerge edilimesinde, bir paket derlenirken Portage sıradaki paketin kaynak kodunu indirebilir. Böylece derleme süresi azalır. Bu kapasiteyi kullanabilmek için ‘parallel-fetch’ anahtar sözcüğünü FEATURES değişkenine ekleyin.

Userfetch

FEATURES değişkenine ‘userfetch’ anahtar sözcüğünü eklediyseniz Portage, paketler indirilirken root haklarını iptal edecektir. Bu küçük bir güvenlik iyileştirmesidir.

Katkıları için Fırat Özgül’e teşekkür ederim…

Bu belge Portage Features belgesinin 7 Temmuz tarihinde güncellenmiş halinin Türkçe çevirisidir. Belgenin içeriği Creative Commons Attribution / Share Alike altında lisanslanmıştır. Eserin ilk sahibi Gentoo topluluğudur.

Yorum Yapın