It:HOWTO: Safely mix Entropy and Portage

From Sabayon Wiki
Revision as of 23:48, 1 November 2010 by DanySK (Talk | contribs) (Created page with '=Utilizzare Entropy e Portage assieme senza combinare disastri= ==Guida completa== {{Warning| '''Portage (emerge) non è più il package manager primario di Sabayon, questo artic…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Utilizzare Entropy e Portage assieme senza combinare disastri

Guida completa

Stop.png
Portage (emerge) non è più il package manager primario di Sabayon, questo articolo è solo per utenti esperti. In altre parole, se quello di seguito combina casini, sarai tu a farne le spese. Uomo avvisato, mezzo salvato.

Utilizzare sia Portage che Entroy non è consigliato a meno che non si conoscano abbastanza entrambi i package manager. È meglio in generale che se ne scelga uno e lo si usi come primario, Entropy è caldamente raccomandato. Dato che ogni pacchetto di Sabayon viene o da Gentoo o dal nostro overlay di Gentoo, utilizzare Portage è generalmente considerato non necessario, anche se ovviamente vi sono alcuni casi particolari in cui risulta necessario.

La prima e più importante regola per usare i due package manager assieme è NON cambiare né modificare MAI il file /etc/make.conf. Farlo significa modificare il sistema globalmente. Dato che Entropy è un sistema di distribuzione di pacchetti binari, le USE flags sono settate staticamente e non possono essere cambiate lato client. Modificare il make.conf può rapidamente portare a inconsistenze fra i due package manager, conseguentemente o si passa ad utilizzare il solo Portage o alla lunga si incontreranno problemi di stabilità e affidabilità.

La seconda regola è, quando si usano assieme Entropy e Portage, MAI e dico MAI usare Portage per aggiornare Portage. Sabayon usa una versione di Portage che è hard masked all'interno di Portage. Questo significa che in realtà non aggiornerete, ma tornerete indietro di qualche versione. Questo è un semplice errore che può demolire completamente la vostra installazione a causa della catena di dipendenze a livello di sistema. Se avete intenzione di usare entrambi i package manager, usate SEMPRE Entropy per aggiornare Portage. Questo significa che:

Stop.png
il comando 'emerge portage' non dovrebbe mai essere inserito in un sistema che usa entrambi i package manager

Bene, sappiamo che non possiamo modificare il make.conf. E allora come possiamo avere i pacchetti che vogliamo installati configurati con la stessa flessibilità di Gentoo? Semplice, bastano due passi! Per ciascun pacchetto che volete installare:

# nano /etc/portage/package.use

Aggiungete ogni pacchetto qui con le USE flags che vi interessa avere, includendo anche le -USE flags per quelle che non volete fra i piedi ma che sono presenti nel make.conf. Questi settaggi sovrascrivono quelli del make.conf per quel particolare pacchetto. Se il tuo pacchetto o USE flag rechiede nuove dipendenze con settaggi specifici, dovrai aggiungere anche quelli. Occhio: evitate i pacchetti di sistema a tutti i costi. La cosa migliore è usare Entropy per soddisfare tutte le dipendenze di ogni pacchetto, prima di installare il vero pacchetto. Se il pacchetto fa parte del cuore del sistema, potreste pensare di riconvertire tutto il vostro sistema ed usare il solo Portage come fareste con una Gentoo pura. Nel caso, buona fortuna!

La prossima cosa da fare è evitare che Entropy vada a paciugare con i pacchetti che vogliamo usare attraverso Portage. Conseguentemente, modifichiamo:

# nano /etc/entropy/packages/package.mask

Dovresti controllare di avere sempre un backup dei files quando li modifichi. Entropy spesso quando aggiorna il sistema modifica questi file inserendone nuove versioni e sovrascrivendo quelle modificate, cancellando le modifiche fatte a mano. Questo potrebbe portar guai.

Seguire queste semplici regole rende l'uso di entrambi i package manager più sicuro. Non sicuro al 100%, ma di sicuro più sicuro che smanettando senza criterio. Seguendo queste regole avrai una certa memoria storica di quello che hai fatto, potendo così capire cosa fare se il tuo sistema diventa instabile o inusabile. Quello che si cambia resta documentato qualcuno dei file di configurazione modificati.

Ricordati di sottoporre le richieste per nuovi pacchetti nel nostro Bugzilla. C'è un modulo apposito, inserite la versione e specificate le USE flags che pensate siano necessarie o non desiderate. Potremmo non essere in grado di soddisfare la tua richiesta, ma normalmente riusciamo ad aggiungere quello che ci viene richiesto.

Un'ultima nota: se hai davvero incasinato il sistema, c'è un passo che potresti fare prima di reinstallare. Rimuovi i cambiamenti al package.mask e al package.use e usa il comando seguente:

su
equo update && equo world --replay

Questo userà un sacco di banda e di tempo, ma farà sì che Entropy reinstalli ogni pacchetto aggiornato in modo coerente col proprio database.

Detto tutto, ragionate se davvero avete bisogno di mischiare i due package manager. Nel canale di supporto IRC l'ignoranza è ben tollerata e di norma si trova aiuto per risolvere i problemi.

Buona fortuna ~Az ~Traduzione di DanySK


Esempio operativo

Ricompilare Python con supporto tk

Si procederà supponendo che abbiate installato eix. Per farlo, potete usare un semplice

su
equo install eix

Prima di tutto aggiornate portage e gli overlays, assicurandovi di avere "sabayon" nella vostra lista degli overlay:

layman -l
* sabayon                   [Git       ] (git://sabayon.org/projects/overlay.git           )

Se ottenete un output diverso, procedete con:

su
layman -a sabayon

a questo punto aggiornate gli overlay ed eix:

su
layman -S && eix-sync

Cercate Python con eix

eix -C dev-lang python
[U] dev-lang/python
     Available versions:  
        (2.4)   2.4.6
        (2.5)   2.5.4-r4
        (2.6)   2.6.4-r1 (~)2.6.4-r1[1] 2.6.5-r2 2.6.5-r3 (~)2.6.6-r1
        (2.7)   [M](~)2.7
        (3.1)   [m]3.1.2-r3 [m]3.1.2-r4
        {-berkdb bootstrap build +cxx doc elibc_uclibc examples gdbm ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml}                
     Installed versions:  2.6.5-r2(2.6)(16:21:53 04.05.2010)(berkdb gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml -build -doc -elibc_uclibc -examples -tk -wininst)                                                            
     Homepage:            http://www.python.org/
     Description:         Python is an interpreted, interactive, object-oriented programming language.

[1] "sabayon" /var/lib/layman/sabayon

Controllate che versione è installata, nell'esempio "2.6.5-r2". Forse avete più di una versione installata, non è un problema.

Modificate il file "/etc/portage/package.use" aggiungendo "tk" a "dev-lang/python sqlite". La linea deve diventare: "dev-lang/python sqlite tk". Mettersi un commento vicino alla posizione del file può essere intelligente, qualcosa del tipo: "# 22-11-2010 aggiunto tk a python".

Ora emergiamo il pacchetto assicurandoci che la flag sia settata:

# emerge -av =python-2.6.5-r2
[...]
Calculating dependencies... done!
[ebuild   R   ] dev-lang/python-2.6.5-r2  USE="berkdb gdbm ipv6 ncurses readline sqlite ssl threads tk* (wide-unicode) xml -build -doc -examples -wininst" 10,903 kB
[...]


Modifichiamo "/etc/entropy/packages/package.mask", aggiungendo "=dev-lang/python-2.6.5-r2" alla fine. Anche qui, potremmo mettere un commento.

Facciamo sì che Entropy sappia quello che stiamo facendo:

# equo rescue spmsync

Fatto!