View previous topic :: View next topic |
Author |
Message |
gamberetto Apprentice
Joined: 29 Mar 2005 Posts: 210 Location: Camisano Vicentino (VI)
|
Posted: Thu Jun 30, 2005 4:01 pm Post subject: emerge -e world senza system [risolto] |
|
|
Ciao a tutti, ho cercato nel forum, ma senza trovare nulla!
Il mio quesito è questo: sono passato a gcc 3.4 da poco e ho fatto un emerge -e system perché non volevo ricompilare proprio tutto.
Ora però mi farebbe voglia riemerge tutti gli altri pacchetti, ma se do un emerge -e world mi ricompila anche i pacchetti nel gruppo system! Così ho pensato di tirarmi fuori la lista dei pacchetti del system e del world con
Code: | pacchi_sys=$(exec emerge -pe system | grep ebuild | gawk '{print $4}')
pacchi_world=$(exec emerge -pe world | grep ebuild | gawk '{print $4}') |
(ho provato a vedere la guida di emerge, eix e qpkg ma non ho trovato nulla di più semplice)
però ci sono 2 problemi:
1) così non ottengo una lista "pulita": invece di sys-libs/pwdb mi viene fuori sys-libs/pwdb-0.62 ed emerge mi sembra non gradisca
2) non so come sottrarre ad una lista, l'altra.
Grazie per qualsiasi aiuto! _________________ Andre!
http://www.antimafiaduemila.com
Last edited by gamberetto on Sat Jul 16, 2005 7:14 am; edited 1 time in total |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Thu Jun 30, 2005 4:22 pm Post subject: |
|
|
beh, mi sembra che la lista tu già ce l'abbia. l'unico problema è che l'hai con i numero di versione. le soluzioni sono due:
- o rimuovi il numero di versione
- anteponi ad ogni riga un =.
credo che per la seconda tu possa utilizzare sed (man sed x maggiori info) |
|
Back to top |
|
|
gamberetto Apprentice
Joined: 29 Mar 2005 Posts: 210 Location: Camisano Vicentino (VI)
|
Posted: Thu Jun 30, 2005 4:36 pm Post subject: |
|
|
grazie della risposta!
per l'uguale ho risolto così (non conosco bene sed, ma forse dovrei impararlo...):
Code: | pacchi_sys2=""; for i in pacchi_sys; do pacchi_sys2=$pacchi_sys2"=$i "; done; |
per la lista forse è scontato ma non ci sono ancora... ce ne ho 2: una con i programmi del gruppo system e una con quelli del gruppo world. Docrei togliere dalla lista "pacchi_world" quelli che sono nella lista "pacchi_sys".
Nella man di emerge non ho trovato opzioni che mi permettano di escludere dei pacchetti del tipo
Code: | emerge -e $pacchi_world --escludi $pacchi_sys |
forse c'è? provo a guardare meglio!
grazie ancora _________________ Andre!
http://www.antimafiaduemila.com |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Thu Jun 30, 2005 4:45 pm Post subject: |
|
|
puoi usare diff, quelli con il + o con il meno, a seconda di quale metti prima sono quelli che devi emergere. non chiedermi però come fare a creare una lista da dare in parso ad emerge. |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Thu Jun 30, 2005 4:59 pm Post subject: |
|
|
prova cosi'...
Code: |
emerge -pe system | grep ebuild | gawk '{print $4}'| sort> /tmp/system
emerge -pe world | grep ebuild | gawk '{print $4}' | sort> /tmp/world
STRING="emerge --oneshot"
for x in `comm /tmp/world /tmp/system -3`
do
STRING="$STRING =$x"
done
echo $STRING
#$STRING
|
quando ti sei assicurato che tutto e' ok togli il commento prima di $STRING
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
G2k l33t
Joined: 06 Mar 2004 Posts: 672 Location: Rome, Italy
|
Posted: Thu Jun 30, 2005 5:04 pm Post subject: |
|
|
Io tempo fa ho scritto un HOWTO del cavolo per creare una lista completa dei file in world. Una volta ottenuta la lista basta che togli le righe dei pacchetti che non vuoi che siano installati dal file di testo che ti crea. Lo trovo parecchio utile io perche cosi posso togliere i pacchetti del toolchain e magari altri pacchetti molto grandi come openoffice e posso far partire l'emerge compilando tutto fuorche' cio' che non e' specificato. Puoi leggere il post qui. Spero possa esserti utile _________________ Animula vagula blandula,
Hospes comesque corporis,
Quae nunc abibis in loca
Pallidula rigida nudula,
Nec ut soles dabis iocos...
- Imp. Caesar Hadrianus |
|
Back to top |
|
|
gamberetto Apprentice
Joined: 29 Mar 2005 Posts: 210 Location: Camisano Vicentino (VI)
|
Posted: Thu Jun 30, 2005 5:05 pm Post subject: |
|
|
Potrebbe funzionare così?
Code: | #! /bin/bash
temp=""
echo "Sto creando la lista dei pacchetti in \"system\"..."
temp=$(exec emerge -pe system | grep ebuild | gawk '{print $4}')
pacchi_sys=""
for i in $temp
do
pacchi_sys=$pacchi_sys"=$i "
done
temp=""
echo "Sto creando la lista dei pacchetti in \"world\"..."
temp=$(exec emerge -pe world | grep ebuild | gawk '{print $4}')
pacchi_world=""
for i in $temp
do
pacchi_world=$pacchi_world"=$i "
done
echo "Sto togliendo dalla lista \"world\" i pacchetti della lista \"system\"..."
lista=""
for i in $pacchi_world
do
temp=1;
for k in $pacchi_sys
do
if [ $i == $k ]
then
temp=0
fi
done
if [ $temp -eq 1 ]
then
lista=$lista"$i "
fi
done
echo -e "Ecco il risultato:\n$lista"
if [ "$1" != "esegui" ]
then
echo "Usa l'opzione \"esegui\" per eseguire l'emerge"
fi
if [ "$1" == "esegui" ]
then
echo "Sto emergendo!!!"
emerge --oneshot --nodeps $lista
echo "Sono emerso con successo (?)"
fi |
Per me dovrebbe funzionare. Scusate se ho chiesto aiuto anche se poi pensandoci un po' di più avrei potuto cavarmela da solo (beh, forse a metterci l'uguale davanti ai nomi dei pacchetti non ci sarei mai arrivato!).
Spero che possa servire a qualcuno...
Ciao a tutti e grazie IceMan per l'aiuto!
Edit: ho messo a posto qualche errore nello script _________________ Andre!
http://www.antimafiaduemila.com
Last edited by gamberetto on Thu Jun 30, 2005 8:05 pm; edited 2 times in total |
|
Back to top |
|
|
gamberetto Apprentice
Joined: 29 Mar 2005 Posts: 210 Location: Camisano Vicentino (VI)
|
Posted: Thu Jun 30, 2005 5:10 pm Post subject: |
|
|
Ops... mi avete battuto sul tempo!
xchris wrote: | prova cosi'...
Code: |
emerge -pe system | grep ebuild | gawk '{print $4}'| sort> /tmp/system
emerge -pe world | grep ebuild | gawk '{print $4}' | sort> /tmp/world
STRING="emerge --oneshot"
for x in `comm /tmp/world /tmp/system -3`
do
STRING="$STRING =$x"
done
echo $STRING
#$STRING
|
|
mi devo studiare quel "comm" ma mi sembra dieci volte più semplice della mia soluzione!
G2k wrote: | Io tempo fa ho scritto un HOWTO del cavolo per creare una lista completa dei file in world. |
grazie! Anche se pnso che non sia il modo più veloce per questo caso.
Grazie ancora, ciao! _________________ Andre!
http://www.antimafiaduemila.com |
|
Back to top |
|
|
G2k l33t
Joined: 06 Mar 2004 Posts: 672 Location: Rome, Italy
|
Posted: Thu Jun 30, 2005 5:12 pm Post subject: |
|
|
e' vero, non e' veloce ma mi da la possibilita di cambiare a manina mentre con il vostro metodo piu' automatizzato si puo' solo creare un diff. Ovviamente tutti e due i modi hanno i loro pregi. _________________ Animula vagula blandula,
Hospes comesque corporis,
Quae nunc abibis in loca
Pallidula rigida nudula,
Nec ut soles dabis iocos...
- Imp. Caesar Hadrianus |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Thu Jun 30, 2005 5:23 pm Post subject: |
|
|
gamberetto chiedeva come rimuovere system...
usando il tuo metodo dovrebbe togliere (nel mio sistema) 113 pacchetti controllando a mano... _________________ while True:Gentoo() |
|
Back to top |
|
|
G2k l33t
Joined: 06 Mar 2004 Posts: 672 Location: Rome, Italy
|
Posted: Thu Jun 30, 2005 5:30 pm Post subject: |
|
|
hai ragione.
Sinceramente non capisco perche non abbiano gia' incorporato una funzione cosi semplice in portage (che ti faccia compliare world senza system) e perche non abbiano scritto del codice che compili il toolchain nell'ordine giusto...bah _________________ Animula vagula blandula,
Hospes comesque corporis,
Quae nunc abibis in loca
Pallidula rigida nudula,
Nec ut soles dabis iocos...
- Imp. Caesar Hadrianus |
|
Back to top |
|
|
G2k l33t
Joined: 06 Mar 2004 Posts: 672 Location: Rome, Italy
|
Posted: Thu Jun 30, 2005 5:43 pm Post subject: |
|
|
gamberetto wrote: | mi devo studiare quel "comm" ma mi sembra dieci volte più semplice della mia soluzione! |
hmm...a me invece non convince usare comm. Comm fa un paragone di due file riga per riga, ma devono essere gia messi in ordine (ed e' per questo che xchris ha dato un `sort` prima di creare i file in /tmp). Se l'ordine dovesse contare (se tu portassi quella lista su un'altra macchina per esempio) allora andrebbe bene solo se aggiungessi il comando --nodeps perche senno' ti tirerebbe anche le dipendenze di quel pacchetto, cosa che tu non vuoi. Comunque adesso ci stiamo pensando su un po' troppo... e' un caso un po' assurdo _________________ Animula vagula blandula,
Hospes comesque corporis,
Quae nunc abibis in loca
Pallidula rigida nudula,
Nec ut soles dabis iocos...
- Imp. Caesar Hadrianus |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Thu Jun 30, 2005 10:03 pm Post subject: |
|
|
non ho capito il problema di spostare la lista
puoi sempre sortare...
non ho capito neanche il discorso su deps..
cmq emerge supporta --nodeps
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
G2k l33t
Joined: 06 Mar 2004 Posts: 672 Location: Rome, Italy
|
Posted: Fri Jul 01, 2005 12:28 am Post subject: |
|
|
xchris wrote: | non ho capito il problema di spostare la lista
puoi sempre sortare...
non ho capito neanche il discorso su deps..
cmq emerge supporta --nodeps
ciao | Beh, diciamo per assurdo: se tu dovessi dare i comandi che hai scritto tu prima per creare una lista di file da emergere, e poi spostassi quella lista su un'altra macchina, il momento che gli dici di compilare xorg-x11 ti tirerebbe altre dipendenze (alcune che farebbero parte del toolchain) che tu non vuoi. Quindi il tuo metodo funziona perfettamente, basta che ti ricordi di aggiungere un --nodeps se lo stai usando per compilare una lista di pacchetti su un altro computer....basta mi sto zitto sto facendo troppo il pignolo _________________ Animula vagula blandula,
Hospes comesque corporis,
Quae nunc abibis in loca
Pallidula rigida nudula,
Nec ut soles dabis iocos...
- Imp. Caesar Hadrianus |
|
Back to top |
|
|
xchris Advocate
Joined: 10 Jul 2003 Posts: 2824
|
Posted: Fri Jul 01, 2005 6:59 am Post subject: |
|
|
...l'importante e' che gamberetto abbia risolto
ciao _________________ while True:Gentoo() |
|
Back to top |
|
|
gamberetto Apprentice
Joined: 29 Mar 2005 Posts: 210 Location: Camisano Vicentino (VI)
|
Posted: Fri Jul 01, 2005 2:08 pm Post subject: |
|
|
xchris wrote: | ...l'importante e' che gamberetto abbia risolto
|
Risolto, grazie! sono arrivato a 216 pacchetti su 250! _________________ Andre!
http://www.antimafiaduemila.com |
|
Back to top |
|
|
|