Slackware Packages
|
Guida rapida alla
creazione di pacchetti su Slackware Linux
|
Guida
alla creazione di pacchetti .tgz su Slackware 9.0
by #velenux
Copyright
Copyright (c) 2003 Simone Bianchini
~ http://web.tiscali.it/gnu.linux.
È garantito il permesso di copiare, distribuire e/o modificare
questo documento secondo i termini della GNU GPL versione 2. Una copia della licenza è disponibile presso
http://www.gnu.org. Questa guida è una documentazione
gratuita, fornita così com'è, senza alcuna garanzia, nè
implicita, nè esplicita di adeguatezza ad un uso
particolare o di commerciabilità. L'autore non
si assume alcuna responsbilità per eventuali danni provocati
da quanto contenuto. Per garantire una
uniformità di questo documento, l'autore preferisce essere
avvertito prima che vengano fatte delle modifiche, al solo scopo di
tenere una unica versione dell'opera. Pertanto
chi vuole inserire delle modifiche e/o aggiungere
anche solo parte del testo è pregato di contattare l'autore il quale si riserva la facoltà di giudizio.
FIX ME!!
Changelog
24-09-2003: prima stesura del documento. La
documentazione fà riferimento ai programmi compilabili tramite
./configure make && make install. La versione di Slackware
usata è la 9.0 ma la procedura è valida anche con versioni precedenti.
About
Questo documento è stato scritto con Vim 6.1.385. Potete trovare
aggiornamenti ufficiali presso: The Slack-it
Linux Project http://web.tiscali.it/gnu.linux
Introduzione
Chi utilizza Slackware generalmente compila il software a partire dai
sorgenti, per avere ottimizzazioni per la propria architettura e/o
configurazioni personalizzate. Tuttavia può risultare molto utile
utilizzare i pacchetti in formato .tgz propri di Slackware per una più
immediata disponibilità dei software (senza dover affrontare la
compilazione...operazione non sempre velocissima), oppure per
realizzare backup dei propri applicativi facilmente "reinstallabili". A
differenza degli altri formati di pacchettizzazione come .deb e .rpm, i
pacchetti di slackware sono decisamente più semplici da preparare...e
del resto le funzioni che svolgono sono decisamente più elementari:
infatti non è previsto un controllo sulle dipendenze. Se si scompatta
un pacchetto Slackware, che non è altro che un semplice archivio
gzippato, si può notare come all'interno contenga le stesse directory
nelle quali verranno installati i file. Il comando installpkg (di cui
parleremo poi) non fa altro che copiare ciò che trova nel .tgz nel
corrispettivo path del sistema.
Prima di iniziare
Entrate nella / di sistema e create una directory di lavoro temporanea
che qui chiameremo pkg-slack ma che potete chiamare come volete:
$ su
******
# cd /
# mkdir -p /pkg-slack
Ora si aprono due alternative: poichè la maggior parte dei programmi
vengono installati in /usr o in /usr/local, è necessario creare
all'interno della directory di lavoro l'appropriata gerarchia con tutte
le ordinarie sottodirectory:
A)
# mkdir -p
/pkg-slack/usr/local
# mkdir
/pkg-slack/usr/local/bin
# " " " " /etc
# " " " " /include
# " " " " /lib
# " " " " /man
# " " " " /share
oppure:
B)
# mkdir -p /pkg-slack/usr
# mkdir /pkg-slack/usr/bin
# " " " /etc
# " " " /include
# " " " /lib
# " " " /man
# " " " /share
ATTENZIONE: Leggete sempre i file
INSTALL e README per capire i vari path in cui viene installato il
software. Ad esempio molte applicazioni per kde usano /opt e tutta la
sottogerarchia per l'installazione di eseguibili, librerie, header, man
pages etc.. Eventualmente in / creerete questa directory
/pkg-slack/opt/...... ( a seconda del makefile). Leggete sempre install
e readme......non dite che nessuno ve lo aveva detto!!! :-)
Compilazione dei sorgenti
Ora entrate nella directory dove avete posto l'archivio con i sorgenti
e compilateli con le opportune modifiche. Utilizzerò come caso
l'archivio dei sorgenti di gqview:
$ cd
....../gqview-1.3.2.tgz
$ tar xzvf
gqview-1.3.2.tgz
$ cd gqview-1.3.2
Ora dovete lanciare il ./configure con l'opportuna indicazione del path
che sarà in base alle vostre scelte /usr oppure /usr/local:
$ ./configure
--prefix=/usr
oppure:
$ ./configure
--prefix=/usr/local
Lanciate un bel make:
$ make
E ora un make install con indicazione del path scelto all'inizio:
# make install
prefix=/pkg-slack/usr
oppure:
# make install
prefix=/pkg-slack/usr/local
(o eventualmente /pkg-slack/opt....)
Creazione del pacchetto
Entrate nella directory di lavoro e create il pacchetto con makepkg:
$ cd /pkg-slack
$ su
******
# makepkg
gqview-1.3.2-i686-1.tgz
secondo questa notazione:
nomeprogramma-versione-architettura-numerobuild.tgz
>Searching for symbolic links:
>No symbolic links were found, so we won't make an installation
script.
>You can make your own later in ./install/doinst.sh and rebuild the
>package if you like.
In caso ci fossero dei collegamenti simbolici, il programma "makepkg" vi
propone di rimuoverli, essi verranno rigenerati tramite uno script
creato
automaticamente da makepkg.
>This next step is optional - you can set the directories in your
package
>to some sane permissions. If any of the directories in your package
have
>special permissions, then DO NOT reset them here!
>Would you like to reset all directory permissions to 755
(drwxr-xr-x) and
>directory ownerships to root.root ([y]es, [n]o)? y
Come si legge dal messaggio sopra, questo passaggio è opzionale, ovvero
vi viene
chiesto se volete impostare i permessi dei file all'utente root.
Generalmente è
consigliabile farlo tranne in presenza di applicazioni particolari che
richiedono i permessi di utenti diversi da root.
Complimenti. Il vostro pacchetto Slackware è stato creato. Non vi resta
che copiarlo dove volete e installarlo come amministratore con
installpkg nomepacchetto.tgz. Per rimuoverlo removepkg nomepacchetto.tgz
Aggiungere una descrizione al
pacchetto
Se siete delle persone meticolose o avete intenzione di distribuire il
vostro
pacchetto ad altri utenti in rete, una buona idea è quella di
aggiungere una
descrizione del pacchetto, avrete notato che i pacchetti ufficiali di
Slackware
ne sono provvisti. Nulla di più facile, all'interno della directory
"install/"
(che se non avete creato prima, dovrete farlo ora), basterà creare il
file
"slack-desc" rispettando questo piccolo schema (chiamato "handy ruler"):
# commento non considerato
|-----handy-ruler-------------------------------------------|
nomeprogramma: bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla
nomeprogramma: bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla
nomeprogramma: bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla
nomeprogramma:
nomeprogramma:
nomeprogramma:
nomeprogramma:
nomeprogramma:
nomeprogramma:
nomeprogramma:
nomeprogramma:
Quello rappresentato sopra è un tipico schema di descrizione di un
pacchetto
slackware. I caratteri "|" delimitano la lunghezza del commento, notate
che il
primo deve essere posizionato sopra il carattere ":" sottostante. Ciò
permette
di formattare meglio il testo entro e non oltre il limite. E' buona
norma,
inoltre, lasciare uno spazio dal ":".
NOTA IMPORTANTE: le linee di descrizione DEVONO essere al
massimo 11 per una
corretta formattazione del testo! Inoltre a sinistra
nella sezione "nomeprogramma" inserite il nome del programma senza
numeri di versione o altro aggiunto (es. se avete creato il pacchetto
con makepkg nomeprogramma-1.x.x-i686-1.tgz andrà messo nomeprogramma):
vi sembrerà una cavolata ma vi assicuro che ho passato parecchio tempo
a combattere con descrizioni che non venivano visualizzate
correttamente! OK?
Nella sezione downloads troverete una
discreta quantità di pacchetti .tgz creati da me (con descrizioni in
italiano....per i più niubbi)!!!!
Happy Slacking :-P
by #velenux