dubbio sui tgz

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

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.
Avatar utente
danix
Staff
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

Messaggio da danix »

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...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
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

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
danix
Staff
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

Messaggio da danix »

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... ;)
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
conraid
Staff
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

Messaggio da conraid »

Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene

Avatar utente
targzeta
Iper Master
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

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
sardylan
Linux 3.x
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

Messaggio da sardylan »

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

Codice: Seleziona tutto

$TMP="/tmp/tgz-build_$PKGNAME"
$PKG="${TMP}/package"

Avatar utente
6C33C
Packager
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

Messaggio da 6C33C »

conraid ha scritto:Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
Ieri sera stavo cercando qualcosa del genere ( esempi) e santo google alla domanda
" 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 .

Avatar utente
conraid
Staff
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

Messaggio da conraid »

6C33C ha scritto:
conraid ha scritto:Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
Ieri sera stavo cercando qualcosa del genere ( esempi) e santo google alla domanda
" 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 .
Grazie, ci do un'occhiata
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 usando

Codice: Seleziona tutto

$TMP="/tmp/tgz-build_$PKGNAME"
$PKG="${TMP}/package"
Se non accettano la variabile DESTDIR (o simili) si segue altre strade, come modificare il Makefile con sed, etc...
Ma lo slackbuild deve fare tutto in automatico, altrimenti non va bene

Avatar utente
sardylan
Linux 3.x
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

Messaggio da sardylan »

conraid ha scritto: [...] Ma lo slackbuild deve fare tutto in automatico, altrimenti non va bene
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!!

Poi ho notato che nel link di 6c33c c'è scritto che alcuni Makefile accettano diversi parametri:
make install DESTDIR=$PKG # Please note that some software use INSTALL_ROOT=$PKG or prefix=$PKG/usr or install_root=$PKG ...
Quindi anche questa potrebbe essere una soluzione..
Rimane comunque tutto automatizato!!

Avatar utente
slucky
Iper Master
Iper Master
Messaggi: 2420
Iscritto il: mar 1 mag 2007, 15:30
Slackware: 15.0
Desktop: xfce4
Distribuzione: FreeBSD

Re: dubbio sui tgz

Messaggio da slucky »

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... :D

Avatar utente
conraid
Staff
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

Messaggio da conraid »

6C33C ha scritto:
conraid ha scritto:Io ho provato usando fakeroot in stile Debian, ma, forse per mia incapacità di usarlo, non ha funzionato bene
Ieri sera stavo cercando qualcosa del genere ( esempi) e santo google alla domanda
" 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 .
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 tipo

Codice: Seleziona tutto

install: cannot change ownership of `/tmp/tgz/package-atop/usr/bin/atop': Operation not permitted
Stare a modificare quei Makefile è possibile, ma a questo punto non so quanto conveniente

Avatar utente
6C33C
Packager
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

Messaggio da 6C33C »

Sono sempre alla ricerca di esempi per mia curiosità.
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'
qui si va sul pesante !!!! :D

Avatar utente
conraid
Staff
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

Messaggio da conraid »

6C33C ha scritto: qui si va sul pesante !!!! :D
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.
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

Avatar utente
sardylan
Linux 3.x
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

Messaggio da sardylan »

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

Avatar utente
conraid
Staff
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

Messaggio da conraid »

sardylan ha scritto:
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
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)...
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"

il problema è evitare che per qualche motivo venga fatto per esempio

Codice: Seleziona tutto

chown root:root
dopo un errore di

Codice: Seleziona tutto

cd $PRGNAME
perché magari non è stato decompresso correttamente il file sorgente. Rischi di ritrovarti con permessi sballati in altri parti del filesystem che non volevi. Meglio uscire con errore secondo me

Con 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"

Rispondi