Come faccio ad eseguire uno script di shell?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Come faccio ad eseguire uno script di shell?

Messaggio 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?

beato_angelico256
Linux 3.x
Linux 3.x
Messaggi: 578
Iscritto il: lun 2 mag 2005, 0:00

Messaggio da beato_angelico256 »

#sh nome.sh
ma deve avere l'attributo"eseguibile"

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio da Vlk »

si ce l'aveva. Grazie ora provo.

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Se il file si chiama slackbuild.sh è chiaro che

Codice: Seleziona tutto

$ ./slackbuild
ti dice ``command not found''

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

se si chiama slackbuild.sh devi dare ./slackbuild.sh, .sh compreso. occhio anche a maiuscole e minuscole.

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

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

beato_angelico256
Linux 3.x
Linux 3.x
Messaggi: 578
Iscritto il: lun 2 mag 2005, 0:00

Messaggio 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è :D

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio 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

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio 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

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio 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?

Avatar utente
gallows
Staff
Staff
Messaggi: 3471
Iscritto il: lun 20 set 2004, 0:00
Desktop: cwm
Distribuzione: OpenBSD
Località: ~/
Contatta:

Messaggio da gallows »

Non noto errori, ma comunque prova.. danni non ne fai :)

Vlk
Linux 3.x
Linux 3.x
Messaggi: 671
Iscritto il: mer 9 feb 2005, 0:00

Messaggio da Vlk »

Invece non va. Va be, faccio a mano che è meglio

Rispondi