il mio primo script!!^.^utility per installare lo slackbuild

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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.
Rispondi
Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

il mio primo script!!^.^utility per installare lo slackbuild

Messaggio da Procopio »

Ciao a tutti!!

Dopo l'ennesima installazione di slackware non avevo nessuna voglia di installare da capo lo slackbuild di vlc con tutte e 40(?) le dipendenze che si porta dietro...
Ho creato quindi uno scriptino bash che semplicemente scompatta lo slackbuild, ci incolla dentro il sorgente, compila lo slackbuild e installa il pacchetto creato, lasciando tutto pulito...

Ovviamente lo script va ripetuto per ogni pacchetto e le dipendenze vanno curate a mano.
Io ad esempio per utilizzarlo ho creato una directory nella mia home, nella quale scarico l'archivio dello slackbuild e dei sorgenti che voglio dare in pasto allo script. Questa directory viene poi lascia vuota dallo script e pronta per gli archivi di un altro slackbuild.
Le eventuali opzioni di compilazione (si veda ad esempio aMule) possono essere inserite prima del comando che lancia lo script, ad esempio:

Codice: Seleziona tutto

DAEMON=yes CMD=yes WEBSERVER=yes ALC=yes ALCC=yes XAS=yes GEOIP=yes MMAP=yes OPTIMIZE=no sh slackbuild
Ora, non so gli utenti esperti, o più furbi di me, come si regolino quando devono compilare gli slackbuild con molte dipendenze...io reiteravo a mano la procedura che fa questo script ed era veramente una cosa pesante, quando non hai particolari esigenze di editing sui singoli files...

Prima che qualcuno leggendo quello script mi insulti, mi banni, tenti di uccidermi, dica che quelli come me gli fanno tanta rabbia, etc... sappiate che questo è il mio primo script e che ho inniziato a leggere un po di bash scripting alle sei di oggi pomeriggio, e mi sono fermato al primo capitolo: assegnazione delle variabili :D
Infatti in questo scriptino altro non c'è che assegnazione delle variabili. Il fatto però che per il mio scopo si sia rivelato soddisfacente mi ha convinto a condividerlo qua con voi:)


EDIT: Ho fixato il bug iniziale che non permetteva allo script di funzionare quando il sorgente ha più archivi
procopio ha scritto:Un bug che immediatamente salta all'occhio è poi che: per gli slackbuild che hanno i sorgenti su più archivi (tipo texlive) questo script non funge, e bisogna installarli a mano.
ora funziona anche in quel caso, basta scaricare nella directory di DIR_LOG tutti gli archivi dei sorgenti e l'archivio dello slackbuild, e ci pensa lo script a riconoscere i vari archivi ed utilizzarli nella maniera corretta.

Codice: Seleziona tutto

#!/bin/bash
shopt -s extglob

DIR_LOG=/home/matteo/slackbuilds
cd $DIR_LOG

SLKBUILD=$(ls -S |tail -1)
tar xpzf $DIR_LOG/$SLKBUILD
rm $DIR_LOG/$SLKBUILD

DIR_SB=$(ls -u -r |tail -1)
mv $DIR_LOG/!($DIR_SB) $DIR_LOG/$DIR_SB
cd $DIR_LOG/$DIR_SB


chmod +x $DIR_LOG/$DIR_SB/*.SlackBuild
echo "compilo lo slackbuild"
sh $DIR_LOG/$DIR_SB/*.SlackBuild


cd $DIR_LOG
rm -r $DIR_LOG/*


PAKAGE=/tmp
echo "installo il pacchetto"
upgradepkg --install-new $PAKAGE/*.tgz


rm $PAKAGE/*.tgz
Ultima modifica di Procopio il gio 23 gen 2014, 12:42, modificato 5 volte in totale.

ilmich
Master
Master
Messaggi: 1645
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: il mio primo script!!^.^utility per installare lo slackb

Messaggio da ilmich »

L'idea non è male, io mi trovo raramente (per questioni di principio relative al fatto che non utilizzo software con troppe dipendenze) nella tua situazione, ma compilo (e devo prepararmi a farlo qui' su slacky) mate desktop che è un bel mattoncino e in passato mi sono ispirato a questo script che pat utilizza per xfce

ciau
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: il mio primo script!!^.^utility per installare lo slackb

Messaggio da Procopio »

be` si quell e` un altro metodo, ma, ad esempio nel mio caso, non potrei gestire la configurazione di ffmpeg, e soprattutto gestire la compilazione e installazione di texlive, senza la quale i pacchetti dopo non si compilano...

Una domanda importante e` questa: se io elimino la directory /tmp/SBo o la ripulisco periodicamente, posso avere dei problemi nelle compilazioni future? qual e` il suo scopo esattamente? So che l'installazione di un programma comporta che i suoi files di sistema vadano a modificare alcuni files di sistema, piuttosto che non crearne altri in vari percorsi etc, ma la compilazione dovrebbe non intaccare il mio sistema, giusto? dovrebbe essere contingente alla directory in cui si esegue, no?

ilmich
Master
Master
Messaggi: 1645
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: il mio primo script!!^.^utility per installare lo slackb

Messaggio da ilmich »

Procopio ha scritto:Una domanda importante e` questa: se io elimino la directory /tmp/SBo o la ripulisco periodicamente, posso avere dei problemi nelle compilazioni future? qual e` il suo scopo esattamente?
Assolutamente no.
Se ti ci fai un giro dentro vedrai la seguente struttura

Codice: Seleziona tutto

+ nome pacchetto
+--- sorgente scompattato
+--- installazione dal quale poi viene generato il pacchetto
ogni qualvolta lanci uno slackbuild questo percorso viene ripulito (chiaramente se lo slackbuild è fatto secondo standard piu' o meno diffusi)
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: il mio primo script!!^.^utility per installare lo slackb

Messaggio da Procopio »

eh no, nel mio caso e` piena con tutti gli slackbuild che ho compilato da quando ho installato la slack, e mi sta saturando la /, allora la svuoto, grazie!

ilmich
Master
Master
Messaggi: 1645
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: il mio primo script!!^.^utility per installare lo slackb

Messaggio da ilmich »

mi sono espresso male, intendevo che a fronte della compilazione dello stesso pacchetto, questo percorso viene ripulito, non tutta la directory /tmp/SBo.
se la vuoi svuotare, devi farlo manualmente.
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
Procopio
Linux 3.x
Linux 3.x
Messaggi: 844
Iscritto il: ven 29 lug 2011, 11:50
Nome Cognome: Matteo Micheletto Oddino
Slackware: 14.2
Kernel: 4.4.14
Desktop: Awesome
Località: Torino

Re: il mio primo script!!^.^utility per installare lo slackb

Messaggio da Procopio »

ho fixato il problema dei sorgenti multipli, ora funziona anche su slackbuilds che hanno i sorgenti compattati in più archivi..
per farlo ho aggiunto shopt -s extglob, dite che dovrei aggiungerlo più che altro in .bashrc?

Rispondi