Gentoo Logo

Disclaimer : Dokumen ini sudah usang dan tidak diperbarui lagi.


[ << ] [ < ] [ Home ] [ > ] [ >> ]


2. Flag USE

Daftar Isi:

2.a. Apakah Flag USE itu?

Ide dibalik flag USE

Ketika anda menginstal Gentoo (atau distribusi yang lain, atau bahkan sistem operasi yang lain), anda membuat pilihan berdasarkan lingkungan tempat anda bekerja. Pengaturan suatu server berbeda dari pengaturan workstation. Workstation untuk game juga berbeda dari workstation untuk render 3D.

Hal ini tidak hanya berlaku untuk memilih paket apa saja yang akan anda instal, tetapi juga fitur apa yang harus didukung oleh paket-paket tertentu. Jika anda tidak membutuhkan OpenGL, mengapa anda harus repot-repot menginstal OpenGL dan mengaktifkan dukungan OpenGL pada hampir semua paket anda? Jika anda tidak ingin menggunakan KDE, mengapa anda harus melakukan kompilasi paket dengan dukungan untuk KDE jika paket tersebut bisa berjalan lancar tanpa dukungan itu?

Untuk membantu pengguna dalam menentukan apa saja yang akan diinstal/diaktifkan dan yang tidak, kami menginginkan pengguna menentukan lingkungannya sendiri dengan cara yang mudah. Hal ini akan memaksa pengguna untuk menentukan apa saja yang benar-benar diinginkannya dan memudahkan proses Portage, sistem pengaturan paket kami, untuk mengambil keputusan yang tepat.

Definisi suatu flag USE

Perhatikan flag USE. Flag tersebut adalah suatu kata kunci yang mengaktifkan dukungan dan informasi dependensi untuk suatu konsep tertentu. Jika anda mendefinisikan suatu flag USE, Portage tahu bahwa anda akan membutuhkan dukungan untuk beberapa kata kunci pilihan. Tentu saja hal ini akan mengubah informasi dependensi untuk sebuah paket.

Marilah kita melihat sebuah contoh khusus: kata kunci kde. Jika anda tidak memiliki kata kunci ini pada variabel USE anda, semua paket yang memiliki opsi dukungan KDE akan dikompilasi tanpa dukungan KDE. Semua paket yang memiliki dependensi opsi KDE akan diinstal tanpa instalasi pustaka KDE (sebagai ketergantungannya). Jika anda menggunakan kata kunci kde, maka paket tersebut akan dikompilasi dengan dukungan KDE, dan pustaka KDE akan diinstal sebagai dependensinya.

Dengan mendefinisikan kata-kata kunci secara benar, anda akan mendapatkan sistem yang sesuai dengan kebutuhan snda.

Apa saja flag USE yang tersedia?

Terdapat dua jenis flag USE : flag USE global dan lokal.

  • Sebuah flag USE global digunakan oleh beberapa paket, untuk keseluruhan sistem. Flag ini yang paling sering ditemui orang sebagai flag-flag USE.
  • Sebuah flag USE lokal digunakan oleh suatu paket tunggal untuk membuat keputusan yang berkaitan dengan paket tertentu.

Daftar flag USE global yang tersedia dapat diperoleh online atau secara lokal di file /usr/portage/profiles/use.desc.

Daftar flag-flag USE lokal yang tersedia dapat ditemukan di /usr/portage/profiles/use.local.desc.

2.b. Menggunakan flag USE

Deklarasi flag USE secara permanen

Dengan harapan anda dapat diyakinkan akan pentingnya flag USE, kami akan menginformasikan bagaimana cara mendeklarasikan flag USE.

Seperti yang telah disebutkan sebelumnya, semua flag USE dideklarasikan di dalam variabel USE. Untuk memudahkan user mencari dan memilih flag USE, kami telah memberikan sebuah pengaturan USE default. Pengaturan ini adalah kumpulan dari flag USE yang kami rasa sering digunakan oleh user Gentoo. Setting default ini dideklarasikan pada file make.defaults, yang merupakan bagian dari profil anda.

Profil yang digunakan oleh sistem anda ditunjukkan oleh simlink make.profile. Setiap profil bekerja di atas profil lain yang lebih luas, hasil akhirnya adalah rangkuman dari seluruh profil. Profil teratas adalah profil base (/usr/portage/profiles/base).

Mari kita lihat pengaturan USE default untuk profil 2004.3:

Daftar Kode 2.1: Variabel USE make.defaults untuk profil 2004.3

(Contoh ini merupakan rangkuman dari setting di profil base,
  default-linux, default-linux/x86 dan 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"

Seperti yang anda lihat, variabel ini sudah memiliki cukup banyak kata kunci. Jangan mengubah file /etc/make.profile/make.defaults untuk menyesuaikan variabel USE dengan kebutuhan anda: perubahan ini akan dibatalkan ketika anda memperbarui Portage!

Untuk mengubah pengaturan default ini, anda perlu menambahkan atau mengubah kata kunci pada variabel USE. Hal ini dilakukan secara global dengan mendefinisikan variabel USE pada /etc/make.conf. Dalam variabel ini, Anda menambahkan flag USE tambahan yang Anda butuhkan, atau membuang flag USE yang tidak anda butuhkan. Yang kedua ini dapat dilakukan dengan menambahkan kata kunci dengan tanda minus ("-").

Sebagai contoh, untuk membuang dukungan untuk KDE dan QT tetapi menambahkan dukungan untuk ldap, variabel USE berikut dapat didefinisikan pada /etc/make.conf:

Daftar Kode 2.2: Contoh pengaturan USE di /etc/make.conf

USE="-kde -qt3 -qt4 ldap"

Deklarasi flag-flag USE untuk paket-paket individual

Kadang-kadang anda ingin menggunakan sebuah flag USE khusus untuk satu (atau beberapa) aplikasi tetapi bukan untuk seluruh sistem. Untuk melakukannya, anda perlu menciptakan direktori /etc/portage (jika belum ada) lalu edit /etc/portage/package.use. Biasanya package.use merupakan sebuah file biasa, tetapi juga bisa berupa direktori; bacalah man portage untuk mendapatkan informasi lebih lengkap. Contoh berikut ini menganggap package.use sebagai sebuah file.

Sebagai contoh, jika anda tidak ingin dukungan berkdb secara global tetapi anda menginginkannya untuk mysql, anda harus menambahkan:

Daftar Kode 2.3: Contoh /etc/portage/package.use

dev-db/mysql berkdb

Tentu saja anda dapat juga secara eksplisit menonaktifkan flag-flag USE untuk sebuah aplikasi tertentu. Sebagai contoh, jika anda tidak ingin dukungan java di PHP:

Daftar Kode 2.4: Contoh lain /etc/portage/package.use

dev-php/php -java

Deklarasi flag USE sementara

Kadang-kadang anda ingin mendefinisikan pengaturan pada USE tertentu untuk penggunaan sekali saja. Daripada mengubah file /etc/make.conf dua kali (melakukan dan membatalkan perubahan USE), anda dapat mendeklarasikan variabel USE sebagai variabel lingkungan. Perlu diingat, ketika anda menginstal ulang atau memperbarui aplikasi ini (secara eksplisit atau sebagai bagian dari update sistem), perubahan-perubahan anda akan hilang!

Sebagai contoh, kita akan menonaktifkan java untuk sementara dari pengaturan USE selama instalasi seamonkey.

Daftar Kode 2.5: Menggunakan USE sebagai variabel lingkungan

# USE="-java" emerge seamonkey

Urutan-urutan

Tentu saja terdapat urutan-urutan pengaturan yang memiliki prioritas terhadap pengaturan USE. Anda tentu saja tidak ingin menggunakan USE="-java" hanya untuk melihat bahwa java ternyata telah digunakan. Urutan untuk pengaturan USE adalah, diurutkan berdasarkan prioritas (yang pertama mempunyai prioritas terendah):

  1. Pengaturan USE default yang ditentukan di file make.defaults sebagai bagian dari profil anda
  2. Pengaturan USE yang didefinisikan ditentukan di /etc/make.conf
  3. Pengaturan USE yang ditentukan oleh pengguna di /etc/portage/package.use
  4. Pengaturan USE yang ditentukan oleh pengguna sebagai variabel lingkungan

Untuk melihat pengaturan USE akhir yang akan digunakan oleh Portage, jalankan emerge --info. Perintah ini akan memberikan daftar yang berisi semua variabel yang relevan (termasuk variabel USE) yang digunakan oleh Portage.

Daftar Kode 2.6: Menjalankan emerge --info

# emerge --info

Mengadaptasikan seluruh sistem ke pengaturan flag USE baru

Jika anda telah mengubah flag-flag USE anda dan ingin memperbarui seluruh sistem anda agar menggunakan flag-flag USE baru tersebut, gunakan opsi --newuse pada perintah emerge:

Daftar Kode 2.7: Memperbarui seluruh sistem

# emerge --update --deep --newuse world

Selanjutnya, jalankan depclean Portage untuk menghapus semua dependensi kondisional yang ter-emerge pada sistem "lama" anda, tetapi tidak lagi digunakan karena flag-flag USE baru.

Peringatan: emerge --depclean adalah langkah yang berbahaya dan sebaiknya digunakan dengan sangat hati-hati. Periksa kembali daftar paket-paket "usang" yang ditampilkan untuk memastikan agar Portage tidak menghapus paket-paket yang anda perlukan. Pada contoh berikut ini, kami menambahkan opsi -p agar depclean hanya menampilkan daftar paket-paket tanpa menghapusnya.

Daftar Kode 2.8: Menghapus paket-paket usang

# emerge -p --depclean

Setelah depclean selesai, jalankan revdep-rebuild untuk membangun ulang aplikasi yang terkait secara dinamis dengan objek-objek yang disediakan oleh paket-paket yang telah dibuang. revdep-rebuild merupakan bagian dari paket gentoolkit; jangan lupa untuk menginstalnya:

Daftar Kode 2.9: Menjalankan revdep-rebuild

# revdep-rebuild

Setelah semuanya selesai, sistem anda sekarang menggunakan setting flag-flag USE yang baru.

2.c. Flag USE dari paket tertentu

Melihat flag USE yang tersedia

Mari kit gunakan seamonkey sebagai contoh: flag USE saja yang digunakan? Untuk mengetahuinya, kita menggunakan emerge dengan opsi --pretend dan --verbose:

Daftar Kode 3.1: Melihat flag USE yang digunakan

# 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 bukanlah satu-satunya alat untuk pekerjaan ini. Sebenarnya kami memiliki suatu utilitas yang didedikasikan untuk melihat informasi paket yang bernama equery, yang merupakan bagian dari paket gentoolkit. Pertama, instal gentoolkit:

Daftar Kode 3.2: Instalasi gentoolkit

# emerge gentoolkit

Sekarang jalankan equery dengan argumen uses untuk melihat flag USE dari suatu paket. Sebagai contoh, untuk paket gnumeric:

Daftar Kode 3.3: Menggunakan equery untuk melihat flag USE yang digunakan

# equery 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

[ << ] [ < ] [ Home ] [ > ] [ >> ]


Print

View all

Diperbarui 1 April 2008

Versi asli dari dokumen ini terakhir diupdate 11 Pebruari 2013

Rangkuman: Flag USE sangat penting di Gentoo. Pada bab ini, anda akan mempelajari cara menggunakan flag USE dan mengerti bagaimana flag USE berinteraksi dengan sistem anda.

Sven Vermeulen
Author

Grant Goodyear
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Joshua Saddler
Editor

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

Siauw Nam Khong
Translator

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.