Script per salvare la lista pacchetti

Mer, 21/12/2011 - 17:15
Ritratto di Suse98

Script per salvare la lista pacchetti

Inviato da Suse98 10 commenti

Ecco lo script per salvare la lista pacchetti :

#!/bin/bash
 
 
rpm -qa | sort > rpmtmp.txt
 
echo "\$o = {" > listapacchetti.lst
echo "'default_packages' => [" >> listapacchetti.lst
 
Pacchetti="$(cat rpmtmp.txt)"
TmpP=""
for Pacchetto in $Pacchetti
do
TmpP="$Pacchetto',"
echo ${TmpP} >> listapacchetti.lst
done
 
echo ${TmpP} | cut -d ',' -f 1 >> listapacchetti.lst
echo "]" >> listapacchetti.lst
echo "};" >> listapacchetti.lst
cat listapacchetti.lst | sed 's/.x86_64/ /g' > pacchetti.lst
 
rm rpmtmp.txt 

chiamatelo rpm.sh e date da terminale :
sh rpm.sh

Salvate il file nella vostra directory e poi date :
pkg=`cat pacchetti.lst` ; for i in $pkg ; do zypper in $i ; done

Fonti :
Io ( Suse98 e Gollum )





Commenti

Ritratto di Suse98
#1

Inviato da Suse98 il Mer, 21/12/2011 - 22:07.

Re: Script per salvare la lista pacchetti

Vi ricordo che dovete modificare 86_64 con la vostra architettura per essere tolti l'architettura , io ho 64 bit , e ho fatto così.
Ciao Wink



Ritratto di Gollum
#2

Inviato da Gollum il Sab, 24/12/2011 - 12:47.

Re: Script per salvare la lista pacchetti

Si potrebbe fare una modifica ulteriore, fare in modo che lo script recuperi inautomatico la'architettura del sistema che ne dici?



Ritratto di Suse98
#3

Inviato da Suse98 il Sab, 24/12/2011 - 12:50.

Re: Script per salvare la lista pacchetti

Si, lo potremmo fare.
Dai, aggiustiamo !
Ciao Wink



Ritratto di Suse98
#4

Inviato da Suse98 il Sab, 24/12/2011 - 14:00.

Re: Script per salvare la lista pacchetti

Questo script è di Gollum.
È tutto suo.
Io ho aggiunto solo dei ( 3-4 ) comandi ( usate questo che viene dopo e poi seguite quello che dico sopra ):

#!/bin/bash
 
 
rpm -qa | sort > rpmtmp.txt
 
echo "\$o = {" > listapacchetti.lst
echo "'default_packages' => [" >> listapacchetti.lst
 
Pacchetti="$(cat rpmtmp.txt)"
TmpP=""
for Pacchetto in $Pacchetti
do
TmpP="$Pacchetto',"
echo ${TmpP} >> listapacchetti.lst
done
 
echo ${TmpP} | cut -d ',' -f 1 >> listapacchetti.lst
echo "]" >> listapacchetti.lst
echo "};" >> listapacchetti.lst
cat listapacchetti.lst | sed 's/.noarch/ /g' > pacchetti.txt
cat pacchetti.txt | sed 's/.x86/ /g' > pacchetti.lst
cat pacchetti.txt | sed 's/.i486/ /g' > pacchetti.lst
cat pacchetti.txt | sed 's/.i586/ /g' > pacchetti.lst
cat pacchetti.txt | sed 's/.i686/ /g' > pacchetti.lst
cat pacchetti.txt | sed 's/.x86_64/ /g' > pacchetti.lst
 
rm rpmtmp.txt 

Ciao Wink



Ritratto di doc_pluto
#5

Inviato da doc_pluto il Lun, 06/02/2012 - 00:16.

Re: Script per salvare la lista pacchetti

mi sento di darti solo un paio di consigli:

1_aggiungi dei commenti agli script, così la lettura del codice è più agile e snella.
aiuta anche chi vuole capire cosa vuoi fare e come lo fai.

2_a meno che non mi sfugga una particolare costruzione del file elenco necessaria al successivo funzionamento con zypper in, credo tutto si possa risolvere con un comando:

rpm -qa | sort | sed 's/.i586/ /g' | sed 's/.x86_64/ /g' | sed 's/.noarch/ /g'> pacchetti.lst
ecco un estratto di quello che ottengo, giusto per dare un'idea (a fine riga c'è uno spazio):

Citazione:

...cut...
bundle-lang-common-ar-12.1-41.5.1
bundle-lang-common-ca-12.1-41.5.1
bundle-lang-common-cs-11.4-17.3
bundle-lang-common-en-12.1-41.5.1
bundle-lang-common-it-12.1-41.5.1
bundle-lang-gnome-en-12.1-41.5.1
bundle-lang-gnome-extras-ar-12.1-41.5.1
bundle-lang-gnome-extras-ca-12.1-41.5.1
bundle-lang-gnome-extras-en-12.1-41.5.1
bundle-lang-gnome-extras-it-12.1-41.5.1
bundle-lang-gnome-it-12.1-41.5.1
bundle-lang-kde-en-12.1-41.5.2
bundle-lang-kde-it-12.1-41.5.2
...cut...

credo lo spazio che restava prima in fondo era un problema. ho aggiunto un pezzo:
rpm -qa | sort | sed 's/.i586/ /g' | sed 's/.x86_64/ /g' | sed 's/.noarch/ /g' | cut -d ' ' -f 1 > pacchetti.ls

Citazione:

...cut...
bundle-lang-common-ar-12.1-41.5.1
bundle-lang-common-ca-12.1-41.5.1
bundle-lang-common-cs-11.4-17.3
bundle-lang-common-en-12.1-41.5.1
bundle-lang-common-it-12.1-41.5.1
bundle-lang-gnome-en-12.1-41.5.1
bundle-lang-gnome-extras-ar-12.1-41.5.1
bundle-lang-gnome-extras-ca-12.1-41.5.1
bundle-lang-gnome-extras-en-12.1-41.5.1
bundle-lang-gnome-extras-it-12.1-41.5.1
bundle-lang-gnome-it-12.1-41.5.1
bundle-lang-kde-en-12.1-41.5.2
bundle-lang-kde-it-12.1-41.5.2
...cut...

3_forse può essere utile sapere che aprendo Gestione Pacchetti da yast, nel menù FILE c'è la possibilità di esportare la lista dei pacchetti in formato XML, in automatico vengono indicate la versione del pacchetto e l'architettura.
successivamente è possibile importarla.



Ritratto di Suse98
#6

Inviato da Suse98 il Lun, 06/02/2012 - 18:01.

Re: Script per salvare la lista pacchetti

Per il fatto del gestore pacchetti non lo sapevo Hypnotized

Poi se tu salvi la lista pacchetti, la salvi perchè la vuoi salvare, non è che devo aggiungere un pezzo che installa tutto, se uno la vuol salvare la salva, e poi la installa, non salva e installa subito.
Ciao Wink



Ritratto di doc_pluto
#7

Inviato da doc_pluto il Lun, 06/02/2012 - 19:57.

Re: Script per salvare la lista pacchetti

dunque, non ho ben capito il tuo discorso, non vorrei che avessi preso il mio commento come una critica sterile, quando invece voleva essere costruttiva.. d'altronde, se esistono modi diversi per fare qualcosa, forse è utile conoscerne più di uno, non trovi?

io credo che "avere una lista dei pacchetti installati sul mio sistema" possa essere assimilato a "ho creato un punto in cui la macchina ha certi pacchetti funzionanti, tutto in ordine o quasi, mancano solo le configurazioni personali e poi è quasi un backup".

l'utilizzo che ne posso fare non è da ricercare appena il file viene creato, ma magari per tornare indietro dopo un aggiornamento sfortunato, o dopo un'installazione di software che volevamo provare che si è portato dietro mille dipendenze che prima non usavamo, oppure, magari più utile, nel caso di una nuova installazione (perchè no, via rete) sullo stesso identico sistema.



Ritratto di aksaf
#8

Inviato da aksaf il Mar, 07/02/2012 - 00:47.

Re: Script per salvare la lista pacchetti

Forse può interessare ad entrambi questo articolo http://duncan.mac-vicar.com/2012/01/19/poor-mans-rollback/ applicarla tal quale è forse un po' complicato per via dell'utilizzo di diff, tuttavia il salvataggio dei pacchetti installati con un semplice

rpm -qa --queryformat="%{name}\n" > 1

è molto pratico a mio parere, anche perché evitando versione e revisione del pacchetto si snellisce e si migliora l'azione di zypper, a mio modesto parere.
In ogni caso si può aggiungere la versione con:
rpm -qa --queryformat="%{name}-%{version}\n"

Peace and love Smile



Ritratto di Suse98
#9

Inviato da Suse98 il Mar, 07/02/2012 - 20:10.

Re: Script per salvare la lista pacchetti

Doc_pluto, io intendevo proprio questo Smile Wink
aksak, ottimo!
Si usano le macro per il comando...
Molto semplice e facile, secondo me sarebbe meglio fare così !
Ciao Wink Wave



Ritratto di doc_pluto
#10

Inviato da doc_pluto il Mar, 07/02/2012 - 20:42.

Re: Script per salvare la lista pacchetti

aksaf ha scritto:

Forse può interessare ad entrambi questo articolo http://duncan.mac-vicar.com/2012/01/19/poor-mans-rollback/ applicarla tal quale è forse un po' complicato per via dell'utilizzo di diff, tuttavia il salvataggio dei pacchetti installati con un semplice

rpm -qa --queryformat="%{name}\n" > 1

è molto pratico a mio parere, anche perché evitando versione e revisione del pacchetto si snellisce e si migliora l'azione di zypper, a mio modesto parere.
In ogni caso si può aggiungere la versione con:
rpm -qa --queryformat="%{name}-%{version}\n"

Peace and love Smile

che figata!!
non dico altro.