Gentoolkit
1.
Introducere
Ce este Gentoolkit?
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
app-portage/gentoolkit.
Notă:
La momentul actual, există două versiuni ale gentoolkit:
app-portage/gentoolkit şi app-portage/gentoolkit-dev. Primul
conţine script-uri pentru administrare în timp ce al doilea conţine
script-uri specifice pentru a înlesni dezvoltarea Gentoo. Dacă sunteţi un
dezvoltator, este posibil să vi să includă script-urile în pachetul
gentoolkit-dev prin contactarea dezvoltatorilor ce se ocupă de
mentenanţa Gentoolkit. Acest document tratează doar gentoolkit.
|
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.
Instalare
Ca orice alt pachet Gentoo, instalarea reprezintă doar o simplă comandă
emerge.
Cod 1.1: Instalarea gentoolkit |
# emerge gentoolkit
|
Notă:
Multe dintre utilitarele din gentoolkit vă dezvăluie informaţii importante
despre sistem sau necesită privilegii root. Din acest motiv, unele aplicaţii
vor putea fi executate (sau funcţiona corespunzător) doar dacă sunt rulate
de un utilizator având permisiuni de root.
|
Găsirea Documentaţiei
Orice documentaţie care ar putea aparţine de un program (alta decât paginile
de manual) este stocată în
/usr/doc/gentoolkit-[versiune]/[nume-program]/.
2.
equery
Introducere
equery este un utilitar ce suportă funcţionalităţi pe care epm
(şi vechiul utilitar qpkg) le deţin, împreună cu setul propriu de
funcţionalităţi, într-adevăr folositoare. equery va înlocui etcat
într-o versiune viitoare a Gentoolkit.
Notă:
Nu toate funcţionalităţile afişate de equery --help au fost
implementate. Cele care nu au fost, sunt menţionate in mod evident. Veţi
observa, de asemenea, că fiecare comandă are o opţiune scurtă, spre ex.
b în loc de belongs.
|
Notă:
Atenţie că, momentan, equery modifică formatul textului afişat, dacă este
transmis printr-o pipă. Formatul transmis prin pipă are intenţia de a fi mai
uşor de interpretat de utilitare, dar s-a dovedit a fi prea puţin popular şi,
probabil va fi modificat în viitor. Dacă scrieţi script-uri care implică
equery, ar trebui să fiţi conştienţi de acest lucru.
|
Aflarea Pachetului din care Face Parte un Fişier
equery oferă, de asemenea, funcţionalitatea de a găsi pachetul din care
face parte un fişier, utilizând comanda belongs (sau doar b).
Cod 2.1: Găsirea pachetului ebuild ce a instalat un fişier dat |
# 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 -f, puteţi căuta pachete cu fişiere ce se
potrivesc unei expresii regulate. Opţiunea -e este utilă pentru oprirea
căutării dvs., imediat cu a fost găsit ceva.
Verificarea Integrităţii Pachetului
Uneori este util să verificăm integritatea unui pachet. equery poate
verifica sumele md5, precum şi timpii fişierelor pentru a indica dacă un pachet
a fost corupt, înlocuit sau îndepărtat.
Cod 2.2: Integritate corectă a 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).
Afişarea tuturor pachetelor ce depind de ...
equery poate să afişeze toate dependenţele directe ale unui pachet.
Funcţia pe care ar trebui să o utilizăm pentru această operaţie este
depends, şi este uşoară precum:
Cod 2.3: Căutarea pachetelor ce depind de pygtk |
# 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
|
Grafice de Dependenţe
equery poate să ne ofere un grafic de dependenţe pentru un pachet
specificat. Graficul de dependenţe afişează o listă a tuturor pachetelor ce au
ca dependenţă directă sau indirectă pachetul respectiv.
Cod 2.4: Graficul de dependenţe pentru cdrtools |
# 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, cdrtools
este scris efectiv pentru a cere virtual/libc şi nu sys-libs/glibc, dar în
sistemul exemplificat anterior, sys-libs/glibc oferă virtual/libc.
Afişarea Fişierelor ce Aparţin unui Ebuild
equery poate afişa lista de fişiere ce aparţin unui ebuild instalat.
Dacă nu ştiţi care sunt fişierele pe care Gentoolkit le-a instalat în sistem,
vom utiliza equery pentru a le afişa.
Cod 2.5: Afişarea listei de fişiere |
# 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 files din equery oferă unele opţiuni pentru a modifica
modul de afişare. Puteţi vedea care sunt aceste opţiuni prin consultarea
paginii de manual pentru equery.
Căutarea unor pachete ce utilizează un anumit indicator USE
Dacă doriţi să găsiţi care sunt pachetele din sistemul dvs. ce utilizează un
anumit indicator USE, equery are funcţia hasuse:
Cod 2.6: Căutarea pachetelor ce utilizează indicatorul USE mozilla |
# 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)
|
Afişarea Pachetelor
equery deţine puternica funcţionalitate de a afişa lista de pachete ce
aparţin sistemului dvs., portage sau chiar un arbore portage supliementar
(overlay). Să încercăm următoarea comandă:
Cod 2.7: Afişarea listei de pachete cu equery |
# 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.
Cod 2.8: Utilizarea opţiunilor locale cu equery |
# 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)
|
Aflarea Mărimii Pachetelor
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ă du -hc s-ar putea să nu vă afişeze
numărul corect. Nu vă faceţi griji, equery vine să salveze
situaţia!
Cod 2.9: Mărimea pachetului |
# 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 afişează spaţiul total utilizat
în kiloocteţi şi, de asemenea, afişează numărul total de fişiere
deţinute de pachet.
Lista Completă cu Indicatori USE pentru Pachete
equery poate fi utilizat pentru a ne oferi infomaţii despre care
indicatori USE sunt utilizaţi de un anume pachet. Ne specifică, de asemenea,
indicatorii USE utilizaţi curent pentru pachet alături de toţi ceilalţi
indicatori ce pot fi utilizaţi pentru pachet.
Cod 2.10: Indicatorii USE activi şi inactivi |
# 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 Indicatori USE
din Manualul Gentoo.
Unde Este Fişierul Ebuild?
Putem, de asemenea, să aflăm care fişier ebuild este utilizat pentru un
anume pachet, utilizând equery. Aceasta se poate efectua prin
utilizarea comenzii equery which care va afişa calea completă
până la fişierul ebuild.
Cod 2.11: Afişarea căii fişierului ebuild |
# equery which cdrtools
/usr/portage/app-cdr/cdrtools/cdrtools-2.01_alpha37.ebuild
|
3.
euse
Introducere
Atenţie:
Momentan, euse nu este funcţional, pentru că nu suportă corect profilele
cascadate.
|
euse este un utilitar pentru a analiza, activa sau dezactiva indicatori
USE în anumite locuri. Pentru mai multe informaţii despre indicatorii USE,
vă rugăm să citiţi documentul despre Indicatori
USE. Puteţi utiliza euse -h pentru o listă completă de informaţii
şi opţiuni.
Analizarea, Activarea şi Dezactivarea Indicatorilor USE
Comanda euse -a citeşte indicatorii USE actuali activi din make.conf
şi-i afişează.
Notă:
Sunt 5 "coloane" pe care euse le utilizează acum pentru a
afişa dacă un indicator este activ/inactiv. Coloanele sunt după cum urmează --
+/-, setate în mediu (E - Environment, în engleză), setate în make.Conf, setate
în make.Defaults şi setate în make.Globals. Afişarea este similară cu [+ECDG].
|
Cod 3.1: Vizualizarea tuturor indicatorilor USE activi |
# 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 -g pentru a vizualiza doar
indicatorii USE globali, activi. Comanda euse -a -l acţionează la fel pentru
indicatorii USE activi globali. -g şi -l sunt subopţiuni ale
euse şi necesită o opţiune înaintea lor (ca în cazul -a) pentru a
funcţiona corect.
Cod 3.2: Vizualizarea indicatorilor USE locali, activi |
# 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 euse pentru a activa sau dezactiva indicatori USE.
Comenzile utilizate în acest sens sunt euse -E nume-indicator (activează
un indicator) şi euse -D nume-indicatori (dezactivează un indicator).
Atenţie:
Nu utilizaţi comenzile euse -E sau euse -D singure (fără un
indicator ca parametru). Va activa/dezactiva TOŢI indicatorii USE din
/etc/make.conf. Deşi o copie de siguranţă este menţinută în fişierul
/etc/make.conf.euse_backup, fiţi atenţi la utilizarea euse
-E sau euse -D.
|
Cod 3.3: Activarea şi dezactivarea indicatorilor USE |
# euse -E 3dfx
/etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup
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"
# euse -D 3dfx
/etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup
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"
|
Notă:
euse nu şterge fizic indicatorii din make.conf. Doar adaugă un -
(minus) înaintea indicatorului pentru a fi dezactivat. Va trebui să editaţi
manual fişierul make.conf de variabilele nedorite.
|
4.
Alte Utilitare
revdep-rebuild
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
--pretend pentru a analiza ce va fi instalat fără a continua.
Cod 4.1: Rularea revdep-rebuild cu parametrul pretend |
# 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
revdep-rebuild fără argumentul -p şi pachetele afişate
vor fi instalate din nou.
glsa-check
glsa-check este, in principal, un utilitar de test ce păstrează
informaţiile despre diversele publicaţii GLSA(Gentoo Linux Security Advisory
- Anunţuri de Securitate Gentoo Linux) şi va fi, în viitor, intergrată
în emerge şi equery. Pentru mai multe informaţii, consultaţi
Pagina despre Integrarea GLSA
în Portage.
|