[hack] pellipoverell..

John Doe johndoe@pctuner.net
Gio 22 Apr 2004 18:00:14 CEST


On Thu, 2004-04-22 at 15:01, Alex.u wrote:

> Spiegaci in maniera chiara il funzionamento e la configurazione di emerge.
> 
> :)
> 
> Salut! Ale.

Non è che ci sia granchè da spiegare... cmq, l'avete voluto voi :D

emerge -s <stringa> cerca nei nomi dei pacchetti la <stringa>

esempio:

---------------
jdoe@waste-bin jdoe $ emerge -s portage
[ Results for search key : portage ]
[ Applications found : 3 ]
 
*  app-portage/portagemaster
      Latest version available: 0.2.1
      Latest version installed: 0.2.1
      Size of downloaded files: 33 kB
      Homepage:    http://portagemaster.sourceforge.net/
      Description: A java portage browser and installer
 
*  app-portage/kportage [ Masked ]
      Latest version available: 0.6.1
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 484 kB
      Homepage:    http://www.freesoftware.fsf.org/kportage/
      Description: A graphical frontend for portage
 
*  sys-apps/portage
      Latest version available: 2.0.50-r1
      Latest version installed: 2.0.50-r1
      Size of downloaded files: 217 kB
      Homepage:    http://www.gentoo.org
      Description: Portage ports system
----------

se si usa -S invece cerca anche nel campo Description. Siccome il
database di portage non è un database ma sono dei file su disco,
l'operazione è lunga... io consiglio di installare esearch

*  app-portage/esearch
      Latest version available: 0.6
      Latest version installed: 0.6
      Size of downloaded files: 6 kB
      Homepage:    http://david-peter.de/esearch.html
      Description: Replacement for 'emerge search' with search-index

che funziona come updatebdb/locate: con il comando eupdatedb aggiornate
il database e con esearch [-S] cercate.

Poi, quando avete trovato il nome del pacchetto da installare, conviene,
prima di procedere, fare un "pretend":

------------------
emerge -vp vim-core vim
 
These are the packages that I would merge, in order:
 
Calculating dependencies ...done!
[ebuild   R   ] app-editors/vim-core-6.2-r8  -acl +ncurses +nls  0 kB
[ebuild   R   ] app-editors/vim-6.2-r8  -acl -cscope +gpm -minimal
+ncurses +nls +perl +python -ruby -vim-with-x  0 kB

Total size of downloads: 0 kB

----------------------
- iniziamo da sx: "ebuild" sta a significare che non ho un pacchetto
binario, ma che verrà usato l'ebuild, cioè che compila.
- R sta per replacement, ovvero dato che l'ho già installato lo
_ricompila_ e _reinstalla_
- poi ci sta la versione esatta del pacchetto
- e quindi le USE flags: vi dice quanta roba deve scaricare e che flags
vengono usati durante la compilazione... quelli +<flags> vengono usati
(son rossi), quelli -<flag> non vengono usati. a seconda di che flags
cambiano e di molto le dipendenze, ovvero se non volete X installato, e
usate vim-with-x lui cerherà di installare X, per soddisfare la USE.
Le Use si settano dal make.conf, oppure direttamente dalla riga di
comando quando lanciate emerge

----------------
jdoe@waste-bin jdoe $ USE="vim-with-x -gpm" emerge vim -vp

 
These are the packages that I would merge, in order:
 
Calculating dependencies ...done!
[ebuild   R   ] app-editors/vim-6.2-r8  -acl -cscope -gpm -minimal
+ncurses +nls +perl +python -ruby +vim-with-x  0 kB
 
Total size of downloads: 0 kB
-------------------

vedete che i cmbiamenti son relativi, cioè lui prima guarda le flag nel
make, e poi le cambia in base a quelle scritte nella riga di comando ;)
[guardate l'output di questo e del comando sopra e capirete meglio]

per gestire le USE c'è il prog ufed... cmq, le USE sono importantissime,
andrebbero scelte PRIMA di fare qualsiasi cosa, e cmq contano solo
quando ricompilate e non quando fate l'installazione da binari come ha
fatto alex.u, in quel modo vengono usate quelle di usate durante la
compilazione da chi ha fatto i pacchetti.


jdoe@waste-bin jdoe $ esearch ufed
[ Results for search key : ufed ]
[ Applications found : 1 ]
 
*  app-portage/ufed
      Latest version available: 0.34
      Latest version installed: 0.34
      Size of downloaded files: 14 kB
      Homepage:    http://www.gentoo.org
      Description: Gentoo Linux USE flags editor

Per vedere cosa fa una USE, o guardate con ufed, oppure (più veloce):

--------------------------------
jdoe@waste-bin jdoe $ etcat -u vim
[ 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 : app-editors/vim-6.2-r8 ]
 + + ncurses    : Adds ncurses support (console display library)
 + + nls        : unknown
 - - acl        : Adds support for Access Control Lists
 - - cscope     : Enables cscope interface -- in vim for example
 + + gpm        : Adds support for sys-libs/gpm (Console-based mouse
driver)
 + + perl       : Adds support/bindings for the Perl language.
 + + python     : Adds support/bindings for the Python language
 - - ruby       : Adds support/bindings for the Ruby language
 - - vim-with-x : Enables linking the console vim against X libs to
enable some features in xterms
 - - minimal    : Build vim with minimal features, resulting in a ~430K
binary
--------------------------------------

probabilmente etcat richiede installato gentoolkit


-----------------------------------------------
jdoe@waste-bin jdoe $ emerge -vp gentoolkit-dev
 
These are the packages that I would merge, in order:
 
Calculating dependencies ...done!
[ebuild   R   ] app-portage/gentoolkit-dev-0.2.0_pre3   0 kB
---------------------------------------------- 


Io uso il -dev perchè uso portage bleeding edge ultra testing :D (come
sempre)

Come vedete, infondo ci sta sempre scritto 0 kB, e "Total size of
downloads: 0 kB", questo perchè ho i distfiles già scaricati. portage
infatti prima guarda se ci sono locali, altrimenti scarica (e direi...)
per vedere dove vanno messi:


jdoe@waste-bin jdoe $ emerge info | grep -i dist
DISTDIR="/usr/portage/distfiles"
jdoe@waste-bin jdoe $ emerge info | grep -i package
PKGDIR="/bck/distro/gentoo/portage-packages"


$PKGDIR è il path completo alla dir dove risiedono i binari.. è
possibile dal make.conf, alla voce FEATURES dire a emerge di creare un
pacchetto quando ha finito di compilare.. così da, se la nuova versione
magari è strabacata, tornare indietro senza dover ricompilare...
calcolando che alcuni pacchetti ci possono mettere, anche ore (vedi
ooffice), non ci fa schifo.
Quindi, o usate FEATURES dentro /etc/make.conf, oppure lo usate
direttamenete da riga di comando (se volete che lui non faccia sempre il
pacchetto)

FEATURES="buildpkg" emerge vim 
L'elenco di tutte le features lo trovate dentro il manuale di make.conf

Per usare i pacchetti, basta aggiungere -k, e lui cerca in $PKGDIR, se
non trova cerca il distfile dentro $DISTDIR, se non trova si procaccia i
distfiles (che sono i sorgenti) dal mirror definito alla voce
GENTOO_MIRRORS, se non li trova manco sui mirror guarda al default
mirror (http://www.ibiblio.org/pub/Linux/distributions/gentoo), se non
trova manco li va direttamente sul sito dell'applicazione a cercare di
scaricare i sorgenti... e li ci sono _per forza_ :D

se usate -K invece non tenta di compilare se non trova il pacchetto ma
si ferma e basta.

Per vedere possibili versioni della cosa che volete installare:

------------------------------
jdoe@waste-bin jdoe $ etcat -v vim
[ Results for search key           : vim ]
[ Candidate applications found : 5 ]
 
 Only printing found installed programs.
 
*  app-editors/vim :
        [   ] 6.2-r3 (0)
        [   ] 6.2-r5 (0)
        [   ] 6.2-r6 (0)
        [   ] 6.2-r7 (0)
        [ ~I] 6.2-r8 (0)
---------------------------

Se volete installare la 6.2-r7 perchè magari la 6.2-r8 è bacata (è un
esempio), dovete specificare la versione, perchè altrimenti vi installa
l'ultima

----------------------------------------------
jdoe@waste-bin jdoe $ emerge -vp \=vim-6.2-r7
 
These are the packages that I would merge, in order:
 
Calculating dependencies ...done!
[ebuild     UD] app-editors/vim-6.2-r7 [6.2-r8] -acl -cscope +gpm
-minimal +ncurses +nls +perl +python -ruby -vim-with-x  475 kB
 
Total size of downloads: 475 kB
-----------------------------------------------

La barra \ è importantissima, in quanto fa carattere di escape alla
bash, che altrimenti prende l'uguale come parte del comando e non degli
argomenti... potete anche usare "=" al posto di \=, come vi pare. Potete
anche usare >= > < <= ...
Vedete che sta scritto UD: U sta per update, me lo aggiorna e D sta per
downgrade, che mette una versione più vecchia.

se usate la stabile x86, e volete usare un pacchetto della instabile
(~x86), basta dare 

ACCEPT_KEYWORDS="~x86" emerge \=TheThingYouWant-1.2.3 -vp

Se volete usare sempre la instabile (come me :D), basta mettere
ACCEPT_KEYWORDS direttamente in /etc/make.conf

se non ve lo installa, e c'è scritto di rosso fuoco [Masked], significa
che il pacchetto è veramente instabile, però magari voi lo volete lo
stesso, perchè sapete che è usabile... beh, ci sono due modi: uno
quick'n'dirty, che funziona però fino al prossimo sync del tree di
portage, e un altro duraturo... Cmq, se volete sapere _perchè_ è masked
guardate nel file /usr/portage/profiles/package.mask e leggete il
commento relativo al pacchetto, se volete installarlo (quick'n'dirty)
commentate la riga relativa al programma.
Se invece optate per la versione duratura, basta che creiate la
directory /etc/portage/ (se non esiste), dentro ci mettete un file
package.unmask, dentro al quale ci scrivete la riga reltiva al programma
così come la vedete in /usr/portage/profiles/package.mask.
Quest'ultima soluzione funziona solo con portages recenti, e non con
quello della 1.4 credo.. cmq aggiornare portage è una buona idea sempre,
tanto son pochi kB


se volete vedere che pacchetti avete installato (richiede gentoolkit)

jdoe@waste-bin $ qpkg -I

se volete cercare files nella roba installata

jdoe@waste-bin $ qpkg -pf WhatYouWant

per cercare files mancanti che dovrebbero essere invece installati
(moooolto lungo

jdoe@waste-bin $ qpkg -I -c -vv|grep "not exist


jdoe@waste-bin $ qpkg -l pacchetto
lista i files installati dal pacchetto

per disinstallare un programma

jdoe@waste-bin $ emerge -C TheThingYouDontWant 

FATE SEMPRE un pretend, prima, che lui NON fa il check delle dipendenze
all'indietro. Potete disinstallare anche una particolare versione,
usando =. Infatti di alcuni ebuild (com gimp ad esemiio) potete avre più
versioni installate, ognuna si insatlla in uno SLOT, quindi potete avere
sia gimp-1.2 che gimp-2.0, ad esempio

e poi, le ultime varie e eventuali

jdoe@waste-bin $ emerge -f TheThingYouWant
scarica solo i sorgenti

jdoe@waste-bin $ emerge -O TheThingYouWant
installa solo il pacchetto e NON le dipendenze

jdoe@waste-bin $ emerge -o TheThingYouWant
installa solo le dipendenze e non il pacchetto

jdoe@waste-bin $ emerge -i pacchetto
fa credere che il pacchetto sia installato, anche se non lo è, comodo
per fregare le dipendenze ma occhio a quallo che fate.


Basta? Domande? Precisazioni? una pagina arancione? :p

Giacomo
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.linux.it/pipermail/golem-hack/attachments/20040422/90a7a19b/attachment.pgp>


Maggiori informazioni sulla lista golem-hack