Repository 32bit  Forum
Repository 64bit  Wiki

Slackpkg e clean-system su repository ad-hoc

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Slackpkg e clean-system su repository ad-hoc

Messaggioda miklos » lun ott 28, 2013 13:50

Ciao a tutti,

ho la necessità di trovare un modo rapido e indolore di clonare (per quanto riguarda la dotazione software) macchine server remote.
Ho scartato a priori la clonazione delle partizioni perchè utilizzo prevalentemente connesioni domestiche e quindi ci metterei troppo di piu', percio' attualmente mi sono fatto degli script che tramite slapt-get, partendo da una lista di pacchetti 'buoni' li installano. questa procedura pero' è un po' scomoda non solo perchè devo tenere traccia dei pacchetti, ma anche perchè, causa elementare conoscenza del bash scripting, la rimozione dei pacchetti superflui è manuale.

mi sono ricordato pero' che slackpkg ha tra le varie funzioni la 'pulizia' del sistema tramite il comando clean-system. da quello che ho visto io questa funzione si basa sulla ricerca dei pacchetti non presenti nella lista che di solito rappresenta l'insieme dei pacchetti slackware ufficiali.

la domanda ora è questa, se mi creo un repository ad-hoc con tutti i pacchetti (ufficiali e non) che mi servono e vi ci faccio puntare slackpkg, riesco ad avere questa funzionalità tramite mezzi 'ufficiali'!??!?! spazzando via slapt-get che per uso desktop è fenomenale, uso server un po' meno?!?!?!
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1220
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: Slackpkg e clean-system su repository ad-hoc

Messaggioda ponce » lun ott 28, 2013 16:19

puoi farlo facendoti un tuo repository, usandoci insieme slackpkg+ e poi sfruttando i template di slackpkg.
Avatar utente
ponce
Master
Master
 
Messaggi: 1501
Iscritto il: mer mar 05, 2008 16:45
Località: Pisa
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 3.17-rc3
Desktop: lxde

Re: Slackpkg e clean-system su repository ad-hoc

Messaggioda miklos » lun ott 28, 2013 16:38

ponce ha scritto:puoi farlo facendoti un tuo repository, usandoci insieme slackpkg+ e poi sfruttando i template di slackpkg.
ma è possibile specificare il template quando si lancia il clean-system??! perchè cosi' sarebbe perfetto.

comunque come ulteriore info vi faccio un esempio pratico perchè magari detta cosi' sembra piu' un mio capriccio :)
ho dei server su un servizio di hosting virtuale che ha un supporto a slackware che dire pessimo e fargli un complimento, le immagini non si avviano se non si aggiunge un parametro al kernel, installano cose tipo compilatore gcc, le gtk, syslinux, supporto ntfs e mi voglio fermare qui :)
ora siccome aimè ci dovro' convivere per parecchio, ho la necessita di avere server nuovi in tempi molto meno biblici delle piccole automazioni che sono riuscito a fare da solo (che sono state precedute da un lavoro certosino della /var/log/packages in cerca di pacchetti che non mi servono)

per questo ho bisogno di un sistema che riconosca solo un sottoinsieme di tutti i pacchetti della stable, cosi' che ogni macchina creata su questo servizio di hosting venga 'pulita' utilizzando tools ufficiali(e quindi ben collaudati).
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1220
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: Slackpkg e clean-system su repository ad-hoc

Messaggioda miklos » lun ott 28, 2013 18:42

ok ho trovato l'uovo di colombo (forse :) )
leggendo questo topic semplicemente utilizzando
Codice: Seleziona tutto
grep -Fxvf lista-pacchetti-minimali lista-pacchetti-installati
riesco a produrre la lista dei pacchetti da rimuovere da dare in pasto al mio 'script'

una volta fatta questa 'pulizia' posso usare i template che citava ponce (tra l'altro ho macchine eterogenee quindi web server piuttosto che database server, ognuna con il suo template) in congiunzione con slackpkg+ per avere, per quanto riguarda il software installato due macchine esattamente identiche

grazie :thumbright:
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1220
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: Slackpkg e clean-system su repository ad-hoc

Messaggioda miklos » mar nov 05, 2013 17:22

ho implementato una nuova funzionalità 'clean-template' su slackpkg che fa quello che serve a me. e dai test preliminari direi che fa quel che mi aspetto.
è stato molto banale perchè sostanzialmente è un clean-system che pero' agisce su liste differenti (lista pacchetti template piuttosto che lista pacchetti ufficiali), ora faccio un po' di prove con slackpkg+ e se vedo che il tutto va al volo magari provo a mandare sta mini pezza al mantainer ufficiale perchè secondo me è una funzionalità molto utile.

ciau
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1220
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: Slackpkg e clean-system su repository ad-hoc

Messaggioda miklos » dom nov 17, 2013 22:51

allego di seguito la patch che ho realizzato per la funzionalità clean-template
Codice: Seleziona tutto
diff -rupN usr.orig/libexec/slackpkg/core-functions.sh usr/libexec/slackpkg/core-functions.sh
--- usr.orig/libexec/slackpkg/core-functions.sh   2013-11-17 22:24:53.734537348 +0100
+++ usr/libexec/slackpkg/core-functions.sh   2013-11-17 22:35:11.392515109 +0100
@@ -674,6 +674,15 @@ function makelist() {
             grep -q " ${NAME} " ${TMPDIR}/tmplist || \
                LIST="$LIST ${FULLNAME}"
          done
+      ;;
+      clean-template)
+         listpkgname
+         for i in $(comm -2 -3 ${TMPDIR}/lpkg ${TMPDIR}/${TEMPLATE}.tmp) ; do
+            PKGDATA=( $(grep -- "^local $i " ${TMPDIR}/tmplist) )
+            [ ! "$PKGDATA" ] && continue
+            LIST="$LIST ${PKGDATA[5]}"
+            unset PKGDATA
+         done            
       ;;   
       remove-template)
          for i in $INPUTLIST ; do
diff -rupN usr.orig/sbin/slackpkg usr/sbin/slackpkg
--- usr.orig/sbin/slackpkg   2013-11-17 22:24:53.708537349 +0100
+++ usr/sbin/slackpkg   2013-11-17 22:40:00.767504690 +0100
@@ -215,7 +215,7 @@ while [ -n "$1" ] ; do
         shift $#
       fi
     ;;
-    generate-template|install-template|remove-template|search|file-search|info)
+    clean-template|generate-template|install-template|remove-template|search|file-search|info)
       CMD=$1
       shift
       if [ -n "$1" ]; then
@@ -539,6 +539,29 @@ case "$CMD" in
       showlist "$LIST" $CMD
       remove_pkg
    ;;
+   clean-template)
+      TEMPLATE=$ARG.template
+      if [ -e $TEMPLATEDIR/$TEMPLATE ]; then
+         ( cd $TEMPLATEDIR
+           parse_template $TEMPLATE
+         )
+         #INPUTLIST=$(cat ${TMPDIR}/${TEMPLATE}.tmp | tr "\n" " ")
+      else
+         echo -e "$ARG template not found!"
+         cleanup
+      fi
+   
+      #makelist $INPUTLIST
+      makelist
+      if [ -n "$LIST" ]; then
+         showlist "$LIST" remove
+         remove_pkg
+      else
+         echo -e "No packages match the pattern for clean-system\n"
+         POSTINST=off
+      fi
+   ;;
+   
    *)
       usage
    ;;
Come potete vedere è molto semplice e riprende in parte la funzionalità clean-system applicandola pero' ai template.
La patch andrebbe ultimata inserendo il nuovo comando nell'help in linea e nella pagina di man, ma al momento non sapendo nemmeno se la funzionalità puo' essere portata avanti nel canale ufficiale mi sono interessato esclusivamente della funzionalità (tra l'altro ho visto che il progetto ufficiale sembra un po' morto ed è Pat che rilascia delle pezze ufficiose di volta in volta)

devo ammettere che anche se un po' 'faticoso' inizialmente i template sono una buona cosa :)

EDIT: se pensate che pero' possa essere una cosa utile provo a vedere che mi dicono su linuxquestion :P
RI-EDIT: la patch è stata realizzata con slackpkg presente sulla 14.0
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1220
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2


Torna a Slackware

Chi c’è in linea

Visitano il forum: Google [Bot] e 3 ospiti