il mio primo script!!^.^utility per installare lo slackbuild
Inviato: mer 22 gen 2014, 1:30
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:
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
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
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
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
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
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.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.
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