[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Lista pacchetti non su installazione corrente



dom 30 ottobre 2005, alle 10:15 (GMT+0200), Maxx ha scritto:
> On Sun, 30 Oct 2005 00:50:07 +0200 Johan Haggi wrote:
> > cat /XXX/var/lib/dpkg/status | grep "^Package" | sed "s/Package: //" \

> Ok, grazie per il suggerimento.
> In realtà se ho capito bene, bisognerebbe per ogni pacchetto anche
> controllare il campo Status:, giusto ad evitare di installare pacchetti
> che sul vecchio HD erano stati rimossi.
> 
> Ho trovato anche che un'alternativa è [...]

Sono veramente dispiaciuto per il consiglio  incompleto: avevo verificato
il contenuto del file su un'installazione recente e mi erano sfuggiti i
pochissimi file "purge" :-((

Spero che nel frattempo abbia risolto in altro modo, in caso contrario o
per altri interessati:

cat /XXX/var/lib/dpkg/status | egrep "^(Package|Status)" > pac_vecchio_hd.txt

vim pac_vecchio_hd.txt

in vim digitare:
:% s/^Package: \(.*\)\nStatus: install ok installed/\1/
  premere INVIO
:% s/^\(Package\|Status\).*\n//
  premere INVIO
  uscire e salvare digitando:
:wq
  premere INVIO

Per chi non conosce le espressioni regolari: la prima ricerca una
stringa che inizia con "Package " seguita da qualsiasi cosa seguita da
un carattere a capo seguita da "Status: install ok installed" e la
sostituisce con il contenuto della prima serie di parentesi quotate (in
questo caso il nome del pacchetto.

la seconda cerca le righe che iniziano con Package oppure Status seguiti
da qualsiasi cosa seguiti da un a capo e sostituiscono con nulla.

P.S.
Qualcuno conosce qualche trucco per fare cose simili (ricerca e/o
sostituzione su piu` righe) direttamente da linea di comando?
-- 
Ave       Johan Haggi
Kalendis Novembribus MMDCCLVIII ab Urbe condita
**NEW** GnuPG key-id: 0x398F1A73 (available on http://keyserver.linux.it)
Fingerprint: 75D4 86D5 B795 BD31 4BD2  2354 9206 CB42 398F 1A73



Reply to: