Repository 32bit  Forum
Repository 64bit  Wiki

Slackware & SlackBuild: differenze tra le versioni

Da Slacky.eu.
m (Uso dello Script:)
m (Uso dello Script:)
 
(Una revisione intermedia di un utente non mostrate)
Riga 54: Riga 54:
Ovviamente la lista è lunga questi sono solo alcuni dei processori x86 più usati, se volete una lista completa vi leggete il man di gcc
Ovviamente la lista è lunga questi sono solo alcuni dei processori x86 più usati, se volete una lista completa vi leggete il man di gcc
http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Optimize-Options.html#Optimize%20Options
+
http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Optimize-Options.html#Optimize%20Options
 
OK ci siamo ora da root eseguite lo sript con # ./*.SlackBuild --cleanup
OK ci siamo ora da root eseguite lo sript con # ./*.SlackBuild --cleanup
sulla vostra console scorreranno tutti i comandi scritti nel file, alla restituzione del prompt vi troverete
sulla vostra console scorreranno tutti i comandi scritti nel file, alla restituzione del prompt vi troverete
Riga 61: Riga 61:
L'opzione --cleanup, se prevista, aiuta l'eliminazione automatica delle directory di lavoro.
L'opzione --cleanup, se prevista, aiuta l'eliminazione automatica delle directory di lavoro.
= Esempio di SlackBuild: =
 
 
Questo è un breve esempio (commentato) di SlackBuild:
 
<pre>
 
#! /bin/bash
 
# definiamo alcune variabili contenenti la directory corrente e quella temporanea di lavoro:
 
CWD=`pwd`
 
if ["$TMP" = ""]; then
 
TMP=/tmp
 
fi
 
PKG=$TMP/package-xine-lib
 
# Settiamo qualche altra variabile per velocizzare il lavoro:
 
NAME=xine-lib
 
VERSION=1.0
 
ARCH=i486
 
BUILD=1
 
if [ ! -d $TMP ]; then
 
mkdir -p $TMP # posizione dove creiamo il sorgente
 
fi
 
if [ ! -d $PKG ]; then
 
mkdir -p $PKG # posizione dove creiamo il package
 
fi
 
echo "+-----------------+"
 
echo "| $NAME-$VERSION|"
 
echo "+-----------------+"
 
cd $TMP
 
# scompattiamo il sorgente
 
tar zxf $CWD/$NAME-$VERSION.tar.gz
 
# ci portiamo all'interno della directory appena scompattata
 
cd $NAME-$VERSION
 
# lanciamo il configure passandogli le opzioni di ottimizzazione di GCC
 
CFLAGS="-march=i486 -mcpu=i686" ./configure --prefix=/usr
 
# compiliamo
 
make
 
# passiamo a make , con il parametro DESTDIR la dir dove creiamo il package
 
make DESTDIR=$PKG install
 
# strippiamo gli eseguibili e le librerie
 
strip $PKG/usr/bin/*
 
strip --strip-unneeded $PKG/usr/lib/*.so
 
strip --strip-unneeded $PKG/usr/lib/xine/plugins/1.0.0/*.so
 
strip --strip-unneeded $PKG/usr/lib/xine/plugins/1.0.0/post/*.so
 
strip --strip-unneeded $PKG/usr/lib/xine/plugins/1.0.0/vidix/*.so
 
# rinominiamo e spostiamo la cartella doc standard, nel caso venga creata in un path non corretto
 
# come /usr/share/doc/xine-1.0
 
mv -f $PKG/usr/share/doc $PKG/usr/
 
mv -f $PKG/usr/doc/xine $PKG/usr/doc/$NAME-$VERSION
 
# copiamo i file con informazioni da conservare della dir doc
 
cp -a \
 
AUTHORS COPYING CREDITS ChangeLog INSTALL NEWS README TODO \
 
$PKG/usr/doc/$NAME-$VERSION
 
# gzippiamo le man pages
 
gzip $PKG/usr/man/man1/*
 
# impostiamo i permessi
 
chown -R root.bin $PKG/usr/bin
 
chown -R root.root $PKG/usr/doc
 
chmod -R 644 $PKG/usr/doc/$NAME-$VERSION/*
 
chown -R root.root $PKG/usr/include
 
chown -R root.root $PKG/usr/man
 
chown -R root.root $PKG/usr/share
 
mkdir -p $PKG/install
 
# copiamo slack-desc in install
 
cat $CWD/slack-desc > $PKG/install/slack-desc
 
cd $PKG
 
# Creiamo il pacchetto con makepkg
 
makepkg -l y -c n $TMP/$NAME-$SLVERSION-$ARCH-$BUILD.tgz
 
# eliminiamo le dir di lavoro qualora avessimo eseguito lo SlackBuild con l'opzione --cleanup
 
if [ "$1" = "--cleanup" ]; then
 
rm -rf $TMP/$NAME-$VERSION
 
rm -rf $PKG
 
fi
 
</pre>
 
= Considerazioni Finali: =
= Considerazioni Finali: =
Riga 139: Riga 68:
Ottimizzare alcune applicazioni e molto altro......
Ottimizzare alcune applicazioni e molto altro......
autore: [[Utente:Loris | Loris ]] 2004
+
autore: [[Utente:Loris | Loris ]] 2012

Versione attuale delle 12:01, 11 apr 2012

[modifica] Introduzione:

Lo SlackBuild è semplicemente uno script contenente una lista di comandi strutturati in modo tale da generare un pacchetto Slackware base, installabile semplicemente con i tool pkgtool, installpkg o upgradepkg.

Lo script lavora sulla base di programmi standard come make, gcc etc etc.

Normalmente viene accompagnato dai sorgenti originali del programma da lavorare da un file chiamato slack-desc, che contiene la descrizione del pacchetto e dal file doinst.sh usato per impartire comandi esterni di modifica o altro a files esterni.

Ricordiamo che la Slackware utilizza i pacchetti .txz che sono dei precompilati achiviati con tar e compressi con xz.

A differenza dell'.rpm o del .dep il .txz non gestisce le dipendenze ma gli utilizzatori della distro dei SubGenius non ci fanno tanto caso.

Questi file li trovate sull'ftp della Slackware nella cartella source, su http://slackbuilds.org, il nostro e diversi altri che in questi ultimi anni hanno capito l'importanza di rendere disponibili questi preziosi script.

Attenzione sull'ftp della Slackware troverete anche i file *.build che a differenza dello *.SlackBuild installa e basta, senza creare il package.

[modifica] Uso dello Script:

L'utilizzo è molto semplice, scaricate i sorgenti (tar.gz tar.bz2 etc) lo *SlackBuild lo slack-desc e l'eventuale doinst.sh in una directory di vostro gradimento, io consiglio di chiamarla con lo stesso nome del programma che state per pacchettizzare, un rapido controllo ai permessi dello script con

# ls -al *SlackBuild e l'eventuale
# chmod 755 *SlackBuild per impostare i giusti permessi di esecuzione dello script.

Ricapitolando nella vostra directory ci sarà lo *.SlackBuild i sorgenti lo slack-desc e l'eventuale doinst.sh.

Ora se decidete di eseguire lo script così come lo trovate utilizzerete le CFLAGS standard.

Nelle versioni precedenti alla 9.1 Volkerding usava -O2 -march-i386 -mcpu-i686, ora usa -O2 -march-i486 -mcpu-i686. Se volete ottimizzare il package dovete modificare questi parametri in base al vostro processore. In particolare i binari generati da una compilazione con l'opzione "-mcpu" producono binari non compatibili con processori x86 inferiori, ovvero processori che non implementano tutte le istruzioni utilizzate dalla CPU dichiarata in "-mcpu" (ad es. MMX, 3dNow, ecc...).

Se non siete sicuri di dove verranno eseguiti i vostri binari, quindi, usate "-march=i486" o "-march=i386".

Alcuni esempi possono essere questi:

  • Celeron (Coppermine) -O2 -march=pentium3 -mcpu=pentium3
  • Celeron (Willamette) -O2 -march=pentium4 -mcpu=pentium4
  • Pentium III -O2 -march=pentium3 -mcpu=pentium3
  • Pentium 4 -O2 -march=pentium4 -mcpu=pentium4
  • Athlon (AMD) -02 -march=athlon -mcpu=athlon
  • Athlon XP (AMD) -02 -march=athlon-xp -mcpu=athlon-xp

Ovviamente la lista è lunga questi sono solo alcuni dei processori x86 più usati, se volete una lista completa vi leggete il man di gcc

http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Optimize-Options.html#Optimize%20Options 

OK ci siamo ora da root eseguite lo sript con # ./*.SlackBuild --cleanup sulla vostra console scorreranno tutti i comandi scritti nel file, alla restituzione del prompt vi troverete il pacchetto pronto nella directory prescelta pronto per l'installazione.

L'opzione --cleanup, se prevista, aiuta l'eliminazione automatica delle directory di lavoro.

[modifica] Considerazioni Finali:

L'uso di questi script è molto utile in caso di ricompilazioni sicure oppure se volete una versione nuova di un pacchetto non ancora disponibile nel ramo current potrete, editando a dovere lo SlackBuild compilare in modo automatico e sicuro i nuovi sorgenti. Ottimizzare alcune applicazioni e molto altro......

autore: Loris 2012

Strumenti personali
Namespace

Varianti