Slackware: la cassetta degli attrezzi.

Aperto da Superciuk, Sabato 11 Novembre 2017, 13:55:20

Discussione precedente - Discussione successiva

Superciuk

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.

Superciuk

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. 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:

Superciuk

#2
Come da titolo SUN è un'applicazione che controlla la disponibilità degli aggiornamenti per Slackware.

Il suo posto è nella tray:



Guarda in basso a destra:


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.


Superciuk

#3
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!