Linux Mind Italia

Supporto hardware e software => Supporto software, installazione e configurazione => Slackware => Topic aperto da: Superciuk - Sabato 11 Novembre 2017, 13:55:20

Titolo: Slackware: la cassetta degli attrezzi.
Inserito da: Superciuk - Sabato 11 Novembre 2017, 13:55:20
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.
Titolo: Script per compilare e installare il software da SlackBuilds.org
Inserito da: Superciuk - Sabato 11 Novembre 2017, 14:42:16
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

Codice: [Seleziona]
#!/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))

Codice: [Seleziona]
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:

Codice: [Seleziona]
cp SBo_get.sh /usr/bin
adesso gli diamo i permessi di esecuzione con il comando:

Codice: [Seleziona]
chmod +x /usr/bin/SBo_get.sh
Da questo momento il suo utilizzo sarà semplicissimo, vediamo:

Apro un terminale, e divento root:
Codice: [Seleziona]
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...

Codice: [Seleziona]
SBo_get.sh https://slackbuilds.org/repository/14.2/desktop/mousepad/
... E in pochi minuti ho compilato e installato tutto ciò che occorre.

 :ciao:
Titolo: SUN: Slackware Update Notifier
Inserito da: Superciuk - Sabato 11 Novembre 2017, 14:54:38
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:
Codice: [Seleziona]
sbopkg -i sun
con lo script del post precedente:

Codice: [Seleziona]
SBo_get.sh https://slackbuilds.org/repository/14.2/desktop/sun/
EDIT:

è indispensabile che slackpkg sia configurato.

Titolo: deb2tgz: convertire un pacchetto per Debian in uno per Slackware-
Inserito da: Superciuk - Martedì 21 Novembre 2017, 21:54:42
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:

Codice: [Seleziona]
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:

Codice: [Seleziona]
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!