Pagina 1 di 1

Creare pacchetti da normal user e makepkg in generale

Inviato: mer 16 set 2009, 22:39
da raffaele181188
Attualmente per creare pacchetti tramite makepkg bisogna essere root. Penso che il motivo sia che il tool ripristina i permessi e la proprietà a root:root. Questo è un difetto piuttosto grave :? Si consiglia sempre di fare le cose da normal user e poi, proprio quando si arriva alle cose delicate e potenzialmente distruttive (come lanciare uno SlackBuild) bisogna essere root.. 8)
Premesso che tanto lavoro con una macchina virtuale (ma un errore disastroso mi seccherebbe, non sono bravo con la shell e di sicuro un rm -rf / ci scappa prima o poi :D) esiste un modo per creare pacchetti senza essere root?
Giusto per fare un esempio, ho dato

Codice: Seleziona tutto

makepkg -ly -cy ../gtk-engines-2.16-i486-1rs.txz
e mi ha creato un /.tgz.tgz :doubt:
Preferivo che mi dava un errore... E comunque, se non fossi stato root, questo non poteva succedere

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 11:27
da conraid
intanto per evitare errori disastrosi meglio mettere set -e ad ogni slackbuild, lo so che molti non condividono questa cosa, ma io trovarmi con un chmod root:root in qualche directory sbagliata perché per qualche motivo qualche comando è andato storto non mi piace
per il resto prova fakeroot, una volta lessi in qualche wiki, o forse su LQ, un modo per farlo, ma non lo trovo e non lo ricordo bene

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 11:32
da conraid

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 11:32
da 414N
raffaele181188 ha scritto: Premesso che tanto lavoro con una macchina virtuale (ma un errore disastroso mi seccherebbe, non sono bravo con la shell e di sicuro un rm -rf / ci scappa prima o poi
Puoi anche fartelo scappare, tanto rm ti tira uno "smataflone" :violent1: se ci provi (guarda l'opzione --preserve-root nella man page di rm).

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 11:38
da raffaele181188
Grazie Conraid.. Ora studio un po' :thumbright:
Solo per curiosità, la sintassi NOMEVARIABILE=${NOMEVARIABILE:-Qualsiasi carattere può andare qui o valgono le regole solite dell'espansione?} chi me la spiega? Semplicemente un modo di "quotare" una stringa?

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 11:40
da conraid
raffaele181188 ha scritto:Grazie Conraid.. Ora studio un po' :thumbright:
Solo per curiosità, la sintassi NOMEVARIABILE=${NOMEVARIABILE:-Qualsiasi carattere può andare qui o valgono le regole solite dell'espansione?} chi me la spiega? Semplicemente un modo di "quotare" una stringa?
serve per dare un parametro da linea di comando, per esempio se ho

Codice: Seleziona tutto

ARCH=${ARCH:-i686}
se lancio lo slackbuild normalmente compila per 686, ma senza modificarlo posso fare

Codice: Seleziona tutto

ARCH=x64_64 sh *.SlackBuild 
e mi compila per x86_64

in pratica dice che se non è già dichiarata una variabile con quel nome prende il valore dopo :-

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 11:43
da conraid
mi sa che hai chiesto un'altra cosa
puoi anche mettere

Codice: Seleziona tutto

PIPPO=i686
ARCH=${ARCH=$PIPPO}
per esempio
io uso molto notazioni simili

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 12:20
da raffaele181188
Nono, avevi risposto correttamente alla mia domanda già nel primo post :D
Il secondo invece non mi è chiaro:

Codice: Seleziona tutto

PIPPO=i686
ARCH=${ARCH=$PIPPO}
è semplicemente un altro modo di scrivere

Codice: Seleziona tutto

PIPPO=i686
ARCH=${ARCH:-$PIPPO}
in pratica sostituendo = con :- :?:
Ho fatto uno scriptino per provare e mi sembra che non cambi niente

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: gio 17 set 2009, 12:24
da conraid
raffaele181188 ha scritto:Nono, avevi risposto correttamente alla mia domanda già nel primo post :D
Il secondo invece non mi è chiaro:

Codice: Seleziona tutto

PIPPO=i686
ARCH=${ARCH=$PIPPO}
è semplicemente un altro modo di scrivere

Codice: Seleziona tutto

PIPPO=i686
ARCH=${ARCH:-$PIPPO}
in pratica sostituendo = con :- :?:
Ho fatto uno scriptino per provare e mi sembra che non cambi niente
sì, anche se senza : è un po' diverso, ci sono anche altre forme
http://www.pluto.it/files/ildp/guide/ab ... ution.html

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: lun 21 set 2009, 12:01
da raffaele181188
Ho testato fakeroot e funziona senza creare nessun tipo di problema, seguendo il link che mi hai postato. Il passaggio chiave è questo (lo riporto per chi volesse leggerlo)

Codice: Seleziona tutto

# Root stuffs: Change ownership and make package
mkdir -p $OUTDIR 2> /dev/null
echo "
chown -R root:root $BIN
(
  cd $BIN
  /sbin/makepkg -l y -c n $OUTDIR/$NAME-$VERSION-$ARCH-$BUILD$TAG.$EXT
) " | fakeroot
Ovviamente bisogna avere fakeroot installato. Ora sono al sicuro da catastrofi varie :D

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: lun 21 set 2009, 12:12
da conraid
raffaele181188 ha scritto: Ovviamente bisogna avere fakeroot installato. Ora sono al sicuro da catastrofi varie :D
però non farci i pacchetti per slacky in questo modo, i build di slacky devono essere fatti senza fakeroot

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: lun 21 set 2009, 12:31
da raffaele181188
Ah, ecco, non ho fatto in tempo a leggere la tua risposta che avevo proprio aperto un thread nel forum Pacchettizzatori ;)
Per ora pacchetti non ne ho uppati

Re: Creare pacchetti da normal user e makepkg in generale

Inviato: sab 3 ott 2009, 20:49
da Calzo
raffaele181188 ha scritto:e mi ha creato un /.tgz.tgz :doubt:
Questo errore te lo da perchè le opzioni le devi scrivere staccate:

Codice: Seleziona tutto

makepkg -l y -c y ../gtk-engines-2.16-i486-1rs.txz
bye