USE jelölőzászló
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
A USE jelölőzászlók (USE flags) olyan kulcsszavak, amelyek egy bizonyos koncepció támogatását és függőségi információit testesítik meg. Ezek a Gentoo alapvető jellemzői, és a velük való dolgozás jó megértése szükséges a Gentoo rendszer adminisztrálásához.
A USE jelölőzászlók a Portage konfigurálására szolgálnak. Pontosabban annak meghatározására szolgálnak, hogy az egyes csomagok hogyan lesznek beállítva telepítéskor vagy frissítéskor. A USE jelölőzászlók egy csomag számos aspektusát konfigurálhatják. Az elérhető USE jelölőzászlók és a megfelelő lehetséges funkciók az egyes szoftverektől függenek.
A USE jelölőzászlók megváltoztathatják a programcsomag viselkedését. Gyakran állítanak be fordítási idejű beállításokat, bár ezek a beállítási opciók nem jelennek meg szisztematikusan a USE jelölőzászlókon keresztül – a csomagkarbantartók döntik el, hogy milyen opciókat adnak meg USE jelölőzászlókként. A USE jelölőzászlók meghatározhatják, hogy mely választható könyvtárak vagy segédprogramok legyenek összekapcsolva egy csomaggal, gyakran meghatározva a függőségeket. Egy másik példa arra, hogy a USE jelölőzászlók mit változtathatnak, az, hogy mely fájlok szerepelnek a telepítésben. Például, hogy a dokumentáció rendelkezésre álljon-e vagy sem.
Ez a lehetőség, hogy csak csomag telepítésekor válasszon opciókat, a Gentoo egyik nagy előnye a forrásalapúságból.
Az egész disztribúció alapértelmezés szerint észszerű USE jelölőzászlókkal rendelkezik, és ezek tovább finomíthatók a tervezett rendszerhasználatnak megfelelő profil kiválasztásával. Mindegyik csomagnak megvan a saját elérhető USE jelölőzászló készlete, attól függően, hogy mi konfigurálható a csomaghoz, és ezek is észszerű alapértelmezett értékekre vannak állítva. A USE jelölőzászlók alkalmazásának sorrendjét a USE_ORDER változó határozza meg.
A használati zászlókkal való munka alapvető fogalmai a Kézikönyvben találhatók. Tekintse még át a /etc/portage/package.use fájlt a csomagok jelölőzászlóinak beállításáról, és az /etc/portage/make.conf fájlt a globálisan beállítandó jelölőzászlókkal kapcsolatban.
USE jelölőzászlók meghatározása
Technikailag a Gentoo ebuild kódtároló egy alapértelmezett kicsi USE jelölőzászló készlettel érkezik. Az alapértelmezett USE jelölőzászlókat a kiválasztott profil határozza meg. Minden csomaghoz egy elérhető USE jelölőzászló készlet tartozik, és ezeknek is lehet alapértelmezett állapotuk, ha ez a csomaggal összefüggésben indokolt. Minden réteg felülírja az előzőt, így beállíthatja a Portage-ot az egyes csomagok telepítésének beállításához.
A USE jelölőzászlónak három állapota lehet: set (beállított), unset (nem beállított), vagy default (alapértelmezett). A USE jelzőzászlók globálisan beállíthatók vagy hatástalaníthatók (unset) a make.conf fájlban az USE változóban, vagy adott csomagoknál az /etc/portage/package.use -ban.
A USE jelölőzászló jelenléte az egyik ilyen fájlban beállítja az USE jelölőzászlót (ez a set állapot). A USE jelölőzászló előtti mínuszjel ("-") hatástalanítja a USE jelölőzászlót (ez az unset állapot). Ha ezeknek a helyeknek egyikén sincs USE jelölőzászló, akkor az "alapértelmezett" (default állapot) lesz használva.
További információkért tekintse meg az amd64 kézikönyv USE jelölőzászlók használata című részt.
Gyakran célszerűbb csomagonkénti USE jelölőzászlókat beállítani a rendszerszintű helyett. A USE jelölőzászló alapértelmezett értékei általában józan alapértékre vannak beállítva. Alaposan fontolja meg, hogy milyen jelölőzászlókat állít be globálisan a make.conf fájlban.
Bár elméletileg a USE jelölőzászló ideiglenesen beállítható a parancssorban egy környezeti változóban (például USE="<flags>" emerge -av <package>), ne használja ezt a csomagok telepítéséhez. Minden ilyen módon beállított USE jelölőzászló elveszik a csomag frissítése vagy újbóli emerge-legenerálása során.
USE jelölőzászlókkal kapcsolatos hasznos parancsok
Annak megtekintésé, hogy mely USE jelölőzászlók vannak jelenleg engedélyezve:
user $
portageq envvar USE | xargs -n 1
Az alapértelmezés szerint engedélyezett USE jelölőzászlók megtekintése:
user $
USE_ORDER="defaults:pkginternal:repo" emerge --info|grep USE
USE="X a52 aac acl acpi activities alsa amd64 bluetooth branding bzip2 cairo cdda cdr cet crypt cups dbus declarative dri dts dvd dvdr elogind encode exif flac gdbm gif gpm gtk gui iconv icu ipv6 jpeg kde kf6compat kwallet lcms libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses networkmanager nls ogg opengl openmp pam pango pcre pdf pipewire plasma png policykit ppds pulseaudio qml qt5 qt6 readline screencast sdl seccomp semantic-desktop sound spell ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan wayland widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isyncitrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" VIDEO_CARDS="amdgpu dummy fbdev intel nouveau radeon radeonsi vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Annak ellenőrzése, hogy egy bizonyos USE jelölőzászló aktiválva van-e, és mely csomagok használják, futtassa:
user $
euse -I <use_flag> # included with app-portage/gentoolkit
user $
quse <use_flag> # included with app-portage/portage-utils
user $
eix --installed-with-use <use_flag> # included with app-portage/eix
Cserélje ki a <use_flag>
elemet az ellenőrizendő USE jelölőzászlóval.
Ellenőrzi, hogy mely USE jelölőzászlók vannak engedélyezve egy csomag és függőségei merge-legenerálásakor:
root #
emerge --ask --verbose chromium
These are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 5.95 s (backtrack: 0/20). [ebuild N ] media-libs/openh264-2.4.1:0/7::gentoo USE="plugin -test -utils" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="avx2" 58895 KiB [ebuild R ] dev-lang/rust-bin-1.77.1:stable::gentoo USE="profiler* (-big-endian) -clippy -doc (-prefix) -rust-analyzer -rust-src -rustfmt -verify-sig" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" 0 KiB [ebuild R ] virtual/rust-1.77.1:0/llvm-17::gentoo USE="profiler* -rustfmt" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] dev-build/gn-0.2157::gentoo 731 KiB [ebuild R ] net-libs/nodejs-20.12.1:0/20::gentoo USE="icu inspector* npm snapshot ssl system-icu system-ssl -corepack -debug -doc (-lto) -pax-kernel -test" CPU_FLAGS_X86="sse2" 0 KiB [ebuild N ] www-client/chromium-124.0.6367.60:0/stable::gentoo USE="X cups custom-cflags hangouts official proprietary-codecs pulseaudio qt5 screencast system-harfbuzz system-icu system-png system-toolchain system-zstd vaapi wayland widevine -bindist -debug -ffmpeg-chromium -gtk4 (-headless) -kerberos (-libcxx) (-lto) -pax-kernel (-pgo) -qt6 (-selinux)" L10N="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk ur vi zh-CN zh-TW" 3352285 KiB Would you like to merge these packages? [Yes/No]
Ellenőrzi, hogy mely USE jelölőzászlók vannak engedélyezve egyetlen csomaghoz anélkül, hogy kiszámolná annak összes függőségét:
user $
emerge --nodeps --pretend chromium
[ebuild N ] www-client/chromium-124.0.6367.60 USE="X cups custom-cflags hangouts official proprietary-codecs pulseaudio qt5 screencast system-harfbuzz system-icu system-png system-toolchain system-zstd vaapi wayland widevine -bindist -debug -ffmpeg-chromium -gtk4 (-headless) -kerberos (-libcxx) (-lto) -pax-kernel (-pgo) -qt6 (-selinux)" L10N="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk ur vi zh-CN zh-TW"
A () zárójelben lévő USE jelölőzászlók használata kényszerített, maszkolt vagy eltávolított. Ez a kényszer származhat a kiválasztott profilból vagy architektúrából. Annak megértéséhez, hogy miért, elemeznie kell a profilfájlt, például "profiles/base/package.use.stable.mask". Ha úgy gondolja, hogy a profilban a maszkolás hibás, megpróbálhatja feloldani a maszkolást úgy, hogy hozzáadja a csomagot (jelölőzászlók nélkül) a "package.accept_keywords" fájlhoz. Ha a maszkolás nem volt hibás, akkor valószínűleg vagy tönkrement a build, vagy egyáltalán nincs változás (mivel a USE jelölőzászló nem működött).
Emerge parancs opciói
Az emerge parancsnak van néhány USE jelölőzászlóval kapcsolatos opciója. Például:
--changed-use
(-U
)--complete-graph-if-new-use < y | n >
--newuse
(-N
)
A részletekért tekintse meg a man 1 emerge súgót.
"Lokális" vs "globális" USE jelölőzászlók
A "lokális" és a "globális" jelölőzászlók közötti technikai különbség egyszerűen annyi, hogy a hol vannak elmentve az ebuild tárolóban-ban. A "globális" USE jelölőzászlók a use.desc fájlokba vannak (példa) beleírva a teljes profil számára, míg a "lokális" USE jelölőzászlókat a metadata.xml fájlokba (példa) írják bele, egyetlen csomagra vonatkozóan. Amikor eldöntődik, hogy hol határozzák meg őket, akkor a fejlesztők meghatározzák, hogy a USE jelölőzászlónak van-e több csomagra közös általános funkciója, vagy egyetlen csomagra vonatkozóan van-e specifikus funkciója.
A végfelhasználó számára kevés jelentősége van annak, hogy a USE jelölőzászló "globális" vagy "helyi". A "globális" jelölőzászlók néha alkalmasabbak lehetnek a make.conf USE változójában történő beállításra, de nincs szigorú szabály. Mindenesetre, amennyire csak lehetséges, ne állítsunk be USE jelölőzászlókat a make.conf-ban, hacsak nem szükséges, és az /etc/portage/package.use-t előnyben kell részesíteni a USE jelölőzászlók csomagonkénti beállításához. Ezen tanácsok követése hosszú távon megkönnyíti a rendszer adminisztrációját.
Eszközök
Néhány elérhető eszköz a USE jelölőzászlók elemzéséhez és kezeléséhez:
- euse
- quse - for details see man 1 quse
- equery hasuse (USE flag)
- equery uses (package name)
- ufed
- app-portage/euses
- eix - See
--use
,--installed-with-use
and--installed-without-use
options
További olvasnivaló a témában
- /etc/portage/package.use — finomabb csomagonkénti vezérlést biztosít a USE jelölőzászlókhoz, mint az /etc/portage/make.conf fájl USE változója
- Teljes kézikönyv/Befejezés
- Gentoo kézikönyv dokumentációja az USE jelölőzászlók használatáról
- Gentoo Java USE jelölőzászlók
- Toolkit USE Flags — summarizes main points from discussions about toolkit (GTK, Qt) USE flags (gtk2, gtk3, qt4, qt5, etc.).
Külső források
- https://packages.gentoo.org/useflags - USE jelölőzászlók a Gentoo csomagok adatbázisában.
- cat /var/db/repos/gentoo/profiles/use.desc - Az általános USE jelölőzászló leírólista látható helyileg azokon a rendszereken ahol a Portage telepítve van.
- https://devmanual.gentoo.org/general-concepts/use-flags/ - A Gentoo fejlesztői kézikönyvben a USE jelölőzászlók koncepciója fogalmilag van elmagyarázva.