Primi passi con pkgsrc

Da Wiki di NetBSD Italia.

(Differenze fra le revisioni)
m (Bot: Sostituzione automatica (-à. +à ))
(altre correzioni e miglioramenti (sempre dalla serie geek pignoli :-P))
Riga 5: Riga 5:
== Installazione ==
== Installazione ==
-
Appena installato NetBSD siamo sprovvisti del ''framework'' pkgsrc. Dobbiamo quindi installarlo. Per installarlo abbiamo diversi modi, possiamo, ad esempio, scaricare direttamente il tarball via FTP o ottenerlo via CVS. Per la prima volta otteniamo il tarball via FTP perché è senza dubbio il metodo più veloce e semplice.
+
Appena si installa NetBSD siamo sprovvisti del ''framework'' pkgsrc. Dobbiamo quindi installarlo. Per installarlo abbiamo diversi modi, possiamo, ad esempio, scaricare direttamente il tarball via FTP o ottenerlo via CVS. Per la prima volta otteniamo il tarball via FTP perché è senza dubbio il metodo più veloce e semplice.
=== Ottenere il tarball via FTP ===
=== Ottenere il tarball via FTP ===
Riga 12: Riga 12:
  $ ftp ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2007Q3/pkgsrc-2007Q3.tar.gz
  $ ftp ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2007Q3/pkgsrc-2007Q3.tar.gz
-
Ora abbiamo il tarball, dobbiamo quindi estrarlo:
+
=== Estrarre il tarball ===
 +
Ora che abbiamo il tarball, dobbiamo quindi estrarlo:
  $ su
  $ su
Riga 46: Riga 47:
Perfetto, ora pkgsrc risolve tutte le eventuali dipendenze, ottiene dai
Perfetto, ora pkgsrc risolve tutte le eventuali dipendenze, ottiene dai
-
mirror ufficiali di nvi il tarball di nvi (distfile), e gli applica
+
mirror ufficiali di nvi il tarball di nvi (distfile), e applica
eventuali patch. Il funzionamento è quindi semplice, ed anche
eventuali patch. Il funzionamento è quindi semplice, ed anche
l'utilizzo.
l'utilizzo.
Riga 54: Riga 55:
di ogni pacchetto. Uno tra i file più importanti per l'utente che sta
di ogni pacchetto. Uno tra i file più importanti per l'utente che sta
installando un certo pacchetto e non sa che cosa fa quel software è il
installando un certo pacchetto e non sa che cosa fa quel software è il
-
file ''DESCR''. Sul file ''DESCR'' possiamo leggere una breve
+
file ''DESCR''. Questo file permette di ottenere una DESCRizione del
-
descrizione del pacchetto.
+
pacchetto.
  # cd /usr/pkgsrc/editors/nvi
  # cd /usr/pkgsrc/editors/nvi
Riga 66: Riga 67:
=== Ottenere informazione riguardo alla licenza e accettarla o no ===
=== Ottenere informazione riguardo alla licenza e accettarla o no ===
Non tutti i pacchetti sono sotto licenze BSD o GPL. Ci sono software con
Non tutti i pacchetti sono sotto licenze BSD o GPL. Ci sono software con
-
altre licenze di Software Libero e Open Source in pkgsrc. Di norma con
+
altre licenze di [[Software Libero]] o Open Source in pkgsrc. Di norma con
-
le licenze che soddisfano le 4 libertà non avremo problemi. Con licenze
+
le licenze che soddisfano le 4 libertà o licenze approvato dall'OSI non avremo
-
invece che non soddisfano queste 4 libertà del software libero abbiamo
+
problemi. Con licenze invece che non soddisfano queste 4 libertà del software
-
problemi, vediamo subito un esempio pratico, con
+
libero avremo problemi, vediamo subito un esempio pratico, con
''multimedia/win32-codecs'', che è un pacchetto che contiene vari codec
''multimedia/win32-codecs'', che è un pacchetto che contiene vari codec
(non indispensabili) per il video player MPlayer:
(non indispensabili) per il video player MPlayer:
Riga 97: Riga 98:
Mannaggia, la nostra libertà è incerta come questa licenza. Se
Mannaggia, la nostra libertà è incerta come questa licenza. Se
decidessimo di accettare basta editare il file ''/etc/mk.conf''
decidessimo di accettare basta editare il file ''/etc/mk.conf''
-
aggiungendo sull'apposito variabile ''ACCEPTABLE_LICENSES'' la licenza
+
aggiungendo sull'apposita variabile ACCEPTABLE_LICENSES la licenza
che vogliamo accettare con un editor puro:
che vogliamo accettare con un editor puro:
Riga 153: Riga 154:
supporti non abilitati di default che vogliamo.
supporti non abilitati di default che vogliamo.
Senza ricordarlo il file che dovremo editare è ''/etc/mk.conf'', infatti
Senza ricordarlo il file che dovremo editare è ''/etc/mk.conf'', infatti
-
lui contiene tutte le informazioni:
+
esso contiene tutte le informazioni:
  # grep PKG_OPTIONS /etc/mk.conf
  # grep PKG_OPTIONS /etc/mk.conf
Riga 161: Riga 162:
  PKG_OPTIONS.SDL += -arts -esound -nas
  PKG_OPTIONS.SDL += -arts -esound -nas
-
Questo è un esempio della mia NetBSD-box, da come si può osservare per
+
Da questo esempio si può osservare per disabilitare un supporto basta un
-
disabilitare un supporto basta un ''-opzione'' (ad esempio
+
''-opzione'' (ad esempio ''-mplayer-win32''), mentre per abilitarlo basta un
-
''-mplayer-win32'', mentre per abilitarlo basta un semplice ''opzione''
+
semplice ''opzione'' (ad esempio ''w3m-unicode'').
-
(ad esempio ''w3m-unicode'').
+
Da notare è che la sintassi è ''PKG_OPTIONS.pacchetto += opzione0 -opzione1 [...]'',
-
Da notare è che la sintassi è ''PKG_OPTIONS.pacchetto += opzione1 -opzione1 [...]'',
+
va messo il ''+='' perché altrimenti le opzioni di
va messo il ''+='' perché altrimenti le opzioni di
default vengono ignorate e questo nella maggior parte dei casi è
default vengono ignorate e questo nella maggior parte dei casi è
Riga 171: Riga 171:
=== Selezionare opzioni per tutti i pacchetti ===
=== Selezionare opzioni per tutti i pacchetti ===
-
Nell'esempio citato poco fa si può osservare che vi sono diverse
+
Nell'esempio affrontato poco fa si può osservare che vi sono diverse
ripetizioni, tutto ciò potrebbe essere noioso... Per fortuna che c'è
ripetizioni, tutto ciò potrebbe essere noioso... Per fortuna che c'è
PKG_DEFAULT_OPTIONS:
PKG_DEFAULT_OPTIONS:
Riga 188: Riga 188:
=== Rimozione di pacchetti ===
=== Rimozione di pacchetti ===
-
Abbiamo osservato come installare pacchetti, ma ogni tanto abbiamo
+
Abbiamo osservato come installare pacchetti, ora tratteremo la rimozione,
-
bisogno anche di rimuoverli, rimuoverli è semplicissimo, ad esempio per
+
rimuoverli è semplicissimo, ad esempio per rimuovere l'editor nvi installato
-
rimuovere l'editor nvi installato all'inizio:
+
all'inizio:
  # cd /usr/pkgsrc/editors/nvi
  # cd /usr/pkgsrc/editors/nvi
Riga 200: Riga 200:
  # pkg_delete nvi
  # pkg_delete nvi
-
Altra opzione utile di pkg_delete è che è in grado di togliere anche
+
Altra opzione utile di pkg_delete è che è in grado di togliere tutte le
-
dipendenze grazie all'opzione -r, quindi:
+
dipendenze (utilizzate e non) grazie all'opzione -r, quindi:
  # pkg_delete -r nvi
  # pkg_delete -r nvi
 +
 +
Se invece si ha intenzione di rimuovere '''solo''' le dipendenze che rimangono
 +
''orfane'' (cioè che non saranno più utilizzate da altri pacchetti) basta
 +
utilizzare l'opzione -R, ad esempio:
 +
 +
# pkg_delete -R mplayer
Comunque la lettura di
Comunque la lettura di
Riga 223: Riga 229:
[http://www.netbsd.org/docs/pkgsrc/ The pkgsrc guide].
[http://www.netbsd.org/docs/pkgsrc/ The pkgsrc guide].
-
Buon divertimento con pkgsrc.
+
Buon divertimento con pkgsrc! :-)
[[Categoria:Tutorial]]
[[Categoria:Tutorial]]

Versione delle 22:23, 3 mag 2008

In questa guida si illustrerà brevemente come installare pkgsrc. Una volta installato il framework pkgsrc si osserverà inoltre dei semplici utilizzi.

Indice

Introduzione

pkgsrc è il sistema di gestione dei pacchetti su NetBSD. Non ci soffermero a descrivere le potenzialità ed il perché utilizzare pkgsrc per il semplice motivo che tutto ciò si può leggere sulla relativa pagina: pkgsrc.

Installazione

Appena si installa NetBSD siamo sprovvisti del framework pkgsrc. Dobbiamo quindi installarlo. Per installarlo abbiamo diversi modi, possiamo, ad esempio, scaricare direttamente il tarball via FTP o ottenerlo via CVS. Per la prima volta otteniamo il tarball via FTP perché è senza dubbio il metodo più veloce e semplice.

Ottenere il tarball via FTP

Quando siamo sprovvisti di pkgsrc probabilmente il metodo più semplice per ottenerlo è scaricarsi il tarball:

$ ftp ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2007Q3/pkgsrc-2007Q3.tar.gz

Estrarre il tarball

Ora che abbiamo il tarball, dobbiamo quindi estrarlo:

$ su
# cp pkgsrc-2007Q3.tar.gz /usr
# tar xzf pkgsrc-2007Q3.tar.gz

Ottimo, ora possiamo iniziare ad utilizzare pkgsrc.

Utilizzo

Prima di iniziare

Prima di iniziare ad installare i pacchetti da pkgsrc è saggio eseguire download-vulnerability-list(1), se non è disponibile lo potete installare tramite pkgtools/pkg_install (in NetBSD 4.0 non è disponibile):

# cd /usr/pkgsrc/pkgtools/pkg_install
# make install
# download-vulnerability-list
[...]

In questo modo se installeremo software vulnerabile saremo avvertiti.

Installazione di un pacchetto

Installare un pacchetto servendosi di pkgsrc è semplicissimo, ogni software infatti ha un apposita directory e categoria, vediamo un breve esempio di come installare l'editor nvi. L'editor nvi è un editor di testi e molto probabilmente lo troveremo sulla categoria editors/, quindi sapendo che la la nostra PKGSRCDIR sia /usr/pkgsrc:

# cd /usr/pkgsrc/editors/nvi
# make install

Perfetto, ora pkgsrc risolve tutte le eventuali dipendenze, ottiene dai mirror ufficiali di nvi il tarball di nvi (distfile), e applica eventuali patch. Il funzionamento è quindi semplice, ed anche l'utilizzo.

Ottenere una descrizione di un pacchetto

Curiosando però possiamo vedere che ci sono altri file nella directory di ogni pacchetto. Uno tra i file più importanti per l'utente che sta installando un certo pacchetto e non sa che cosa fa quel software è il file DESCR. Questo file permette di ottenere una DESCRizione del pacchetto.

# cd /usr/pkgsrc/editors/nvi
# cat DESCR                                    
Nvi is an implementation of the ex/vi text editor originally distributed
as part of the Fourth Berkeley Software Distribution (4BSD), by the
University of California, Berkeley. The source code to nvi is freely
available, and nvi may be freely redistributed.

Ottenere informazione riguardo alla licenza e accettarla o no

Non tutti i pacchetti sono sotto licenze BSD o GPL. Ci sono software con altre licenze di Software Libero o Open Source in pkgsrc. Di norma con le licenze che soddisfano le 4 libertà o licenze approvato dall'OSI non avremo problemi. Con licenze invece che non soddisfano queste 4 libertà del software libero avremo problemi, vediamo subito un esempio pratico, con multimedia/win32-codecs, che è un pacchetto che contiene vari codec (non indispensabili) per il video player MPlayer:

# cd /usr/pkgsrc/multimedia/win32-codecs
# make install
[...]
ERROR: This package has set PKG_FAIL_REASON:
ERROR: win32-codecs-061022 has an unacceptable license:
mplayer-codec-license.
ERROR:     To view the license, enter "/usr/bin/make show-license".
ERROR:     To indicate acceptance, add this line to /etc/mk.conf:
ERROR:     ACCEPTABLE_LICENSES+=mplayer-codec-license
[...]

Ops, da come si può osservare abbiamo una licenza che non è soddisfatta, pkgsrc inoltre ci dice anche come soddisfare questo tipo di problemi brevemente, risolviamo subito il problema leggendo ed eventualmente accettando la licenza.

# make show-license
[...]
There is no license to copy granted for these codecs, and the
copyright ownership is unclear.
[...]

Mannaggia, la nostra libertà è incerta come questa licenza. Se decidessimo di accettare basta editare il file /etc/mk.conf aggiungendo sull'apposita variabile ACCEPTABLE_LICENSES la licenza che vogliamo accettare con un editor puro:

# vi /etc/mk.conf
[...]
# licenses
ACCEPTABLE_LICENSES += openmotif-license
[...]

Aggiungiamo quindi la licenza dei codec:

[...]
# licenses
ACCEPTABLE_LICENSES += openmotif-license mplayer-codec-license
[...]

Ricordo comunque che MPlayer funziona benissimo anche senza questi codec.

Ottenere una lista delle dipendenze di un pacchetto

Molte volte un pacchetto per essere installato richiede altri pacchetti, che sono appunto delle dipendenze. Queste dipendenze in alcuni casi sono delle librerie, in altri appositi moduli per un linguaggio di programmazione, altre volte è un interprete e così via. Vediamo ora come vedere le dipendenze di un pacchetto prendendo come riferimento MPlayer:

# cd /usr/pkgsrc/multimedia/mplayer
# make show-depends
realplayer-codecs>=8nb2:../../multimedia/realplayer-codecs
mplayer-share>=1.0rc9:../../multimedia/mplayer-share
cdparanoia>=3.0.9.8nb5:../../audio/cdparanoia
libdv>=0.104nb2:../../multimedia/libdv
[...]

Da come si può osservare MPlayer dipende da diversi pacchetti, ma non ci dobbiamo assolutamente preoccupare, pkgsrc risolve qualsiasi tipo di dipendenza.

Selezionare un opzione di compilazione di un pacchetto

Molti pacchetti in pkgsrc hanno diverse opzioni, ad esempio possiamo abilitare o meno il supporto esound su MPlayer, o installare Mplayer con il supporto sdl e così via. Senza approfondire molto vediamo come bisogna agire in questi casi:

# make show-options
Any of the following general options may be selected:
       aalib          Enable aalib support.
       arts           Use the aRts audio daemon.
       cdparanoia     Use cdparanoia to rip CDDA media.
[...]

Ora vogliamo calibrare bene le opzioni di MPlayer in modo tale che per ogni installazione abbiamo soltanto i supporti che vogliamo e altri supporti non abilitati di default che vogliamo. Senza ricordarlo il file che dovremo editare è /etc/mk.conf, infatti esso contiene tutte le informazioni:

# grep PKG_OPTIONS /etc/mk.conf
# PKG_OPTIONS.package
PKG_OPTIONS.mplayer += -mplayer-win32 -arts -dts -esound -nas
PKG_OPTIONS.w3m += w3m-unicode w3m-image-imlib2
PKG_OPTIONS.SDL += -arts -esound -nas

Da questo esempio si può osservare per disabilitare un supporto basta un -opzione (ad esempio -mplayer-win32), mentre per abilitarlo basta un semplice opzione (ad esempio w3m-unicode). Da notare è che la sintassi è PKG_OPTIONS.pacchetto += opzione0 -opzione1 [...], va messo il += perché altrimenti le opzioni di default vengono ignorate e questo nella maggior parte dei casi è fastidioso.

Selezionare opzioni per tutti i pacchetti

Nell'esempio affrontato poco fa si può osservare che vi sono diverse ripetizioni, tutto ciò potrebbe essere noioso... Per fortuna che c'è PKG_DEFAULT_OPTIONS:

[...]
PKG_DEFAULT_OPTIONS += -arts -esound -nas
PKG_OPTIONS.mplayer += -mplayer-win32 -dts
PKG_OPTIONS.w3m += w3m-unicode w3m-image-imlib2
[...]

Da come si può osservare in questo modo abbiamo anche eliminato le opzioni di SDL, infatti combaciano tutte con PKG_DEFAULT_OPTIONS. Se qualche pacchetto (ad esempio nel precedente esempio www/w3m) non ha quelle opzioni (e/o non usa il framework options.mk) quelle opzioni verranno semplicemente ignorate.

Rimozione di pacchetti

Abbiamo osservato come installare pacchetti, ora tratteremo la rimozione, rimuoverli è semplicissimo, ad esempio per rimuovere l'editor nvi installato all'inizio:

# cd /usr/pkgsrc/editors/nvi
# make deinstall

Un altra alternativa che è usabile anche per il software binario (quindi un alternativa universale) è usare pkg_delete:

# pkg_delete nvi

Altra opzione utile di pkg_delete è che è in grado di togliere tutte le dipendenze (utilizzate e non) grazie all'opzione -r, quindi:

# pkg_delete -r nvi

Se invece si ha intenzione di rimuovere solo le dipendenze che rimangono orfane (cioè che non saranno più utilizzate da altri pacchetti) basta utilizzare l'opzione -R, ad esempio:

# pkg_delete -R mplayer

Comunque la lettura di pkg_delete(1) è consigliata.

Ottenere una lista dei pacchetti vulnerabili

Per conoscere tutti i pacchetti vulnerabili nel sistema basta un semplice:

# audit-packages

Per maggiori informazioni vi prego di consultare audit-packages(1).

Conclusioni

In questo semplice how to si è osservato come installare il framework pkgsrc e inoltre dei semplici utilizzi e delle semplici configurazioni. Già con poche installazioni di pacchetti si potrà gustare la potenza, semplicità ed eleganza di pkgsrc. Per ulteriori (e doverosi) approfondimenti si rimanda a The pkgsrc guide.

Buon divertimento con pkgsrc! :-)

Strumenti personali