Pagina 1 di 1
Come faccio ad eseguire uno script di shell?
Inviato: mar 4 ott 2005, 19:27
da Vlk
Ho creato uno slackbuild.sh per il pacchetto di emacs e l'ho messo assieme ai sorgenti e allo slack-desc in un'unica directory. Se da root do ./slackbuild non va "file non found". Come faccio quindi?
Inviato: mar 4 ott 2005, 19:35
da beato_angelico256
#sh nome.sh
ma deve avere l'attributo"eseguibile"
Inviato: mar 4 ott 2005, 19:39
da Vlk
si ce l'aveva. Grazie ora provo.
Inviato: mar 4 ott 2005, 19:53
da MAT
Se il file si chiama slackbuild.sh è chiaro che
ti dice ``command not found''
Inviato: mar 4 ott 2005, 19:54
da useless
se si chiama slackbuild.sh devi dare ./slackbuild.sh, .sh compreso. occhio anche a maiuscole e minuscole.
Inviato: mar 4 ott 2005, 19:58
da gallows
beato_angelico256 ha scritto:#sh nome.sh
ma deve avere l'attributo"eseguibile"
Se lo lanci con sh non serve che sia eseguibile.
Inviato: mar 4 ott 2005, 20:01
da beato_angelico256
gallows ha scritto:beato_angelico256 ha scritto:#sh nome.sh
ma deve avere l'attributo"eseguibile"
Se lo lanci con sh non serve che sia eseguibile.
touchè

Inviato: mar 4 ott 2005, 20:13
da Vlk
Grazie a tutti. Mi controllate anche lo slackbuild? Si tratta di emacs-21-4a
Praticamente ho preso lo slackbuild di mauro e ho solo cambiato i dati...sapendo che il pacchetto lo voglio scompattare in /tmp/pkg
Codice: Seleziona tutto
#! /bin/bash
# definiamo alcune variabili contenenti la directory corrente e quella temporanea di lavoro:
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp/pkg
fi
PKG=$TMP/package-emacs-21.4a
# Settiamo qualche altra variabile per velocizzare il lavoro:
NAME=emacs
VERSION=21.4a
ARCH=athlonxp
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 jxvf $CWD/$NAME-$VERSION.tar.bz2
# ci portiamo all'interno della directory appena scompattata
cd $NAME-$VERSION
# lanciamo il configure passandogli le opzioni di ottimizzazione di GCC
CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -march=i486 -mcpu=i686 -mmmx -msse -m3dnow -pipe -fomit-frame-pointer -mfpmath=sse" CXXFLAGS="$CFLAGS" ./configure --prefix=/usr --sysconfidir /etc/ --libstatedir=/var/ --with-jpeg --with-tiff --with-png --with-x
# 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 directory 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
Inviato: mar 4 ott 2005, 20:19
da gallows
Per athlonxp devi dare -march=athlon-xp -mcpu invece puoi tralasciarlo.
La variabile BUILD cambiala in 1vlk.
EDIT: --with-jpeg --with-tiff --with-png <- queste sono flag per emacs? O_o
Inviato: mar 4 ott 2005, 20:24
da Vlk
Sì, ma quello che volevo capire è: è uno script funzionante? Se metto il sorgente di emacs, lo slack-desc e la mia slack-build in /tmp/pkg, mi esce fuori il tgz?
Inviato: mar 4 ott 2005, 20:31
da gallows
Non noto errori, ma comunque prova.. danni non ne fai

Inviato: mar 4 ott 2005, 20:42
da Vlk
Invece non va. Va be, faccio a mano che è meglio