Gentoo este o distribuţie unică şi prezintă unele complexităţi ce,
pur şi simplu, nu există în alte distribuţii. Cum, dezvoltatorii şi
contribuitorii Gentoo au descoperit unele dintre aceste complexităţi, au
scris, de asemenea, utilitare pentru a ajuta utilizatorii şi administratorii
să le poată manipula. Multe dintre aceste utilitare au reprezentat
contribuţii pentru proiectul Gentoo şi sunt incluse în pachetul
Gentoolkit conţine o mulţime de utilitare folositoare pentru a vă ajuta să administraţi pachetele şi să analizaţi în orice moment conţinutul sistemului dvs. Cei mai mulţi utilizatori -- în special cei care îşi actualizează sistemele des -- vor avea de câştigat din instalarea gentoolkit.
Ca orice alt pachet Gentoo, instalarea reprezintă doar o simplă comandă emerge.
# emerge gentoolkit
Orice documentaţie care ar putea aparţine de un program (alta decât paginile
de manual) este stocată în
# equery belongs /usr/bin/xmms [ Searching for file(s) /usr/bin/xmms in *... ] media-sound/xmms-1.2.10-r9 (/usr/bin/xmms)
Prin utilizarea opţiunii
Uneori este util să verificăm integritatea unui pachet.
# equery check gentoolkit [ Checking app-portage/gentoolkit-0.2.0 ] * 54 out of 54 files good
Notaţi faptul că, dacă modificaţi fişierele de configurare după instalare, acestea pot fi raportate ca "not good" (incorecte).
# equery depends pygtk [ Searching for packages depending on pygtk... ] app-office/dia-0.93 dev-python/gnome-python-2.0.0-r1 gnome-extra/gdesklets-core-0.26.2 media-gfx/gimp-2.0.4 x11-libs/vte-0.11.11-r1
# equery depgraph cdrtools Displaying dependencies for app-cdr/cdrtools-2.01_alpha37 `-- app-cdr/cdrtools-2.01_alpha37 `-- sys-libs/glibc-2.3.4.20040808 (virtual/libc) `-- sys-kernel/linux-headers-2.4.22 (virtual/os-headers) `-- sys-apps/baselayout-1.10.4 `-- sys-apps/sysvinit-2.85-r1 `-- sys-apps/gawk-3.1.3-r1 `-- sys-apps/util-linux-2.12-r4 `-- sys-apps/sed-4.0.9 `-- sys-libs/ncurses-5.4-r4 `-- sys-apps/pam-login-3.14 `-- sys-libs/pam-0.77-r1 `-- sys-libs/cracklib-2.7-r10 `-- sys-apps/miscfiles-1.3-r1 `-- app-arch/gzip-1.3.5-r1 `-- sys-apps/portage-2.0.50-r10
Spre exemplu, în timp ce glibc este o dependenţă directă pentru cdrtools,
linux-headers este o dependenţă indirectă. Notaţi faptul că lista va include şi
informaţiile despre pachetele virtuale. În exemplul de mai sus,
# equery files gentoolkit [ Searching for packages matching gentoolkit... ] app-portage/gentoolkit-0.2.0 * Contents of app-portage/gentoolkit-0.2.0: /usr /usr/bin /usr/bin/equery /usr/bin/etcat /usr/bin/euse /usr/bin/glsa-check /usr/bin/qpkg /usr/bin/revdep-rebuild /usr/lib /usr/lib/gentoolkit /usr/lib/gentoolkit/pym /usr/lib/gentoolkit/pym/gentoolkit /usr/lib/gentoolkit/pym/gentoolkit/__init__.py /usr/lib/gentoolkit/pym/gentoolkit/gentoolkit.py /usr/lib/gentoolkit/pym/gentoolkit/pprinter.py /usr/lib/gentoolkit/pym/glsa.py /usr/sbin /usr/share /usr/share/doc /usr/share/doc/gentoolkit-0.2.0_pre10 [...]
Comanda
Dacă doriţi să găsiţi care sunt pachetele din sistemul dvs. ce utilizează un
anumit indicator USE,
# equery hasuse mozilla [ Searching for USE flag mozilla in all categories among: ] * installed packages [I--] [ ] dev-java/blackdown-jre-1.4.2.01 (1.4.2) [I--] [ ] mail-client/evolution-2.0.2 (2.0)
# equery list gentoolkit [ Searching for package 'gentoolkit' in all categories among: ] * installed packages [I--] [ ] app-portage/gentoolkit-0.2.0 (0)
Cererea standard va afişa pachetele noastre instalate după un anumit nume. Dacă au fost găsite, următoarele informaţii vor fi afişate: locaţia pachetului între primele două paranteze pătrate (I pentru pachetele instalate, P pentru Portage, O pentru Overlay), mascările posibile între următoarele paranteze (~ după keyword, - după arch sau M mascare hard), apoi categoria şi numele complet, iar în cele din urmă poziţia slot în care pachetul este stocat.
Un alt exemplu, de această dată vom utiliza opţiunile locale pentru a căuta pachetele în structura noastră portage şi în structura overlay.
# equery list -p -o vim [ Searching for package 'vim' in all categories among: ] * installed packages [I--] [ ] app-editors/vim-6.3-r4 (0) * Portage tree (/usr/portage) [-P-] [M~] app-editors/vim-7.0_alpha20050126 (0) [-P-] [M~] app-editors/vim-7.0_alpha20050201 (0) [-P-] [ ] app-editors/vim-6.3-r2 (0) [-P-] [M~] app-editors/vim-7.0_alpha20050122 (0) [-P-] [M~] app-editors/vim-core-7.0_alpha20050126 (0) [-P-] [ ] app-editors/vim-core-6.3-r3 (0) [-P-] [M~] app-editors/vim-core-7.0_alpha20050122 (0) [-P-] [M~] app-editors/vim-core-7.0_alpha20050201 (0) [-P-] [ ] app-editors/vim-core-6.3-r4 (0) * overlay tree (/opt/ebuilds)
Aţi fost vreodată curios să aflaţi cât spaţiu ocupă un anume pachet?
Deoarece un pachet îşi poate avea fişierele stocate în mai multe
directoare, comanda uzuală
# equery size openoffice-bin * app-office/openoffice-bin-1.1.2 Total Files : 2908 Total Size : 223353.31 KiB
După cum puteţi observa,
# equery uses ethereal [ Colour Code : set unset ] [ Legend : (U) Col 1 - Current USE flags ] [ : (I) Col 2 - Installed With USE flags ] U I [ Found these USE variables in : net-analyzer/ethereal-0.10.6 ] - - adns : Adds support for the adns DNS client library + + gtk : Adds support for x11-libs/gtk+ (The GIMP Toolkit) - - ipv6 : Adds support for IP version 6 - - snmp : Adds support for the Simple Network Management Protocol if available + + ssl : Adds support for Secure Socket Layer connections + + gtk2 : Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both. - - debug : Tells configure and the makefiles to build for debugging. Effects vary across packages, but generally it will at least add -g to CFLAGS. Remember to set FEATURES=nostrip too
Am instalat ethereal doar cu indicatorii gtk, ssl şi gtk2 setaţi, dar alţi
indicatori USE pentru ethereal sunt adns, ipv6, snmp şi debug. Pentru mai
multe informaţii despre indicatorii USE, vă rugăm să consultaţi
capitolul despre
Putem, de asemenea, să aflăm care fişier ebuild este utilizat pentru un
anume pachet, utilizând
# equery which cdrtools /usr/portage/app-cdr/cdrtools/cdrtools-2.01_alpha37.ebuild
Comanda
# euse -a X [+ CD ] aalib [+ ] acpi [+ C ] alsa [+ C ] apache2 [+ C ] apm [+ D ] avi [+ D ] berkdb [+ D ] bitmap-fonts [+ D ] bonobo [+ ] cdr [+ C ] crypt [+ CD ] cscope [+ C ] cups [+ CD ] curl [+ ] emboss [+ D ] encode [+ D ] esd [+ ] ethereal [+ C ] fam [+ ] fbcon [+ C ] font-server [+ D ] foomaticdb [+ D ] fortran [+ D ] gd [+ C ] gdbm [+ D ] gif [+ CD ] gimpprint [+ C ] gnome [+ CD ] gphoto2 [+ ] gpm [+ CD ] gstreamer [+ C ] gtk [+ D ] gtk2 [+ CD ] gtkhtml [+ C ] guile [+ ] imagemagick [+ ] imlib [+ CD ] imlib2 [+ ] innodb [+ ] ipv6 [+ D ] javascript [+ C ] jpeg [+ CD ] kde [+ D ] ldap [+ ] libg++ [+ CD ] libwww [+ CD ] mad [+ CD ] mbox [+ C ] md5sum [+ C ] mikmod [+ CD ] mmx [+ C ] motif [+ CD ] mozilla [+ C ] mp3 [+ ] mpeg [+ CD ] mpeg4 [+ C ] mysql [+ C ] ncurses [+ CD ] nls [+ D ] nvidia [+ C ] odbc [+ ] offensive [+ ] oggvorbis [+ CD ] opengl [+ CD ] oss [+ D ] pam [+ CD ] pdflib [+ CD ] perl [+ CD ] png [+ CD ] python [+ CD ] qt [+ D ] quicktime [+ CD ] readline [+ CD ] ruby [+ ] sdl [+ CD ] slang [+ D ] spell [+ CD ] sse [+ C ] ssl [+ CD ] svga [+ CD ] tcltk [+ C ] tcpd [+ D ] tiff [+ C ] truetype [+ CD ] truetype-fonts [+ D ] type1-fonts [+ D ] usb [+ C ] vanilla [+ C ] x86 [+ C ] xml [+ ] xml2 [+ D ] xmms [+ D ] xosd [+ C ] xv [+ CD ] xvid [+ C ] zlib [+ CD ]
Similar, puteţi utiliza comanda
# euse -a -l bitmap-fonts [+ D ] font-server [+ D ] fortran [+ D ] gimpprint [+ C ] imlib2 [+ ] md5sum [+ C ] mpeg4 [+ C ] nvidia [+ C ] offensive [+ ] truetype [+ CD ] truetype-fonts [+ D ] type1-fonts [+ D ]
Puteţi utiliza
(Activarea unui indicatori USE) # euse -E 3dfx /etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup(/etc/make.conf după execuţia comenzii) USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc ethereal fbcon gd \ gif gimpprint gnome gpm gstreamer gtk2 gtkhtml imlib imlib2 \ innodb -java javascript jpeg libg++ libwww mad mbox md5sum \ mikmod mmx motif mozilla mpeg mpeg4 mysql ncurses nvidia \ oggvorbis odbc offensive opengl pam pdflib perl png python \ quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \ vanilla X xml2 xmms xosd xv xvid x86 zlib 3dfx"(Dezactivarea unui indicator USE) # euse -D 3dfx /etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup(/etc/make.conf după execuţia comenzii) USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc ethereal fbcon gd \ gif gimpprint gnome gpm gstreamer gtk2 gtkhtml imlib imlib2 \ innodb -java javascript jpeg libg++ libwww mad mbox md5sum \ mikmod mmx motif mozilla mpeg mpeg4 mysql ncurses nvidia \ oggvorbis odbc offensive opengl pam pdflib perl png python \ quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \ vanilla X xml2 xmms xosd xv xvid x86 zlib -3dfx"
Acesta este utilitarul pentru reconstruirea Dependenţelor Inverse din Gentoo.
El va scana fişierele ebuild instalate pentru a găsi pachete care au
devenit invalide ca rezultat al unei actualizări a unui pachet de care depind
acestea. Poate instala aceste pachete pentru dvs. dar poate, de asemenea, să
se întâmple ca un pachet anume să nu mai funcţioneze corect cu
dependenţele actuale instalate, caz în care, ar trebui să vă actualizaţi
pachetul nefuncţional la o versiune mai recentă. revdep-rebuild va pasa
argumentele comenzii emerge ce vă permite utilizarea parametrului
# revdep-rebuild -p Checking reverse dependencies... Packages containing binaries and libraries broken by any package update, will be recompiled. Collecting system binaries and libraries... done. (/root/.revdep-rebuild.1_files) Collecting complete LD_LIBRARY_PATH... done. (/root/.revdep-rebuild.2_ldpath) Checking dynamic linking consistency... broken /usr/lib/ao/plugins-2/libarts.so (requires libartsc.so.0) broken /usr/lib/kde3/libkpresenterpart.so (requires libartskde.so.1 libqtmcop.so.1 libsoundserver_idl.so.1 libkmedia2_idl.so.1 libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1) broken /usr/lib/ruby/site_ruby/1.8/i686-linux/fox.so (requires libFOX-1.0.so.0) broken /usr/lib/xine/plugins/1.0.0/xineplug_ao_out_arts.so (requires libartsc.so.0) broken /usr/lib/perl5/vendor_perl/5.8.0/i686-linux/auto/SDL_perl/SDL_perl.so (requires libSDL_gfx.so.0) broken /usr/lib/libloudmouth-1.so.0.0.0 (requires libgnutls.so.10) broken /usr/bin/k3b (requires libartskde.so.1 libqtmcop.so.1 libsoundserver_idl.so.1 libkmedia2_idl.so.1 libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1) broken /usr/bin/lua (requires libhistory.so.4) broken /usr/bin/lyx (requires libAiksaurus-1.0.so.0) broken /usr/bin/luac (requires libhistory.so.4) broken /usr/bin/avidemux2 (requires libartsc.so.0) broken /usr/bin/pptout (requires libxml++-0.1.so.11) broken /usr/bin/xml2ps (requires libxml++-0.1.so.11) done. (/root/.revdep-rebuild.3_rebuild) Assigning files to ebuilds... done. (/root/.revdep-rebuild.4_ebuilds) Evaluating package order... done. (/root/.revdep-rebuild.5_order) All prepared. Starting rebuild... emerge --oneshot --nodeps -p =app-cdr/k3b-0.11.14 =app-office/koffice-1.3.2 =app-office/lyx-1.3.4 \ =app-office/passepartout-0.2 =dev-lang/lua-5.0.2 =dev-ruby/fxruby-1.0.29 =media-libs/libao-0.8.5 \ =media-libs/xine-lib-1_rc5-r3 =media-video/avidemux-2.0.26 =net-libs/loudmouth-0.16 These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] app-cdr/k3b-0.11.14 [ebuild R ] app-office/koffice-1.3.2 [ebuild R ] app-office/lyx-1.3.4 [ebuild R ] app-office/passepartout-0.2 [ebuild R ] dev-lang/lua-5.0.2 [ebuild R ] dev-ruby/fxruby-1.0.29 [ebuild R ] media-libs/libao-0.8.5 [ebuild R ] media-libs/xine-lib-1_rc5-r3 [ebuild R ] media-video/avidemux-2.0.26 [ebuild R ] net-libs/loudmouth-0.16 Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
Dacă doriţi să reinstalaţi unele pachete, puteţi rula