In questo topic riporto gli strumenti che trovo utili per semplificare un po' la vita agli utenti Slackware, nuovi o navigati che siano.
Ogni post aggiunto avrà un titolo pertinente con il suo contenuto.
Questo script l'ho trovato per caso leggendo un forum di Slackware. Di seguito la pagina sul sito del suo autore:
http://www.zoros.org/wiki/index.php?title=Slackbuilds_Get,_a_script_that_make_and_install_Slackware_SBo_packages_and_dependencies,_recursively
La particolarità di questo script è che risolve le dipendenze e compila e installa tutto automaticamente, semplicemente utilizando l'indirizzo URL, relativo al pacchetto da installare, dal sito repository SlackBuilds.org (https://slackbuilds.org/). Quindi estremamente semplice da usare.
Ecco lo script:
SBo_get.sh
#!/bin/sh
# SBo_get.sh - copyleft Fabio Zorba 2015
# get SlackBuilds and sources from SBo,
# make and install Slackware packages
# rev. 0.5 - 2016-01-21:
# slackbuild site template is changed, URL to slackbuild-name.gz is relative now, fixed
# checks up to 50 dependencies, download all required sources packages per slackbuild
if test $# -ne 1
then
echo "$0 rev. 0.5 - 2016-01-21"
echo "Usage: $0 https://slackbuilds.org/repository/{slackware-version}/{category}/{slackbuild_name}"
exit 1
fi
SITEBASE=https://slackbuilds.org
if [ ! -d ./slackbuilds ] ; then
mkdir -p ./slackbuilds
fi
IFS=
INDEX_HTML=`wget -q -O - $1/`
N=1
while [ $N -le 50 ]
do
K=$(($N*2))
REQU[$N]=`echo $INDEX_HTML | grep requires | grep -o -P '(?<=href=).*(?=</a>)' | cut -d"'" -f$K`
N=$(($N+1))
done
SLACKBUILD=`echo $INDEX_HTML | grep "Download SlackBuild" | grep -o -P '(?<=href=).*(?=</a>)' | cut -d'"' -f2`
FILE_NAME=`echo $SLACKBUILD | rev | cut -d'/' -f1 | rev`
BUILD_DIR=`echo $FILE_NAME | cut -d'.' -f1`
SLACKBUILD=`echo $INDEX_HTML | grep "Download SlackBuild" | grep -o -P '(?<=href=).*(?=</a>)' | cut -d'"' -f2`
SOURCES=`echo $INDEX_HTML | sed -n -e '/Source Downloads/,/Download SlackBuild/ p' - | grep -o -P '(?<=href=).*(?=</a>)'| cut -d'"' -f2`
# find all sources links
LINK="start"
MAXS=0
while [ "a$LINK" != "a" ]
do
MAXS=$(($MAXS+1))
IFS=$'\n'
LINK=`echo $SOURCES | cut -d' ' -f$MAXS`
SOURCE[$MAXS]=$LINK
done
echo "Package: $BUILD_DIR"
echo "---------------------------------------------"
echo "Slackbuild: $SLACKBUILD $FILE_NAME"
echo "Source: $SOURCE"
echo
N=1
while [ $N -le 50 ]
do
if [ "a${REQU[$N]}" != "a" ] ; then
echo "Require: $SITEBASE${REQU[$N]}"
$0 $SITEBASE${REQU[$N]}
fi
N=$(($N+1))
done
PKG=`ls -1 ./slackbuilds/$BUILD_DIR/$BUILD_DIR-*.tgz 2>/dev/null`
if [ "a$PKG" != "a" ] ; then
echo "Package: $BUILD_DIR exists. Skipping ..."
exit
fi
wget --no-check-certificate -c $SITEBASE$SLACKBUILD -P ./slackbuilds
tar -C ./slackbuilds -xzf ./slackbuilds/$FILE_NAME
# download all sources packages
for (( K=1; K<$MAXS-1; K++ ))
do
wget --no-check-certificate -c ${SOURCE[$K]} -P ./slackbuilds/$BUILD_DIR
done
cd ./slackbuilds/$BUILD_DIR
./$BUILD_DIR.SlackBuild
PKG=`ls -1 /tmp/$BUILD_DIR-*.tgz`
cp $PKG .
upgradepkg --install-new $PKG
Copiare e incollare il testo sopra e salvarlo con il nome:
SBo_get.sh.
Lo script può essere usato dalla posizione in cui si trova con questa sintassi:
(installo xfce theme manager, è necessario essere root))
sh SBo_get.sh https://slackbuilds.org/repository/14.2/desktop/Xfce-Theme-Manager/
Ancora meglio secondo me è copiarlo nella directory /usr/bin/ perchè così l'utilizzo sarà più immediato e l'uso del terminale ridotto al minimo indispensabile. Vediamo come.
Salvato lo script con il nome appropriato, dalla stessa posizione in cui l'abbiamo creato, in un terminale, con i privilegi di root, inseriamo questo comando:
cp SBo_get.sh /usr/bin
adesso gli diamo i permessi di esecuzione con il comando:
chmod +x /usr/bin/SBo_get.sh
Da questo momento il suo utilizzo sarà semplicissimo, vediamo:
Apro un terminale, e divento root:
su -
Adesso sarà sufficiente inserire il comando e aggiungere l'indirizzo del software (copiato da slackbuilds.org). Installerò, questa volta, mousepad che è l'editor di testo di XFCE. Mousepad richiede una dipendenza che a sua volta ne richiede un'altra. Proprio una di quelle situazioni un po' fastidiose...
SBo_get.sh https://slackbuilds.org/repository/14.2/desktop/mousepad/
... E in pochi minuti ho compilato e installato tutto ciò che occorre.
:ciao:
Come da titolo SUN è un'applicazione che controlla la disponibilità degli aggiornamenti per Slackware.
Il suo posto è nella tray:
(http://i.imgur.com/dON54pT.png)
Guarda in basso a destra:
(http://i.imgur.com/MCbh51E.png)
Ecco l'indirizzo di Slackbuilds.org: https://slackbuilds.org/repository/14.2/desktop/sun/
per installarlo, con sbopkg:
sbopkg -i sun
con lo script del post precedente:
SBo_get.sh https://slackbuilds.org/repository/14.2/desktop/sun/
EDIT:
è indispensabile che slackpkg sia configurato.
Capita qualche volta che un pacchetto per Slackware proprio non si riesca a trovare.
La soluzione è molto semplice e generalmente funziona come deve.
Esiste un programmino che ci consente di convertire un pacchetto per Debian in uno per Slackware, il suo nome è:
deb2tgz
Per installarlo dal repo di SlackBuids.org, per chi usa sbopkg, è sufficiente aprire un terminale con i privilegi di root e inserire questo comando:
sbopkg -i deb2tgz
La compilazione e l'installazione del programma dura pochi istanti. Terminato il processo di installazione ci porteremo nella directory che contiene il pacchetto per debian e in un terminale inseriremo il seguente comando:
deb2tgz pacchetto.deb
dove "pacchetto.deb" sarà sostituito dal nome completo del pacchetto da convertire.
In brevissimo tempo avremo ottenuto il nostro pacchetto per Slackware e potremo installarlo e/o rimuoverlo come un comunissimo pacchetto .tgz o .txz.
NOTA IMPORTANTE:
installare un pacchetto che è stato compilato e pacchettizzato per Slackware è sempre di gran lunga preferibile alla conversione di un .deb.
Personalmente preferisco compilare un programma dai sorgenti (per esempio: ./configure-->make-->make install), quando questi sono stati rilasciati dall'autore del software. Faccio ricorso alla conversione di un .deb solo quando, realmente, non ci sono altre alternative: rarissimamente!