View previous topic :: View next topic |
Author |
Message |
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Sun Apr 18, 2004 6:09 pm Post subject: Trick a metà per usare emerge depclean... mi serve una mano |
|
|
---EDIT: tutto risolto! leggi qualche post piu giu!---
Si tratta di trovare la dipendenza al contrario (dipendenza^-1 per distinguerla dalla dipendenza normale da ora in poi) dei pacchetti che emerge depclean vuole levare dal sistema, per vedere che tutto giri liscio
Storia:
Ero qui che mi leggevo un po di tipics, ho letto che a molti emerge depclean leva anche delle librerie che servono a mkdir e a ls (e non fa piacere).
Molti chiedono di un tool che dato un pacchetto restituisca i pacchetti dei quali lui è una dipendenza installati (per farla semplice i pacchetti che lo usano che abbiamo installati).
Ho visto che per ora questa cosa non esiste...
E io ho cercato di superare il problema in modo un po spartano , ma forse utile, solo che non riesco ad arrivare in fondo, sono un niubbo, ma sicuramente tra di voi c'è qualcuno che mi puo aiutare a tirarci fuori le gambe!
Per ogni pacchetto che emerge depclean -p mi stampa
voglio avere un file che contenga tutti i pacchetti che lo usano (anche non installati) la dipendenza^-1 del dato pacchetto;
poi voglio avere un file con tutti i pacchetti installati;
e poi cerco nel file dei pacchetti installati tutti i pacchetti che sono nella dipendenza^-1 del pacchetto che depclean vuole rimuovere. Se tutto va bene non devrebbero esserci. (oppure ci sono, ma per via delle flags USE, questo sistema considera sempre che siano usate TUTTE le use disponibili[scusate il pastrocchio di parole!])
Ecco dove sono arrivato:
Scrivo il file dei pacchetti installati:
Code: | qpkg -I -nc > /var/tmp/installati |
--- fin qui non penso che ci siano problemi o dubbi.
Scrivo il file delle dipendenze^-1 (ma lo scrivo male ) al posto di $NOME_PACCHETTO per ora metto a *mano* il pacchetto che voglio esaminare:
Per farlo mi sposto in /usr/portage e cerco in tutti i file .ebuild linee che contengono $NOME_PACCHETTO che dovrebbe essere una dipendenza.
Code: | cd /usr/portage/ && find . -name '*.ebuild' | xargs grep -l $NOME_PACCHETTO > /var/tmp/$NOME_PAXCCHETTO.dip |
Problemi:
I) l'outpud del secondo comando è roba tipo
Code: | ./categoria/nome_pacchetto/nome_pacchetto.ebuild
./categoria/nome_pacchetto/nome_pacchetto.ebuild
./categoria/nome_pacchetto/nome_pacchetto.ebuild |
quello del primo:
Code: | categoria/nome_pacchetto |
quindi non so come confrontarli. (dovrei riformattare il file delle dipendenze^-1 ma non so come)
II) chiaramente sarebbe tutto molto spartano, se andasse, ma almeno avrei una traccia di quali pacchetti controllare a mano, magari con altre utilities...
Perchè facendo così nella dipendenza^-1 (dipendenza inversa) si considera di utilizzare TUTTE le use flags esistenti.
Che ne pensate? Mi date na mano?
Per chiarezza riporto l'output del comando! per esempio per cdrtools
Code: |
dvd@lazypenguin portage $ cd /usr/portage/ && find . -name '*.ebuild' | xargs grep -l app-cdr/cdrtools > /var/tmp/dipendenze^-1
find: ./distfiles/cvs-src: Permission denied
dvd@lazypenguin portage $ cat /var/tmp/dipendenze^-1
./app-emacs/cdrw/cdrw-1.2.ebuild
./app-misc/cdcat/cdcat-0.2.ebuild
./app-misc/cdcat/cdcat-0.3.ebuild
./kde-base/kdemultimedia/kdemultimedia-3.1.5.ebuild
./kde-base/kdemultimedia/kdemultimedia-3.0.5b.ebuild
./sys-apps/mindi/mindi-0.85.ebuild
./sys-apps/mindi/mindi-0.86.ebuild
./sys-apps/mondo-rescue/mondo-rescue-1.61.ebuild
./sys-apps/mondo-rescue/mondo-rescue-1.65.ebuild
./sys-apps/mondo-rescue/mondo-rescue-1.47.ebuild
./app-emulation/uae/uae-0.8.25_pre20040302.ebuild
./net-misc/pxes/pxes-0.7.ebuild
./net-misc/pxes/pxes-0.6-r4.ebuild
./net-misc/pxes/pxes-0.8.ebuild
./media-sound/cdmp3/cdmp3-0.4.1.ebuild
./media-sound/sonic-rainbow/sonic-rainbow-0.5.1.ebuild
./media-video/lives/lives-0.8.1.ebuild
./media-video/lives/lives-0.7.1.ebuild
./media-video/dvdrip/dvdrip-0.50.17.ebuild
./media-video/dvdrip/dvdrip-0.50.16-r1.ebuild
./media-video/dvdrip/dvdrip-0.50.16.ebuild
./gnome-extra/nautilus-cd-burner/nautilus-cd-burner-2.6.0.ebuild
./gnome-extra/nautilus-cd-burner/nautilus-cd-burner-0.5.3.ebuild
./gnome-extra/nautilus-cd-burner/nautilus-cd-burner-0.6.1.ebuild
./app-cdr/k3b/k3b-0.11.9.ebuild
./app-cdr/k3b/k3b-0.11.6.ebuild
./app-cdr/cdrx/cdrx-0.3.1-r1.ebuild
./app-cdr/cdrx/cdrx-0.3.1.ebuild
./app-cdr/eroaster/eroaster-2.0.12.ebuild
./app-cdr/eroaster/eroaster-2.1.0-r2.ebuild
./app-cdr/eroaster/eroaster-2.2.0_pre6.ebuild
./app-cdr/arson/arson-0.9.7-r1.ebuild
./app-cdr/arson/arson-0.9.7-r3.ebuild
./app-cdr/gcombust/gcombust-0.1.53.ebuild
./app-cdr/gcombust/gcombust-0.1.55.ebuild
./app-cdr/gcombust/gcombust-0.1.52.ebuild
./app-cdr/gcombust/gcombust-0.1.54.ebuild
./app-cdr/burncenter/burncenter-3.0.ebuild
./app-cdr/burncenter/burncenter-3.1.ebuild
./app-cdr/xcdroast/xcdroast-0.98_alpha15-r3.ebuild
./app-cdr/xcdroast/xcdroast-0.98_alpha15-r2.ebuild
./app-cdr/cdbakeoven/cdbakeoven-2.0_beta2.ebuild
./app-cdr/cdbakeoven/cdbakeoven-1.8.9.ebuild
./app-cdr/cdbakeoven/cdbakeoven-1.8.9-r1.ebuild
./app-cdr/cdrecord-prodvd/cdrecord-prodvd-2.01_alpha24.ebuild
./app-cdr/mp3burn/mp3burn-0.1.ebuild
./app-cdr/cdbkup/cdbkup-1.0.ebuild
./app-cdr/cddump/cddump-0.7.ebuild
./app-cdr/cdrdao/cdrdao-1.1.8-r1.ebuild
./app-cdr/cdrdao/cdrdao-1.1.7-r3.ebuild
./app-cdr/cdrdao/cdrdao-1.1.8.ebuild
./app-cdr/multicd/multicd-1.7.2.ebuild
./app-cdr/gtoaster/gtoaster-1.0_beta6.ebuild
./app-cdr/burncdda/burncdda-1.1.2.ebuild
./app-cdr/dvd+rw-tools/dvd+rw-tools-5.16.4.8.5.ebuild
./app-cdr/dvd+rw-tools/dvd+rw-tools-5.12.4.7.4.ebuild
./app-cdr/dvd+rw-tools/dvd+rw-tools-5.17.4.8.6.ebuild
./app-cdr/dvd+rw-tools/dvd+rw-tools-5.14.4.7.4.ebuild
./app-cdr/dvd+rw-tools/dvd+rw-tools-5.9.4.4.4.ebuild
./app-cdr/dvd+rw-tools/dvd+rw-tools-5.13.4.7.4.ebuild
./app-cdr/bashburn/bashburn-1.4.ebuild
./app-cdr/cdrtools/cdrtools-2.01_alpha27.ebuild
./app-cdr/cdrtools/cdrtools-2.01_alpha26.ebuild
./app-cdr/cdrtools/cdrtools-2.01_alpha25.ebuild
./app-cdr/simplecdrx/simplecdrx-1.2.2.ebuild
./app-cdr/simplecdrx/simplecdrx-1.3.2.ebuild
./app-cdr/simplecdrx/simplecdrx-1.2.1.ebuild
./app-cdr/simplecdrx/simplecdrx-1.3.1.ebuild |
Last edited by =DvD= on Mon Apr 19, 2004 12:45 pm; edited 3 times in total |
|
Back to top |
|
|
Mithrandir81 Tux's lil' helper
Joined: 06 Feb 2004 Posts: 135
|
Posted: Sun Apr 18, 2004 6:25 pm Post subject: |
|
|
volendo puoi semplicemente usare il comando
#revdep-rebuild
dopo aver fatto il depclean, che controlla che tu non abbia rotto qualche dipendenza con il depclean e in caso sia necessario reinstalla il pacchetto mancante...
devi avere emerso gentoolkit
fai comunque attenzione all'output di emerge -p decplean, che non ti elimini cose che tu sai essere necessarie |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Sun Apr 18, 2004 6:30 pm Post subject: |
|
|
Mithrandir81 wrote: | volendo puoi semplicemente usare il comando
#revdep-rebuild
dopo aver fatto il depclean, che controlla che tu non abbia rotto qualche dipendenza con il depclean e in caso sia necessario reinstalla il pacchetto mancante...
devi avere emerso gentoolkit
fai comunque attenzione all'output di emerge -p decplean, che non ti elimini cose che tu sai essere necessarie |
E' normale guardare emerge depclean -p ma come faccio a sapere chi usa i pacchetti che mi stampa!! =)
Per quanto riguarda revdep-rebuild (-p) a volte emerge non va più dopo il depclean! ad esempio se rimuovi il pacchetto acl.
E depclean ultimamente lo fa sempre rimuovere... senza quello non puoi fare mkdir ne ls ... |
|
Back to top |
|
|
Mithrandir81 Tux's lil' helper
Joined: 06 Feb 2004 Posts: 135
|
Posted: Sun Apr 18, 2004 6:32 pm Post subject: |
|
|
beh i pacchetti che non vuoi più che ti elimini aggiungili al world |
|
Back to top |
|
|
Thrain Guru
Joined: 01 Sep 2003 Posts: 380
|
Posted: Sun Apr 18, 2004 6:38 pm Post subject: |
|
|
Perdonami se forse non ho capito quel che intendi...
Ma se non erro, il comando:
Code: |
qpkg -q -I <nomepacchetto>
|
fa proprio al caso tuo: ti restituisce tutti i pacchetti installati che hanno come
dipendenza <nomepacchetto>.
Quindi per esempio, puoi fare in modo che per ogni pacchetto che depclean
vuole eliminare tu esegua quel comando, cosicchè sai subito se quel
pacchetto è una dipendenza... io faccio così quando lancio depclean...
Spero di esserti stato utile
-- edit --
Azz che tempismo, tre post in tre minuti _________________ Thrain
"...only astonishment knows..."
Last edited by Thrain on Sun Apr 18, 2004 6:40 pm; edited 2 times in total |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Sun Apr 18, 2004 6:38 pm Post subject: |
|
|
Mithrandir81 wrote: | beh i pacchetti che non vuoi più che ti elimini aggiungili al world |
Non sto chiedendo come *NON* eliminare pacchetti!
Sto chidendo come sapere quali pacchetti installati utilizzano un determinato pacchetto!!
NON voglio sapere COME eliminarlo, ma SE VOGLIO eliminarlo!!!
Azz mi sono spiegato cosi male? |
|
Back to top |
|
|
malteo Tux's lil' helper
Joined: 12 Mar 2003 Posts: 101 Location: Pescara, Italy
|
Posted: Sun Apr 18, 2004 6:44 pm Post subject: |
|
|
hummmm... prova questo comando:
Code: | for i in $( emerge -p depclean | grep "/" ) ; do qpkg -I -q $i ; done |
fa semplicemente un 'qpkg -I -q' sui pacchetti scelti da 'emerge -p depclean', così vedi se sono dipendenza di qualche altro pacchetto... io lo uso per "pulire" un pò il sistema, vedo quali sono i pacchetti da cui non dipende niente e li elimino con il classico 'emerge -C', se qualcuno è magari capace di automatizzare questo secondo passo, è benvenuto |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Sun Apr 18, 2004 6:49 pm Post subject: |
|
|
=(
allora cancellate pure sto thread!
Mi era passata la -q su qpkg, e pensare che l'ho letto e riletto l' --help
Grazie!! |
|
Back to top |
|
|
silian87 Advocate
Joined: 06 Oct 2003 Posts: 2318 Location: Treviso, Italy
|
Posted: Sun Apr 18, 2004 8:59 pm Post subject: |
|
|
Quote: | allora cancellate pure sto thread! |
Figuriamoci! Intanto io ho visto la riga di CortoMaltese (e non solo io), tu hai imparato un bel po' di cose su portage e cosi' via! E' l'esperienza che insegna!
[OT]
Per giustificare la mia affermazione devo raccontare una breve storiella.
Quando stavo facendo lo script in bash per la rilevzione dei demoni, volevo mettere in ogni elemento di un array un file di /etc/init.d. Avevo provato a lungo, ed alla fine avevo usato un metodo ingenioso :
Facevo un ls con l'opzione che stampa ogni riga un file su un file di testo.
Il primo output mostrava solo 1 riga, il secondo n-1 righe, quindi 0. Facevo il diff tra i due file, ed ecco che prendevo nella variabile il primo elemento. Quindi il comntatore si incrementava, facevo ls tra due righe del primo ed una del secondo, ed ecco che spuntava il secondo file, e cosi' via.
Esempio:
samba samba
apache apache
mysql
Questi erano i due file al terzo giro, facendo un diff appariva il terzo elemento della directory...
Un metodo ingenioso!
Poi ho scoperto che con un FOR in bash con la lista dei file si risolveva il problema da me risolto in 20 righe, in 3 righe..
Pero' lo conservo ancora il mio metodo..
[/OT] _________________ Musica che ascolto: http://www.last.fm/user/silian87/
Silian87 FAQs: http://marentax.homelinux.org/~silian87/silian87-faq.txt
GTalk: silian87@gmail.com |
|
Back to top |
|
|
=DvD= Veteran
Joined: 25 Mar 2004 Posts: 1353
|
Posted: Mon Apr 19, 2004 12:41 pm Post subject: |
|
|
silian87 wrote: |
Figuriamoci! Intanto io ho visto la riga di CortoMaltese (e non solo io), tu hai imparato un bel po' di cose su portage e cosi' via! E' l'esperienza che insegna! |
Vero!
Adesso mi son fatto uno script, l'ho messo in /usr/bin e l'ho chiamato depcheck, con dentro la riga di cortomaltese, cosi non devo stare a digitare tutta quella roba!!
per quelli come me alle prime armi, e per quelli pigri riporto come ho fatto! :
Code: | lazypenguin linux # echo '#! /bin/bash' > /usr/bin/depcheck
lazypenguin linux # echo 'for i in $( emerge -p depclean | grep "/" ) ; do qpkg -I -q $i ; done' >> /usr/bin/depcheck
lazypenguin linux # chmod 755 /usr/bin/depcheck
|
Per fare il controllo basta digitare depcheck |
|
Back to top |
|
|
|