Gestione dei metapacchetti: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
m (+ template "Autori")
Riga 110: Riga 110:


Sarebbe bello ora installare il nostro pacchetto con ''dpkg'', ma dovremmo sapere che non è possibile. Questo perché ''dpkg'' non sa risolvere le dipendenze come ''apt-get''. Dovremmo allora inserire il nostro pacchetto in un repository (esistente o creandolo anche in locale -> [[Creare_un_Repository_Debian]]) oppure forzare le dipendenze all'installazione (opzione <code>--force-depends</code> da aggiungere al classico <code>dpkg -i</code>) e installare le dipendenze manualmente con un manager come ''aptitude''.
Sarebbe bello ora installare il nostro pacchetto con ''dpkg'', ma dovremmo sapere che non è possibile. Questo perché ''dpkg'' non sa risolvere le dipendenze come ''apt-get''. Dovremmo allora inserire il nostro pacchetto in un repository (esistente o creandolo anche in locale -> [[Creare_un_Repository_Debian]]) oppure forzare le dipendenze all'installazione (opzione <code>--force-depends</code> da aggiungere al classico <code>dpkg -i</code>) e installare le dipendenze manualmente con un manager come ''aptitude''.
----
 
[[Utente:Brunitika|Brunitika]] 16:49, 8 apr 2009 (CEST)
{{Autori
----
|Autore=[[Utente:Brunitika|Brunitika]] 16:49, 8 apr 2009 (CEST)
}}
 
[[Categoria:Apt]]
[[Categoria:Apt]]

Versione delle 10:59, 7 ott 2012

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Premessa

Questa guida riguarda il solo processo di creazione dei metapacchetti, la sezione relativa all'utilizzo/gestione è stata accorpata alla guida Introduzione all' Apt System.

Creare un metapacchetto

Come noto i metapacchetti sono molto utili per installare suite di programmi con un solo comando (installando il metapacchetto appunto). Con il pacchetto equivs tutto è molto semplice; incominceremo con l'installarlo:

# aptitude install equivs

A questo punto lanceremo il comando:

$ equivs-control controller

il quale creerà un file controller per il nostro metapacchetto (il nome è arbitrario, potete scegliere quello che volete). Il suo aspetto è il seguente (dopo averlo aperto in un editor qualsiasi):

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: <package name; defaults to equivs-dummy>
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: <short description; defaults to some wise words> 
 long description and info
 .
 second paragraph

Andremo poi ad inserire i campi illustrati dopo aver decommentato le righe che vogliamo definire. Il campo più importante è sicuramente Depends, che ha il ruolo fondamentale del metapacchetto, senza dimenticarci di dare il nome al metapacchetto. Gli altri campi sono più o meno facoltativi (inserire la versione, il mantenitore e una piccola descrizione sarebbe comunque auspicato).

Infine daremo il comando:

$ equivs-build controller

che creerà il metapacchetto .deb che potremo poi installare come qualsiasi pacchetto

Esempio pratico

Prendiamo ad esempio questa guida: Installare_e_configurare_i_codec_per_DVD_e_Mp3. Sarebbe ora interessante creare un metapacchetto che installi i pacchetti necessari con un solo comando. Iniziamo dunque a creare un controller:

$ equivs-control controller

Editiamo poi il file controller nel modo seguente (sulla base della guida citata):

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: codec-dvd-mp3
Version: 0.1
Maintainer: Debianizzati <info@debianizzati.org>
# Pre-Depends: <comma-separated list of packages>
Depends: libfaad2-0,libmp4-0,libfaac0,alsamixergui,toolame,lame,libmp3lame0,libdvdnav4,libdvdread3,libdvdcss2,w32codecs,ffmpeg
Recommends: debian-multimedia-keyring
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: installa codec per DVD e mp3
Questo metapacchetto installa le librerie per la riproduzione di DVD e mp3. 
Ricordiamo di aggiungere i repository debian-multimedia (deb http://www.debian-multimedia.org lenny main) all'interno del proprio /etc/apt/sources.list

Creiamo il pacchetto debian:

$ equivs-build controller

Se tutto sarà andato a buon fine (occhio alla sintassi!) otterremo il pacchetto codec-dvd-mp3_0.1_all.deb nella directory da dove abbiamo lanciato i comandi. Per dare un'ennesima verifica al pacchetto, daremo il comando:

$ dpkg --info codec-dvd-mp3_0.1_all.deb

ottenendo il seguente output:

Package: codec-dvd-mp3
Version: 0.1
Architecture: all
Maintainer: Debianizzati <info@debianizzati.org>
Installed-Size: 36
Depends: libfaad2-0, libmp4-0, libfaac0, alsamixergui, toolame, lame, libmp3lame0, libdvdnav4, libdvdread3, libdvdcss2, w32codecs, ffmpeg
Recommends: debian-multimedia-keyring
Section: misc
Priority: optional
Description: installa codec per DVD e mp3
Questo metapacchetto installa le librerie per la riproduzione di DVD e mp3. 
Ricordiamo di aggiungere i repository debian-multimedia (deb  http://www.debian-multimedia.org lenny main) all'interno del proprio /etc/apt/sources.list

Sarebbe bello ora installare il nostro pacchetto con dpkg, ma dovremmo sapere che non è possibile. Questo perché dpkg non sa risolvere le dipendenze come apt-get. Dovremmo allora inserire il nostro pacchetto in un repository (esistente o creandolo anche in locale -> Creare_un_Repository_Debian) oppure forzare le dipendenze all'installazione (opzione --force-depends da aggiungere al classico dpkg -i) e installare le dipendenze manualmente con un manager come aptitude.




Guida scritta da: Brunitika 16:49, 8 apr 2009 (CEST) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized