dubbio sui tgz
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 Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
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 Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
- danix
- Staff

- Messaggi: 3289
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 6.12.13 x86_64
- Desktop: i3
- Località: Verona (VR)
- Contatta:
dubbio sui tgz
Ciao a tutti, mi è balenato in mente un dubbio sui pacchetti tgz, cambia qualcosa se li creo usando l'utente root o un utente normale??
Se si, che problemi ci possono essere ad usare root per creare i tgz??
Grazie mille
Ciau...
Se si, che problemi ci possono essere ad usare root per creare i tgz??
Grazie mille
Ciau...
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: dubbio sui tgz
Sicuramente ho capito male io. Visto che tutti i file (o quasi tutti) sono di proprietà dell'utente root è evidene che il pacchetto lo deve creare l'utente root, a meno di non creare tutto come utente normale (sino al make install, per intenderci) e poi eseguire un chown prima del makepkg.
Spina
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- danix
- Staff

- Messaggi: 3289
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 6.12.13 x86_64
- Desktop: i3
- Località: Verona (VR)
- Contatta:
Re: dubbio sui tgz
no, hai capito bene... ripensandoci negli slackbuild di solito si cambiano i permessi proprio per rendere tutto di proprietà di root... è che ogni tanto mi vengono questi dubbi e non me li tolgo dalla mente se non li chiarisco... 
Grazie della risposta...
Grazie della risposta...
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: dubbio sui tgz
Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: dubbio sui tgz
Alcuni SlackBuild (che a me non piacciono) prima installano dei file sul'hard disk, ad esempio in /usr e poi compiono il loro lavoro. Non ne ricordo bene uno in particolare, però ne ho visti. Questi SlackBuild evidentemente devono essere eseguiti dall'utente root per funzionare.
Uno di questi slackbuild, ora che ci penso bene, l'ho fatto anche io, ed è quello che serve per compilare Mplayer. Infatti quando compili mplayer lui va a vedere se ci sono codec nella directory /usr/lib/codecs (o un altra a scelta) e poi si linka con quelli (se non sbaglio installando i codec in una dir temporanea non funziona perchè anche dopo cerca proprio quella directory....ma posso sbagliare, lo slackbuild è datato
). Quindi prima devo controllare che esista la directory in questione, e se non esiste estraggo i codec prima di dare il make. Ovviamente solo root può farlo.
Io di solito prima di eseguire uno SlackBuild come root lo eseguo come utente normale, per controllare appunto che non succedano cose strane. Tieni conto che questi tipi di SlackBuild se vengono interrotti, è probabile che lascino traccia sul tuo filesystem.
Spina
Uno di questi slackbuild, ora che ci penso bene, l'ho fatto anche io, ed è quello che serve per compilare Mplayer. Infatti quando compili mplayer lui va a vedere se ci sono codec nella directory /usr/lib/codecs (o un altra a scelta) e poi si linka con quelli (se non sbaglio installando i codec in una dir temporanea non funziona perchè anche dopo cerca proprio quella directory....ma posso sbagliare, lo slackbuild è datato
Io di solito prima di eseguire uno SlackBuild come root lo eseguo come utente normale, per controllare appunto che non succedano cose strane. Tieni conto che questi tipi di SlackBuild se vengono interrotti, è probabile che lascino traccia sul tuo filesystem.
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- sardylan
- Linux 3.x

- Messaggi: 993
- Iscritto il: mar 24 apr 2007, 9:21
- Nome Cognome: Luca Cireddu
- Slackware: current 64bits
- Kernel: 3.16
- Desktop: KDE 4.14
- Distribuzione: Debian - CLFS
- Località: Cagliari
- Contatta:
Re: dubbio sui tgz
Beh... Mi è capitato di avere alcuni SlackBuild che appunto dovevano essere eseguiti per forza da root perché il make install non accettava la variabile DESTDIR...
In tal caso sei costretto ad installare il tutto e poi a copiarti i file manualmente nella dir $PKG per poi lanciare makepkg!!
Ma a parte questi casi particolari, penso che ogni slackbuild possa tranquillamente essere lanciato anche da utente, basta che nel doinst.sh si inseriscano i chmod necessari...
Ma rimango del parere che lanciare tutto da root sia meglio... Tanto faccio lavorare tutto quanto usando
In tal caso sei costretto ad installare il tutto e poi a copiarti i file manualmente nella dir $PKG per poi lanciare makepkg!!
Ma a parte questi casi particolari, penso che ogni slackbuild possa tranquillamente essere lanciato anche da utente, basta che nel doinst.sh si inseriscano i chmod necessari...
Ma rimango del parere che lanciare tutto da root sia meglio... Tanto faccio lavorare tutto quanto usando
Codice: Seleziona tutto
$TMP="/tmp/tgz-build_$PKGNAME"
$PKG="${TMP}/package"- 6C33C
- Packager

- Messaggi: 254
- Iscritto il: gio 12 ott 2006, 16:09
- Nome Cognome: Giorgio
- Slackware: 15.0 x86_64
- Kernel: 5.15.80
- Desktop: kde 5
- Località: Rimini
Re: dubbio sui tgz
Ieri sera stavo cercando qualcosa del genere ( esempi) e santo google alla domandaconraid ha scritto:Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
" how to use fakeroot in slackbuild " mi ha dato questo link:
http://www.slackbuilds.net/wiki/exemple
L' ultima parte riguardante il packaging forse può interessarti .
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: dubbio sui tgz
Grazie, ci do un'occhiata6C33C ha scritto:Ieri sera stavo cercando qualcosa del genere ( esempi) e santo google alla domandaconraid ha scritto:Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
" how to use fakeroot in slackbuild " mi ha dato questo link:
http://www.slackbuilds.net/wiki/exemple
L' ultima parte riguardante il packaging forse può interessarti .
Se non accettano la variabile DESTDIR (o simili) si segue altre strade, come modificare il Makefile con sed, etc...sardylan ha scritto:Beh... Mi è capitato di avere alcuni SlackBuild che appunto dovevano essere eseguiti per forza da root perché il make install non accettava la variabile DESTDIR...
In tal caso sei costretto ad installare il tutto e poi a copiarti i file manualmente nella dir $PKG per poi lanciare makepkg!!
Ma a parte questi casi particolari, penso che ogni slackbuild possa tranquillamente essere lanciato anche da utente, basta che nel doinst.sh si inseriscano i chmod necessari...
Ma rimango del parere che lanciare tutto da root sia meglio... Tanto faccio lavorare tutto quanto usandoCodice: Seleziona tutto
$TMP="/tmp/tgz-build_$PKGNAME" $PKG="${TMP}/package"
Ma lo slackbuild deve fare tutto in automatico, altrimenti non va bene
- sardylan
- Linux 3.x

- Messaggi: 993
- Iscritto il: mar 24 apr 2007, 9:21
- Nome Cognome: Luca Cireddu
- Slackware: current 64bits
- Kernel: 3.16
- Desktop: KDE 4.14
- Distribuzione: Debian - CLFS
- Località: Cagliari
- Contatta:
Re: dubbio sui tgz
Si!! Ovviamente!! Per fare le cose manualmente intendevo che vado a vedere nel Makefile quali file installa con make install, e riporto la procedura nello SlackBuild riga per riga in modo che faccia tutto da solo!!conraid ha scritto: [...] Ma lo slackbuild deve fare tutto in automatico, altrimenti non va bene
Poi ho notato che nel link di 6c33c c'è scritto che alcuni Makefile accettano diversi parametri:
Quindi anche questa potrebbe essere una soluzione..make install DESTDIR=$PKG # Please note that some software use INSTALL_ROOT=$PKG or prefix=$PKG/usr or install_root=$PKG ...
Rimane comunque tutto automatizato!!
- slucky
- Iper Master

- Messaggi: 2420
- Iscritto il: mar 1 mag 2007, 15:30
- Slackware: 15.0
- Desktop: xfce4
- Distribuzione: FreeBSD
Re: dubbio sui tgz
tutto giusto è corretto e per chiudere l'argomento dico, che secondo me, non esistono pacchetti migliori dei tgz, la prova l' ho avuta più volte avendo utilizzato varie distro (rpm, deb), tempo fa ad es. provai kde4, ma nessuna funzionava senza che ci fosse qualche crash... solo con i pacchetti .tgz del buon Pat e il suo team in /testing trovai un sistema già funzionante, stabile e pronto anche per un uso desktop... 
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: dubbio sui tgz
Così funziona come avevo provato io, cioè se ti basta modificare i file ok. Ma "purtroppo" alcuni Makefile cambiano loro stessi i file dei programmi, quindi ricevi errori tipo6C33C ha scritto:Ieri sera stavo cercando qualcosa del genere ( esempi) e santo google alla domandaconraid ha scritto:Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
" how to use fakeroot in slackbuild " mi ha dato questo link:
http://www.slackbuilds.net/wiki/exemple
L' ultima parte riguardante il packaging forse può interessarti .
Codice: Seleziona tutto
install: cannot change ownership of `/tmp/tgz/package-atop/usr/bin/atop': Operation not permitted- 6C33C
- Packager

- Messaggi: 254
- Iscritto il: gio 12 ott 2006, 16:09
- Nome Cognome: Giorgio
- Slackware: 15.0 x86_64
- Kernel: 5.15.80
- Desktop: kde 5
- Località: Rimini
Re: dubbio sui tgz
Sono sempre alla ricerca di esempi per mia curiosità.
Questo è un' altro esempio trovato in rete .
qui si va sul pesante !!!! 
Questo è un' altro esempio trovato in rete .
Codice: Seleziona tutto
#! /bin/sh
#-- libmimedir for Slackware --
# Build script by Martijn Dekker <martijn@inlv.org>
# Suggested usage: $ libmimedir.SlackBuild 2>&1 | tee build.log
#--
# Last edited: 05-Nov-2008
#--
# Copyright 2008 Martijn Dekker <martijn@inlv.org>, Groningen, Netherlands.
# Redistribution and use of this script, with or without modification, is
# permitted provided that this notice is preserved. ANY AND ALL WARRANTY AND
# LIABILITY ARE HEREBY EXPRESSLY DISCLAIMED.
########## Init.
PATH=/bin:/usr/bin
export PATH
umask 022
VERSION=${VERSION:-0.5.1}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-$USER}
BUILDER=${BUILDER:-$USER@$HOSTNAME}
TMP=$(cd ${TMP:-/tmp}; pwd)
PRGNAM=libmimedir
PKGNAM=$PRGNAM-$VERSION-$ARCH-$BUILD$TAG
SLKCFLAGS="-O2"
DATE=$(LC_ALL=C date +%d-%b-%Y)
SRCAR=$PRGNAM-$VERSION.tar.gz
SRCURL=http://downloads.sourceforge.net/$PRGNAM/$SRCAR
PKG=$TMP/package-$PRGNAM
SRC=$TMP/$PRGNAM-$VERSION
DOC=/usr/doc/$PRGNAM-$VERSION
CWD=$(cd $(dirname $0); pwd)
# set appropriate -march and -mcpu/-mtune flags for i*86
GCC_VER=$( ${CC:-gcc} -dumpversion 2> /dev/null ) && case $ARCH in
( i[345]86 ) # use '-mtune' for GCC >= 3.4, '-mcpu' for GCC < 3.4
TUNE='tune'
case $GCC_VER in ( [12].* | 3.[0123].* ) TUNE='cpu' ;; esac
SLKCFLAGS="$SLKCFLAGS -march=$ARCH -m$TUNE=i686"
;;
( i686 )
SLKCFLAGS="$SLKCFLAGS -march=i686"
;;
esac
set -o errexit -o xtrace # exit on error, print executed commands
########## Download, unpack, and compile the source.
cd $CWD
test -r $SRCAR || wget $SRCURL
rm -rf $PKG $SRC
cd $TMP
tar -zxf $CWD/$SRCAR
cd $SRC
./configure \
--cache-file=$TMP/config-$PRGNAM.cache \
--prefix=/usr \
--disable-static \
--build=$ARCH-slackware-linux-gnu \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS"
make all
mkdir -p $PKG/usr/include $PKG/usr/lib
make install prefix=$PKG/usr
# Make doc dir
mkdir -p $PKG$DOC
install -pm644 README ChangeLog COPYING $PKG$DOC/
########## Adjust package tree.
cd $PKG
rm -rf $SRC
mkdir install
cat > install/slack-desc <<EOF
$PRGNAM: MIME directory parser library - $PRGNAM $VERSION
$PRGNAM:
$PRGNAM: RFC 2425 defines a MIME Content-Type for Directory Information.
$PRGNAM: This library contains necessary methods to parse information
$PRGNAM: blocks arranged in such a manner.
$PRGNAM:
$PRGNAM:
$PRGNAM:
$PRGNAM:
$PRGNAM: Homepage: http://libmimedir.sourceforge.net/
$PRGNAM: (Compiled by $BUILDER on $DATE)
EOF
# procreate: include this SlackBuild script in the package, updating
# a few defaults if they were overridden from outside the script
mkdir -p usr/src/slackbuilds/$PRGNAM
sed " /^VERSION=/ s/:-.*}/:-$VERSION}/
/^BUILD=/ s/:-.*}/:-$BUILD}/
/^ARCH=/ s/:-.*}/:-$ARCH}/
" $CWD/$PRGNAM.SlackBuild \
> usr/src/slackbuilds/$PRGNAM/$PRGNAM.SlackBuild
chmod +x usr/src/slackbuilds/$PRGNAM/$PRGNAM.SlackBuild
########## Make the package.
set +o xtrace
MKCMD="set -o errexit -o xtrace ;
cd $PKG ;
chown -R root:root . ;
/sbin/makepkg -l y -c n $TMP/$PKGNAM.tgz ;
rm -rf $PKG"
if test $(whoami) = root; then
eval $MKCMD
set +o xtrace
elif type fakeroot; then
printf '\033[1mEntering fakeroot environment.\033[0m\n'
echo $MKCMD | fakeroot
else
printf '\033[1mPlease enter your root password.\033[0m '
echo '(Consider installing fakeroot.)'
su -c "$MKCMD"
fi
printf '\007\033[1;32mYour package is ready '
printf 'in \033[31m%s/%s.tgz\033[32m.\n' $TMP $PKGNAM
printf '\033[34mBuild script by Martijn Dekker <martijn@inlv.org>. '
printf 'Have fun. \033[33m:)\033[0m\n'
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: dubbio sui tgz
in realtà fa la stessa cosa di quello di prima, posticipa il "chown root:root" facendolo eseguire a fakeroot insieme a makepkg. Il problema è per quei programmi che hanno metodi simili direttamente nel makefile, come quello che ho postato prima. Riceverai un errore, a meno di togliere la riga incriminata dal makefile e fare tutto tu a mano.6C33C ha scritto: qui si va sul pesante !!!!
Cose che si possono fare e che per altre cose in altri programmi si fanno.
Ma lo vedo utile solo se non puoi essere root (una macchina remota per esempio), altrimenti conviene essere root e via. Meno complicazioni.
Per evitare il più possibile gli errori meglio usare "set -e" in modo che lo slackbuild si interrompa al primo errore, e controllare prima di lanciare lo slackbuild la modalità di installazione del programma
- sardylan
- Linux 3.x

- Messaggi: 993
- Iscritto il: mar 24 apr 2007, 9:21
- Nome Cognome: Luca Cireddu
- Slackware: current 64bits
- Kernel: 3.16
- Desktop: KDE 4.14
- Distribuzione: Debian - CLFS
- Località: Cagliari
- Contatta:
Re: dubbio sui tgz
Io ho preso la buona abitudine di corredare praticamente tutti i comandi con un bel || exit 1... Forse non sarà lo stesso del set -e, però fa il suo dovere con praticamente ogni comando utilizzato (dai emplici cd, ai wget, sino ai make)...conraid ha scritto: [...] Per evitare il più possibile gli errori meglio usare "set -e" in modo che lo slackbuild si interrompa al primo errore, e controllare prima di lanciare lo slackbuild la modalità di installazione del programma
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: dubbio sui tgz
Con "set -e" lo trovo più pulito, ma alla fine con "|| exit 1" hai più controllo su cosa controllare (scusate il gioco di parole). Del resto Pat usa molto "|| exit 1" e non "set -e", che invece è usato dal team e dagli script in altre distribuzioni. Quei pochi script di Debian che ho visto iniziano con "#!/bin/sh -e"sardylan ha scritto:Io ho preso la buona abitudine di corredare praticamente tutti i comandi con un bel || exit 1... Forse non sarà lo stesso del set -e, però fa il suo dovere con praticamente ogni comando utilizzato (dai emplici cd, ai wget, sino ai make)...conraid ha scritto: [...] Per evitare il più possibile gli errori meglio usare "set -e" in modo che lo slackbuild si interrompa al primo errore, e controllare prima di lanciare lo slackbuild la modalità di installazione del programma
il problema è evitare che per qualche motivo venga fatto per esempio
Codice: Seleziona tutto
chown root:rootCodice: Seleziona tutto
cd $PRGNAMECon set -e però a volte non fa il pacchetto perché si ferma per un errore banale, come copiare un files che non esiste più in doc
Ma questo mi porta a sapere meglio dove sono gli errori ed a fare script meno "sporchi", poi uno lo può sempre togliere "set -e"