USE Flagların ardındaki fikirler
Gentoo’yu kurarken çalıştığınız ortama göre seçimler yaparsınız. Bir sunucu kurulumu bir iş istasyonu kurulumundan, bir oyun istasyonu kurulumu bir 3D render istasyonu kurulumundan farklıdır.
Bu, sadece kurmak istediğiniz paketler ile ilgili değil, paketlerin hangi özellikleri içereceği ile de ilgilidir. Eğer OpenGL’ye ihtiyacınız yoksa neden OpenGL kurasınız ve paketlerin çoğunda OpenGL desteği veresiniz? KDE kullanmak istemiyorsanız, paketleriniz de hatasız çalışıyorsa neden onları KDE desteğiyle derleyesiniz? Kullanıcıların, neyi kurup/aktifleştirip neyi kurmayacakları konusunda onlara yardım etmek için kolay bir metod geliştirdik. Bu, yol kullanıcıyı gerçekten ne istediğine karar vermeye zorlamakta ve Portage için işleri kolaylaştırmaktadır Portage paket yönetim sistemimizdir.
Bir USE Flagın tanımı
Bir flag, belirli bir konsept için desteği ve bağımlılık bilgisini somutlaştırır. Belirli bir USE flag tanımlarsanız, Portage seçilen anahtar sözcük için destek istediğinizi bilecektir. Bu durum, aynı zamanda bir paket için bağımlılık bilgilerini değiştirecektir.
Bir örneğe birlikte bakalım: kde anahtar sözcüğü… Eğer bu anahtar sözcük USE değişkenleriniz arasında yoksa, opsiyonel KDE desteğine sahip tüm paketler KDE desteği olmadan derlenecektir. Opsiyonel KDE bağımlılığına sahip tüm paketler de KDE kütüphaneleri desteği olmadan derlenecektir(bağımlılık olarak). KDE anahtar sözcüğünü tanımlarsanız bu paketler KDE desteğiyle derlecektir ve KDE kütüphaneleri bağımlılık olarak kurulacaktır.
Doğru tanımlanmış anahtar sözcükler yardımıyla isteklerinize uygun bir sistem elde edeceksiniz.
Ne tür USE flaglar var?
İki tür USE flag vardır: global ve yerel(local) USE flaglar;
-
Global USE flaglar sistem genelinde muhtelif paketler tarından kullanılır. Bir çok insana göre USE flag budur.
-
Yerel USE flag pakete has kararları uygulamak için kullanılır.
Kullanılabilir global USE flagların listesi internette ve /usr/portage/profiles/use.desc dosyasında bulunabilir. Yerel USE Flagların bir listesi ise /usr/portage/profiles/use.local.desc dosyasında bulunabilir.
2.b USE Flagların kullanımı
Kalıcı USE flagları tanımlamak
USE flagların önemini kavradığınızı umuyoruz. Şimdi sizi USE flagları nasıl tanımlayacağınız konusunda bilgilendireceğiz.
Tüm USE flagların, USE değişkenleri içinde tanımlandığından daha önce bahsetmiştik. Kullanıcılara, USE flagları arama ve seçmede kolaylık olması için öntanımlı USE ayarlarını sağladık. Bu ayarlar, Gentoo kullanıcıları tarafından sıklıkla kullanıldığını düşündüğünmüz USE flagların bir koleksiyonudur. Bu öntanımlı ayarlar, profilinizin bir parçası olarak make.defaults içinde tanımlanmıştır.
Sistem profiliniz /etc/make.profile dosyasına sembolik bağlantıyla bağlıdır. Her bir profil bir diğerinin üstünde çalışır. En üstteki profil temel profildir.
Hep birlikte 2004.3 profilinin öntanımlı ayarlarına bakalım.
Kod listeleme 2.1: 2004.3 profili için make.defauls içindeki USE değişkenleri
(This example is the sum of the settings in base, default-linux, default-linux/x86 and default-linux/x86/2004.3)
USE=”x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib”
Görebileceğiniz gibi, bu değişkende epey bir anahtar sözcük tanımlanmış. Make.defaults dosyasında isteklerinize göre herhangi bir değişiklik, bir uyarlama yapamazsınız: bu dosyadaki değiklikler Portage ağacını güncellediğinizde kaybolacaktır.
Bu öntanımlı ayarları değiştirmek için USE değişkenine anahtar sözcük ekleyip çıkarabilirsiniz. Bu iş, /etc/make.conf dosyasındaki USE değişkenini düzenleyerek yapılabilir. Bu değikene, ihtiyacınız olan USE bayrağını ekleyebilir ya da istemediklerini silebilirsiniz. Bu son işlem eksi işareti (-) ile yaplır.
Örneğin, KDE ve QT desteğini silmek ama ldap desteği eklemek için /etc/make.conf dosyasında aşağıdaki USE tanımlanabilir.
Kod listeleme 2.2: /etc/make.conf dosyasındaki USE ayarı örneği
USE=”-kde -qt3 -qt4 ldap“
USE flagları tek bir paket için tanımlamak
Bazen bir Use flagı uygulamalardan biri(ya da birkaçı) için tanımlamak istersiniz. Bunu yapabilmek için /etc/portage klasörünü oluşturmanız(eğer yoksa) ve /etc/portage/package.use dosyasını düzenlemeniz gerekecektir. Package.use genellike bir dosyadır ama bir klasörde olabilir. Daha fazla bilgi için Portage man sayfasını inceleyiniz. Aşağıdaki örneklerde package.use tek bir dosya olarak kabul edilmiştir.
Örneğin, berkdb desteğini global olarak kullanmak istemiyor ama onu mysql için kurmak istiyorsanız, şu satırları ekleyebilirsiniz:
Kod listeleme 2.3: /etc//portage/package.use dosyası örneği
dev-db/mysql berkdb
Bir USE bayrağını herhangi bir uygulama için kapatabilirsiniz. Örneğin, PHP’den java desteğini çıkarmak isterseniz.
Kod listeleme 2.4: 2. /etc//portage/package.use dosyası örneği
dev-php/php -java
Bu işlemler tüm sistemi kapsamayacaktır.
Geçici olarak USE flag bildirimi
Bazen bir USE ayarını sadece bir kez kullanmak istersiniz. /etc/make.conf dosyasını iki kez düzenlemek yerine(ekleme ve silme) Ortam değişkeni olarak bildirebilirsiniz. Şunu hatırlayın, söz konusu yazılımı tekrar kurduğunuzda ya da güncellediğinizde yaptığınız değişiklikler kaybolacaktır.
Örnek olarak seamonkey paketinin kurulumunda java’yı USE ayarlarından sileceğiz.
Kod listeleme 2.5: Ortam değişkeni olarak USE kullanmak
# USE=”-java” emerge seamonkey
Sıralama
Tabii ki hangi ayarın USE değişkeni üstünde önceliğe sahip olduğu bellidir. Sadece java’nın belirtildiğini görmek için USE=”-java” demek istemezsiniz. USE ayarlarının öncelik sırası(ilk önce gelen en düşük önceliğe sahiptir):
-
Profilinizin bir parçası olarak make.defaults içinde bildirilen USE ayarları
-
/etc/make.conf içinde kullanıcı tarafından belirtilen Use ayarları.
-
/etc/portage/package.use içinde kullanıcı tarafından belirtilen Use ayarları.
-
Ortam değişkeni olarak belirtilen USE ayarları
Portage tarafından önceliklere göre sıralanmış tüm USE değişkenlerini görmek için, emerge –info komtununu kullanın. Bu komut Portage’nin kullandığı tüm değişkenleri(USE flaglar dahil) listeler.
Kod listeleme 2.6: emerge –info çalıştırmak
# emerge –info
Tüm sistem yeni USE flaglara göre ayarlamak
USE flag’ları değiştirdiyseniz ve yeni USE flag’ları tüm sistemde kullanmak için güncelleme yapmak istiyorsanız, emerge’nin –newuse parameteresini kullanın.
Kod listeleme 2.7: Tüm sistemin tekrar inşa edilmesi
# emerge –update –deep –newuse world
(Bu komut aslında tüm sistemi yeniden inşa etmez. Sadece Use flag değişiminden etkilenen paketleri yeniden kurar. B.S)
Portage depclean çalıştırılarak, eski USE flaglara göre bağımlılık sebebi ile kurulmuş ancak yeni USE flaglara göre ihtiyaç duyulmayan paketleri kaldırın.
Dikkat: emerge –depclean kullanmak tehlikeli olabilir ve kullanırken dikkatli olmanızı öneriririz.Kullanılmayan paketler listesini 2 kere kontrol edin ve kullanacağınız bir paketin silinmediğine emin olun. Sonraki örnekte -p anahtarı eklenerek paketlerin silinmeden önce listelenmesi sağlanmıştır.
Kod listeleme 2.8: Kullanılmayan paketlerin silinmesi
# emerge -p –depclean
depclean bittiğinde kullandığı dosyalar ve kütüphaneler silinen paketlerle giden programları yeniden inşa etmek için revdep-rebuild betiğini çalıştırın. revdep-rebuild gentoolkit paketinin bir parçasıdır. Önce onu kurmayı unutmayın.
Kod listeleme 2.9: revdep-rebuild kullanımı
# revdep-rebuild
Bunların tümünü yaptığınızda sisteminiz yeni USE flag ayarlarını kullanıyor olacaktır.
2.c Paketlere has USE flag kullanımı
Kullanılabilir USE flagları görmek
Seamonkey örneğine birlikte bakalım: Bu paket hangi USE flagları kullanır? Öğrenmek için emerge’yi –pretend ve –verbose parametreleri ile kullanırız.
Kod listeleme 3.10: Kullanılan USE flagları listeleme
# emerge –pretend –verbose seamonkey
These are the packages that I would merge, in order:
Calculating dependencies …done!
[ebuild R ] www-client/seamonkey-1.0.7 USE=”crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint” 0 kB
emerge bu işi yapan tek araç değildir. Bu işi yapm ak için adanmış equery adında bir paket vardır, gentoolkit paketine bağlıdır. Öncelikle onu kurun:
Kod listeleme 3.2: Gentoolkit kurulumu
# emerge gentoolkit
Ardından, bir paketin kullandığı Use flagları görmek için equery’i aşağıdaki argümanlarla çalıştırın.
Kod listeleme 3.3: Use flagları görmek için equery kullanımı
# equery –nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column (U) - USE flags from make.conf ]
[ : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
U I
- - debug : Enable extra debug codepaths, like asserts and extra output.
If you want to get meaningful backtraces see
http://www.gentoo.org/proj/en/qa/backtraces.xml .
+ + gnome : Adds GNOME support
+ + python : Adds support/bindings for the Python language
- - static : !!do not set this during bootstrap!! Causes binaries to be
statically linked instead of dynamically
Bu belge USE Flags 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.
