Creare pacchetti da normal user e makepkg in generale

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.
Rispondi
Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Creare pacchetti da normal user e makepkg in generale

Messaggio 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

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: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

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: Creare pacchetti da normal user e makepkg in generale

Messaggio da conraid »


Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Creare pacchetti da normal user e makepkg in generale

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

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Creare pacchetti da normal user e makepkg in generale

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

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: Creare pacchetti da normal user e makepkg in generale

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

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: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

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: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

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: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

Avatar utente
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven 7 set 2007, 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

Avatar utente
Calzo
Linux 1.x
Linux 1.x
Messaggi: 112
Iscritto il: sab 6 ott 2007, 22:21
Slackware: 10.2 | 13
Desktop: Fluxbox | KDE
Località: MN

Re: Creare pacchetti da normal user e makepkg in generale

Messaggio 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

Rispondi