Archive for the ‘Gentoo Makaleleri’ Category

Gentoo Overlays: Kullanıcının rehberi

Temmuz 28, 2008

Overlay nedir?

“Overlay” Portage için paket ağaçlarıdır. Overlayler Gentoo için ilave ebuildler içerir. Gentoo geliştiricileri tarafından bakımları yapılır ama ana Portage ağacından ayrıdırlar. (Ovırley olarak telaffuz ediyorum. :) B.S )

Neden Overlayleri kullanırız?

İnsanlar pek çok sebepten ötürü overlay oluştururlar. Esas sebepler şunlardır:
* Eğer Portage ağacındaki bir ebuild’i değiştirdiyseniz, yaptığınız değişiklik Portage ağacının bir sonraki senkronunda kaybolacaktır. Ama değişiklik yaptığınız ebuild’i bir overlay içinde sakalarsanız güvende olacaktır.
*Overlayler Gentoo Portage paket ağacının bir parçası değildir. Ana Portage ağacına zarar vermeden bir ebuild’i test edip geliştirmek için muhteşem yerlerdir.
* Her ebuild dosyası Portage ağacına dahil değildir. Bir overlay ebuild Portage ağacına girene kadar onu saklamak için en ideal yerdir.

overlays.gentoo.org nedir?

http://overlays.gentoo.org/ Gentoo gelişticilerine ve kullanıcılarına yarının Gentoo paketleri üstünde çalışma olanağı tanıyan bir sosyal çalışma alanıdır. 

Tüm Resmi Overlayler overlays.gentoo.org üstünde mi tutuluyor?

hayır, Gentoo geliştiricileri overlaylerini istediklerini yerde tutmak konusunda özgürdürler.

Overlaylerle çalışmaya başlamak

1-Layman Kurulumu

Laymanı kurmak için şu adımları izleyin:
Kod listeleme 2.1: Layman kurulumu
emerge layman
echo “source /usr/portage/local/layman/make.conf” >> /etc/make.conf

Not: Layman, siz ilk overlayinizi ekledikten sonra /usr/portage/local/layman/make.conf dosyasını oluşturacaktır.  Eğer hemen bir overlay eklemeyi planlamıyorsanız bu dosyanın gerçekten varolduğuna ve boş ”PORTDIR_OVERLAY” değişkenini içerdiğine emin olun. Aksi takdirde Portage hata verecektir. ”echo PORTDIR_OVERLAY=\”\” > /usr/portage/local/layman/make.conf” komutunu çalıştırarak dosyanın doğru bir şekilde oluşturulup oluşturulmadığını kontrol edebilirsiniz.

Uygun Overlayleri listeleme

Uygun overlayleri listelemek için şunu kullanın:

Kod listeleme 2.2: uygun overlayleri listeleme

layman -L

Bir Overlay ekleme
Bilgisayarınıza bir overlay eklemek için şunu kullanın:

Kod listeleme 2.3:Bir overlay eklemek

layman -a <overlay-adı>

Örneğin PHP overlayını eklemek için şunu kullanın:

Kod listeleme 2.4: PHP overlayı eklenmesi
layman -a php

Bir overlayden paket yükleme

Overlayı ekledikten sonra oradan paket yükleyebilirsiniz.

Kod listeleme 2.5: Bir overlaydan bir paket yüklemek

emerge -av <category>/<package>

Portage, otomatik olarak ana portage ağacını ve eklediğiniz tüm overlayleri arar ve paketin en sonra versiyonunu seçer. Eğer Portage bir paketi overlaydan almıyorsa bu normaldir. Muhtemelen paket ~arch olarak işaretlenmiştir. Sisteminizin mimarisi ise arch’tır(genellikle x86)

Overlayi güncelleme

Eklediğiniz overlayleri güncellemek için şunu kullanın:

Kod listeleme 2.6: Eklediğiniz tüm overlayleri güncelleme
layman –sync ALL

Tüm Gentoo geliştiricileri daha önce Gentoo kullanıcısıydılar. Kullanıcılarımız sadece Gentoo’nun varlığının sebebi değildirler; onlar gelecekteki katkıcılarımızdır da.

Eğer bir projeye katkıda bulunmak istiyorsanız, size proje overlayine erişim hakkı verebilir ve yol gösterebiliriz. Eğer yaptıklarınızı ve tekniklerinizi beğenirsek sizi Gentoo geliştiricisi yapabiliriz. Eğer bir overlaye katkıda bulunmak istiyorsanız en iyi yaklaşım ilgili gelişticilerle iyi çalışma ilişkileri içinde olmanızdır.

Bu belge Gentoo Overlays:Users’ Guide belgesinin Türkçe çevirisidir. Belgenin içeriği Creative Commons Attribution / Share Alike altında lisanslanmıştır. Eserin ilk sahibi Gentoo topluluğudur.

Gentoo Linux Çekirdek Güncelleme Rehberi

Temmuz 27, 2008

Çekirdek, Portage’de güncellenmesi için elle müdahale gerektiren birkaç paket sınıfından biridir. Portage çekirdek kodlarını sizin için İnternet’ten indirir ve kurar ama siz elle müdahale edene kadar değişiklikler geçerli olmaz.Bu rehber, kullanıcıların çekirdeği kararlı bir sürümden bir diğerine güncellemesini hedefler, aynı zamanda bir çekirdek paketinden diğerine göç için kullanışlıdır. gentoo-sources bu dokümanda bir örnek olarak kullanılmıştır. Bununla birlikte yönlendirmeler başka paketlere de uygulanabilir.

Neden çekirdek güncelleriz?

Genellikle, ufak sürüm değişiklikleri herhangi bir büyük değişim getirmez. Çekirdeği güncellemenin yeni donanım sürücülerini kullanmak, güvenlik güncellemelerini almak gibi faydaları olabilir. Her yeni çekirdek versiyonunu tercih etmeseniz bile güncellemeleri takip etmenizi öneririz.  Bir güvenlik güncellemesini içeren sürüm yayınlandığında güncelleme yapmanızı şiddetle tavsiye edilir.

Yeni kodları Portage’dan elde etmek

Yeni çekirdek kodlarını herhangi bir paket gibi emerge kullanarak güncelleyebilirsiniz.  Güncellemek istediğiniz çekirdek world güncellemeleri listesinde gözükecektir

Kod listeleme 3.1: Güncelleme listesinde görülen yeni çekirdek kodları
# emerge -Dup world
Calculating dependencies …done!
[ebuild    NS ] sys-kernel/gentoo-sources-2.6.9-r2 [2.6.8-r5]

Not: Yukarıdaki NS ibaresi yeni çekirdeğin yeni bir Slot’a kurulacağı anlamına gelir. Eski çekirdeğin kodları siz onları elle silene kadar tutulacaktır.

Şu şekilde güncelleyebilirsiniz.

Kod listeleme 3.2: Kernel kodlarını güncelleme
# emerge -u gentoo-sources

Çekirdek kodları /usr/src alt klasörü içine yerleştirilecektir. Yukardaki örnekte yeni kodlar   /usr/src/linux-2.6.9-gentoo-r2 klasörüne yerleştirilecektir.

/usr/src/linux sembolik bağını güncelleme

Gentoo, çekirdeğin kaynak kodunu kullanabilmeniz için /urs/src/linux sembolik bağlantısını kullanmayı gerekli kılar. Portage, yeni çekirdek kodlarını emerge ettiğinizde symlinki otomatik olarak güncelleyebilir. Bunun için symlink flagını  /etc/make.conf içindeki USE değişkeninde belirtmeniz gerekir.

Kod listeleme 4.1: /etc/make.conf içinde USE değişkeni

(Add the symlink keyword)
USE=”symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2″

Ayrıca symlink’i değiştirmek için eselect kullanabilirsiniz.

Kod listeleme: 4.2: symlink için eselect kullanımı
(Install eselect if you don’t have it)
# emerge eselect
(See the list of available kernels)
# eselect kernel list
Available kernel symlink targets:
[1]   linux-2.6.9-gentoo-r1
[2]   linux-2.6.9-gentoo-r2
(Select the correct kernel)
# eselect kernel set 1

Eğer kendiniz yapmak isterseniz aşağıdaki örnekte Linux-2.6.9-gentoo-r2 için  nasıl yapılcağı gösterilmiştir.

Kod listeleme 4.3: /usr/src/linux softlinkini elle güncelleme

# cd /usr/src
# ln -sfn linux-2.6.9-gentoo-r2 linux

Yeni çekirdeği ayarlama derleme ve kurma

Ayarlamalar için Gentoo Handbooktaki Configuring the Kernel and Configuring the Bootloader kısmını incelemenizi öneririz. Gerekli işlemlerin özeti aşağıda verilmiştir.

Opsiyon 1: Genkernel ile otomatik çekirdek kurulumu

Eğer bir Genkernel kullanıcısı iseniz, çekirdeği ilkez yüklediğiniz zaman yaptıklarınızı tekrar edeceksiniz.

Genkernel’i basitçe çalıştırın:

Kod listeleme 5.1:  genkernel’i çalıştırmak
# genkernel all

Diğer genkernel özelliklerini kullanmak için bazı ekstra parametreler kullanabilirsiniz. Örneğin, eğer menuconfig kullanarak bazı eksta çekirdek ayarlarını kullanmak ve genkernelin grub’u otomatik olarak ayarlamasını istiyorsanız genkerneli aşağıdaki parametrelerle çalıştırın.

Kod listeleme 5.2: Genkernel’i bazı sık kullanılan argümanlarla çalıştırmak

# genkernel –menuconfig –bootloader=grub all

Daha fazla bilgi için Gentoo Linux Genkernel rehberini takip edebilirsiniz. Pek çok ayar, ayar dosyasında tanımlanabilir.

/etc/genkernel.conf

Opsiyon 2: Elle ayarlama

Başlamak için menuconfig aracını çekirdek kaynak kodu ağacın içinde çalıştırın:

Kod listeleme 5.3: menuconfig aracını başlatma
# cd /usr/src/linux
# make menuconfig

Donanımınız ve çalışma ortamınız için gerekli ayarlamaları yapın. Çekirdek ayarlaması konusunda ek bilgi için Gentoo handbook’un Configuring the Kernel kısmına bakabilirsiniz.

Çekirdeğinizi derleyin ve boot bölümünüzü kopyalayın. Eğer /boot ayrı bir bölümse, yeni kerneli kopyalamadan önce bağlanmış olmasını sağlayın!

Kod listeleme 5.4: Yeni çekirdeği derleme ve kurma

# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2

Son olarak, açılış yöneticisi ayarlarınızı güncelleyin. Yeni çekirdek için yeni bir girdi oluşturun(eskisini henüz silmeyin!) ve /boot bölümünü ayırın. Bu işlemin ayrıntıları için Gentoo Handbook’a bakabilirsiniz.

Harici modülleri tekrar kurmak

Eğer çekirdeğin kod ağacında bulunmayan ama Portage’nin sağladığı bir çekirdek modülü kullanıyorsanız(Alsa sürücüleri, NVIDIA yada ATI grafik sürücüleri) yeni çekirdeği kurduktan sonra bunları tekrar yüklemek zorundasınız.

Ayrımış( separate ebuilds or the kernel at /usr/src/linux) ebuildleri kullanarak kurduğunuz çekirdek modüleri için basit bir araç sağlıyoruz.  Bu aracın kullanımı oldukça basittir. Çekirdek güncellemesi sonrası yeniden inşa edilmesi gereken sürücülerin veritabanını oluşturması için module-rebuild populate komutunu verin. Güncelleme bir kez tamamlandıktan sonra ya da çekirdeği yeniden derledikten sonra, sürücülerin yeni çekirdeğe göre inşa edilmesi için module-rebuild rebuild komutunu verin.

Daha fazla bilgi için module-rebuild’i hiçbir parametre olmadan çalıştırınız

Yeni Çekirdekle açılış

Şimdi, tüm uygulamları kapatın ve sistemi yeniden başlatın. Eğer yukarıdaki yönlendirmeleri tam olarak izlediyseniz, açılış yöneticisi menüsü yeni çekirdek için bir girdi içerecektir. Yeni çekirdeği seçin ve sistemi açın. Umarız, sisteminiz yeni çekirdekle başarılı bir şekilde açılır ve çalışmaya kaldığınız yerden devam edersiniz. Eğer bir hata yaptıysanız ve sistem yeni çekirdekle açılmıyorsa, sistemi yeniden başlatın ve düzgün çalışan en son çekirdekle sisteme giriş yapın.

Eski çekirdekleri silmek

Yeni çekirdeğinizle mutlu olabilirseiniz eski çekirdeği sistemde tutmak istemeyebilirsiniz.  Yeni çekirdek kodları hariç olmak üzere diğer tüm çekirdek kodlarını silmek istiyorsanız emerge’nin budama(prune) opsiyonundan faydalanabilirsiniz. gentoo-sources örneğine devam edelim:

Kod listeleme 9.1: Eski sürümleri budamak

# emerge -P gentoo-sources

Pek çok durumda geçici dosyalar derleme süresince kendilerine ayrılan alanda, /usr/src dizininde bulunurlar. rm kullanarak güvenle silebilirsiniz. Ayrıca bu çekirdek tarafından kullanılan modülleri de güvenle silebilirsiniz. Bu modüller /lib/modules dizini altında çekirdeğin adı ile bulunurlar. Sileceğiniz modüllerin ait oldukları çekirdeklerin hala kullanılıp kullanılmadığına dikkat ediniz.

Son olarak /boot bölümünü ayırabilir ve budadığınız çekirdeğin bzImage dosyasını silebilirsiniz. Ayrıca açılış yöneticisi ayarlarını da temizleyiniz.

Bu belge Gentoo Linux Kernel Upgrade Guide belgesinin 22 Haziran 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.

Linux Hızlandırma ipucu

Temmuz 25, 2008

İnterneti kurcalarken yeni bir hızlandırma ipucu keşfettim. Hemen paylaşalım.Öncelikle xdm betiğine ayar vermemiz gerekiyor. Betiği açın ve şu satırı bulun:

/sbin/telinit a &> /dev/null

Ve yerine şu satırı koyun:

/etc/X11/startDM.sh &> /dev/null

Şimdi de şu 2 komutu kullanın(burası Gentoo’ya has. Bu işlemi kendi dağıtımınıza göre yapın)

# rc-update del xdm
# rc-update add xdm boot

Kaynak:

http://beans.seartipy.com/2006/10/01/how-to-speed-up-booting-into-gnome-a-gentoo-wiki-tip/

Xorg klavye ayarları ~Bug fixed~

Temmuz 25, 2008

Xorg ve hal’ın yeni sürümü başıma acayip dertler açtı. Ne kadar uğraşırsam uğraşayım bir türlü doğru klavye düzenini bulamıyordum. Bir kaç gri saça mal olan satırlar aşağıda…

/etc/hal/fdi/policy/10-x11-input.fdi dosyasına ekleyin daha sonra donanım soyutlama katmanını ve X servisini yeniden başlatmanız gerekmekte. Bu kadar sıkıntının sebebi ise şu: X klavye ayarını artık donanım soyutlama katmanından (hal) alıyor. Ve bu sadece bela demek şu an için. Eğer hal’ı 0.5.10 ve daha üstü sürüm ile kullanıyorsanız bilin ki belayı buldunuz.

<?xml version=”1.0″ encoding=”ISO-8859-1″?> <!– -*- SGML -*- –>
<deviceinfo version=”0.2″>
<device>
<match key=”info.capabilities” contains=”input.keymap”>
<append key=”info.callouts.add” type=”strlist”>hal-setup-keymap</append>
</match>

<match key=”info.capabilities” contains=”input.keys”>
<merge key=”input.xkb.rules” type=”string”>base</merge>

<!– If we’re using Linux, we use evdev by default (falling back to
keyboard otherwise). –>
<merge key=”input.xkb.model” type=”string”>keyboard</merge>
<match key=”/org/freedesktop/Hal/devices/computer:system.kernel.name”
string=”Linux”>
<merge key=”input.xkb.model” type=”string”>evdev</merge>
</match>

<merge key=”input.xkb.layout” type=”string”>tr</merge>
</match>
</device>
</deviceinfo>

Cümleten geçmiş olsun. :)

Portage Özellikleri

Temmuz 14, 2008

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.