Questo articolo è il seguito del mio precedente tentativo di mettere insieme una tecnica per incoraggiare Sabayon ad abbandonare l'uso di pacchetti mascherati per il test e ad utilizzare invece pacchetti stabili. Ho pubblicato un collegamento all'originale su http://www.sabayonlinux.org forum e voxiac ha sottolineato l'ovvio : se vuoi arrivare a un ambiente stabile, l'obiettivo dovrebbe essere quello di cambiare le ACCEPT_KEYWORDS dall'accettare tutti i test mascherati pacchetti per l'utilizzo di stalle. Il resto può seguire da lì. Quindi questo è come farlo.
Nota: tutti i riferimenti a ~ amd64 dovrebbero essere modificati per riflettere la tua architettura, probabilmente x86 se non amd64
Per prima cosa, modifica /etc/make.conf e commenta, rimuovi o modifica la riga ACCEPT_KEYWORDS in:
ACCEPT_KEYWORDS=amd64
Se lo fai, devi fare il resto, altrimenti potresti essere nei guai la prossima volta che riesci a emergere qualcosa. Questa riga dice a emerge che tutti i pacchetti devono essere stabili a meno che non sia esplicitamente dichiarato in /etc/portage/package.keywords
Successivamente, dobbiamo ottenere l'elenco dei pacchetti che sono attualmente mascherati come pacchetti di prova e creare un file che possiamo usare per aggiungere a package.keywords per far sapere a emerge che possono rimanere come pacchetti di prova.
Usiamo tre comandi convogliati insieme per farlo. Puoi provarli fase per fase in modo da poter vedere esattamente cosa sta succedendo. La prima parte è:
equery -i -N list
Questo mostra un elenco di pacchetti installati, come ad esempio:
[I--] [ ~] x11-wm/twm-1.0.3 (0)
La seconda colonna conterrà una tilde "~" se il pacchetto è mascherato. Questi sono i pacchetti di cui abbiamo bisogno, quindi reindirizzeremo l'output in grep per estrarre solo quelle righe che contengono una tilde:
equery -i -N list | grep \~
L'output ora conterrà solo i pacchetti mascherati. Dobbiamo manipolare un po 'ogni riga per estrarre solo il nome del pacchetto, quindi aggiungere il prefisso e il suffisso di cui abbiamo bisogno per il package.keywords
file:
equery -i -N list | grep \~ | sed 's/.* \(.*\) (.*/=\1 ~amd64/'
Questo trasforma la riga sopra:
[I--] [ ~] x11-wm/twm-1.0.3 (0)
in:
=x11-wm/twm-1.0.3 ~amd64
Questo significa “permit use of a masked package for x11-wm/twm, for version 1.0.3 only.”
Dobbiamo solo esportare i risultati di ciò in un file e aggiungerlo a /etc/portage/package.keywords
Output in un file:
equery -i -N list | grep \~ | sed 's/.* \(.*\) (.*/<=\1 ~amd64/' > testpackages
Aggiungi alla fine di /etc/portage/package.keywords (fai prima un backup):
cp /etc/portage/package.keywords /etc/portage/package.keywords.back
cat testpackages >> /etc/portage/package.keywords
Quest'ultimo comando dovrà essere eseguito con i privilegi di root. Se hai seguito l'approccio dell'articolo precedente, avrai un mucchio di vecchie voci dal metodo precedente. Questi dovranno essere rimossi prima.
Dopo averlo fatto, puoi lasciarlo in pace. Man mano che nuovi pacchetti vengono rilasciati nell'albero stabile, sostituiranno quelli installati e le package.keywords
voci verranno ignorate. voxiac ha suggerito un lavoro CRON che avrebbe ripulito il package.keywords
file nel tempo. Proverò a mettere insieme qualcosa lungo la linea, a seconda del livello di difficoltà della pulizia.
A proposito, questo comando ti darà un conteggio dei pacchetti di test correnti che hai installato:
equery -i -N list | grep \~ | wc -l
Rispetto al totale installato:
equery -i -N list | grep \/ | wc -l
Il mio conteggio è:
Totale: 1347, di cui instabili: 852.
Un bel modo per andare….
Giovedì, Febbraio 7, 2008