Procopio ha scritto:con un comando come questo
Codice: Seleziona tutto
./configure --prefix=/opt/xfce --libdir=/opt/xfce/lib --sysconfdir=/opt/xfce/etc --docdir=/opt/xfce/doc --mandir=/opt/xfce/man --build=$i486-slackware-linux
make
make install DESTDIR=$(pwd)/tmp
non serve ridare il configure e il make. Se i sorgenti sono già stati compilati, basta un
non devo uniformare i percorsi del configure con quelli del make install?
Perchè devi fare una cosa simile? La variabile DESTDIR e il parametro --prefix hanno scopi diversi.
una volta rimossi i pacchetti così individuati posso effettuare l'installazione vera e propria del DE, giusto?
Esatto
vorrei provare a farla con il tuo comando (che potrebbbe diventare direttamente uno script)
Uno script che fa questo tipo di lavoro è lo SlackBuild. Se dai un'occhiata a quelli presenti nel nostro repository, vedrai che è la stessa procedura.
Codice: Seleziona tutto
./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/usr/etc --docdir=/usr/doc --mandir=/usr/man --build=$i486-slackware-linux && make
mkdir -p ./tmp
make install DESTDIR=$(pwd)/tmp
cd temp
chown -R root:root .
makepkg -l y -c n /path/finale/del/pacchetto/nome-versione-arch-buildtag.txz
Tre cose. Se stai usando i percorsi standard, allora:
--sysconfdir=/etc non /usr/etc
--docdir=/usr/doc/xfce-4.8 non /usr/doc
Terzo, $i486? Il simbolo "$" indica una variabile (nello shell scripting unix e altri linguaggi). Il valore da inserire è "i486" (in caso di 32bit).
questo serve a pacchettizzare oltre che a installare il DE giusto?
Esatto
e poi andrebbe seguito dalla creazione di un file xinitrc.xfce4.8 con il comando
da lanciarsi dalla directory /etc/X11/xinit?
Si. In teoria potresti anche usare quello del pacchetto ufficiale incluso in Slack (ovviamente se cambi i path del software, dovrai cambiare anche lo script xinitrc).
ci sono un paio di cose che però non capisco anche qui
:
quel comando crea con le opzioni del ./configure il filesystem del programma che voglio installare, gusto?poi crea una directory nascosta (a che serve per l'installazione?)
Perchè una directory nascosta? mkdir -p ./tmp crea un directory nel path in cui ti trovi. È come dire: mkdir -p tmp
Poi installa nella directory temporanea e qua non capisco: come mai temporanea se vogliamo installare definitivamente anche pacchettizzando? e dopo di che pacchettizza il tutto, giusto?
Perchè quella dir temporanea funge da file system finale in cui i binari vengono installati, rendendo possibile, in questo modo, la creazione del pacchetto.
makepkg altro non è che uno script che fa lo stesso lavoro di un tar cvf. Crea un archivio con ciò che trova all'interno della dir in cui è stato lanciato.
Se tu lo dessi nella dir dei sorgenti, lui creerebbe un pacchetto Slackware contenente i sorgenti.
Ecco perchè è necessario usare un path temporaneo in cui venga installato il programma e venga finalizzato (strip dei binari e compressione delle man, oltre alle modifiche, qualora fossero necessarie, dei percorsi per metterli in linea con la gerarchia di Slackware e stampa delle dipendenze), per poi essere compresso con makepkg.
Ripeto, se dai un occhiata agli SlackBuild ti farai un idea più precisa di come operi makepkg.
Anzi, meglio ancora:
man makepkg
il path del ./configure (/usr) è diverso dalla directory nascosta che crei
In che senso?
Il parametro --prefix=/path che viene passato al configure indica il percorso finale in cui dovrà andare a risiedere tutto il software.
(./tmp, a che serve?)
La dir temporanea ha la funzione di ospitare il software, che verrà installato nel percorso stabilito nel configure. È solo una root fittizia che serve a makepkg. Ripeto, dai un occhiata al man.
ed è diverso da quella del make install
No, in quanto nel make install (come puoi ben vedere) ho inserito la variabile DESTDIR che, appunto, indica la posizione in cui verrà installato il software (nel nostro caso, la dir tmp).