Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Trick a metà per usare emerge depclean... mi serve una mano
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
=DvD=
Veteran
Veteran


Joined: 25 Mar 2004
Posts: 1353

PostPosted: Sun Apr 18, 2004 6:09 pm    Post subject: Trick a metà per usare emerge depclean... mi serve una mano Reply with quote

---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 :D :roll:

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 :roll: ) 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? :D

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
View user's profile Send private message
Mithrandir81
Tux's lil' helper
Tux's lil' helper


Joined: 06 Feb 2004
Posts: 135

PostPosted: Sun Apr 18, 2004 6:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
=DvD=
Veteran
Veteran


Joined: 25 Mar 2004
Posts: 1353

PostPosted: Sun Apr 18, 2004 6:30 pm    Post subject: Reply with quote

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 ... :roll:
Back to top
View user's profile Send private message
Mithrandir81
Tux's lil' helper
Tux's lil' helper


Joined: 06 Feb 2004
Posts: 135

PostPosted: Sun Apr 18, 2004 6:32 pm    Post subject: Reply with quote

beh i pacchetti che non vuoi più che ti elimini aggiungili al world :D
Back to top
View user's profile Send private message
Thrain
Guru
Guru


Joined: 01 Sep 2003
Posts: 380

PostPosted: Sun Apr 18, 2004 6:38 pm    Post subject: Reply with quote

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 :roll:

-- edit --

Azz che tempismo, tre post in tre minuti :D
_________________
Thrain

"...only astonishment knows..."


Last edited by Thrain on Sun Apr 18, 2004 6:40 pm; edited 2 times in total
Back to top
View user's profile Send private message
=DvD=
Veteran
Veteran


Joined: 25 Mar 2004
Posts: 1353

PostPosted: Sun Apr 18, 2004 6:38 pm    Post subject: Reply with quote

Mithrandir81 wrote:
beh i pacchetti che non vuoi più che ti elimini aggiungili al world :D


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
View user's profile Send private message
malteo
Tux's lil' helper
Tux's lil' helper


Joined: 12 Mar 2003
Posts: 101
Location: Pescara, Italy

PostPosted: Sun Apr 18, 2004 6:44 pm    Post subject: Reply with quote

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 :wink:
Back to top
View user's profile Send private message
=DvD=
Veteran
Veteran


Joined: 25 Mar 2004
Posts: 1353

PostPosted: Sun Apr 18, 2004 6:49 pm    Post subject: Reply with quote

=(
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
View user's profile Send private message
silian87
Advocate
Advocate


Joined: 06 Oct 2003
Posts: 2318
Location: Treviso, Italy

PostPosted: Sun Apr 18, 2004 8:59 pm    Post subject: Reply with quote

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 :lol: :

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! :lol: :lol:

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..

8O 8O 8O 8O

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
View user's profile Send private message
=DvD=
Veteran
Veteran


Joined: 25 Mar 2004
Posts: 1353

PostPosted: Mon Apr 19, 2004 12:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum