Seguite queste istruzioni a vostro rischio e pericolo, non assicuro che non possano creare qualche dipendenza rotta.
In
APT (il sistema che gestisce i pacchetti di Debian, Ubuntu e compagnia) i
metapacchetti (o
dummy packages, pacchetti silenziosi) sono dei pacchetti che non forniscono un vero e proprio software ma che permettono di installare come dipendenze altri programmi. È, per esempio, un metapacchetto
ubuntu-desktop
: in sé non installa nessun programma, ma fa installare come dipendenze tutti i programmi presenti di default nella versione desktop di Ubuntu.
È possibile creare (in Debian e Ubuntu) dei metapacchetti con il programma
equivs
. Si installa normalmente da repository. Come al solito si può scegliere la via grafica installando con Synaptic il pacchetto
equivs
, oppure da terminale con il comando
sudo apt-get install equivs
equivs
, che funziona da terminale, fornisce due comandi:
equivs-control
ed
equivs-build
. Il primo genera il file di configurazione del metapacchetto che si vorrà creare:
equivs-control nomepacchetto
creerà un file chiamato
nomepacchetto
(ovviamente sostituirete a
nomepacchetto
il nome del metapacchetto che vi interessa creare). Il file deve essere modificato con un qualsiasi editor di testo affinché contenga le impostazioni desiderate. Le opzioni che devono essere necessariamente presenti sono
Package
,
Description
e
Depends
. Ricordarsi di rimuovere il cancelletto (
decommentare) davanti a tutte le opzioni modificate.
Con
equivs-build nomepacchetto
(
nomepacchetto
deve essere il nome del file creato con il comando precedente) si costruisce nella stesa cartella il pacchetto deb sulla base delle informazioni contenute nel file appena impostato che potrà essere installato facendoci doppio clic sopra oppure ancora da terminale con il comando
sudo dpkg -i nomepacchetto.deb
(il nome però non sarà semplicemente
nomepacchetto.deb
ma conterrà il numero della versione e l'architettura impostate, usate l'autocompletamento con il tasto TAB per sapere qual è il nome, oppure semplicemente controllatelo aprendo la cartella).
Un dei possibili usi dei metapacchetti è quello di poter installare con un solo doppio clic numerosi programmi (inserendoli come dipendenze del metapacchetto creato), oppure far credere al sistema APT che sia installato un determinato programma quando lo si è installato in maniera diversa (per esempio attraverso la compilazione del codice sorgente).
In questi giorni ho installato la distribuzione TeX Live 2010 dal
sito e voglio che APT veda tutti i pacchetti relativi a TeX Live siano installati (perché la distribuzione è installata all'esterno del gestore pacchetti APT, ma lui non è a conoscenza di ciò ovviamente), in modo da poter installare altri programmi dipendenti da questi pacchetti. Per fare ciò ho creato il file
texlive
con il seguente contenuto:
Section: tex
Package: texlive-dummy
Version: 2011
Homepage: http://tug.org/texlive/
Standards-Version: 3.9.2
Provides: asymptote, asymptote-doc, biblatex, biblatex-dw, cm-super, context, dblatex, dvipdfmx, dvipng, feynmf, fragmaster, guile-1.8, jadetex, lacheck, latex2html, latex-beamer, latex-cjk-all, latexmk, latex-xcolor, lcdf-typetools, libsigsegv0, lilypond, lilypond-data, lilypond-doc, lmodern, luatex, passivetex, pgf, preview-latex-style, prosper, ps2eps, psutils, t1utils, tex4ht, tex4ht-common, tex-common, texlive, texlive-base, texlive-base-bin, texlive-base-bin-doc, texlive-bibtex-extra, texlive-binaries, texlive-common, texlive-doc-base, texlive-doc-bg, texlive-doc-cs+sk, texlive-doc-de, texlive-doc-en, texlive-doc-es, texlive-doc-fi, texlive-doc-fr, texlive-doc-it, texlive-doc-ja, texlive-doc-ko, texlive-doc-mn, texlive-doc-nl, texlive-doc-pl, texlive-doc-pt, texlive-doc-ru, texlive-doc-si, texlive-doc-th, texlive-doc-tr, texlive-doc-uk, texlive-doc-vi, texlive-doc-zh, texlive-extra-utils, texlive-fonts-extra, texlive-fonts-extra-doc, texlive-fonts-recommended, texlive-fonts-recommended-doc, texlive-font-utils, texlive-formats-extra, texlive-games, texlive-generic-extra, texlive-generic-recommended, texlive-humanities, texlive-humanities-doc, texlive-lang-african, texlive-lang-arabic, texlive-lang-armenian, texlive-lang-croatian, texlive-lang-cyrillic, texlive-lang-czechslovak, texlive-lang-danish, texlive-lang-dutch, texlive-lang-finnish, texlive-lang-french, texlive-lang-german, texlive-lang-greek, texlive-lang-hebrew, texlive-lang-hungarian, texlive-lang-indic, texlive-lang-italian, texlive-lang-latin, texlive-lang-latvian, texlive-lang-lithuanian, texlive-lang-mongolian, texlive-lang-norwegian, texlive-lang-other, texlive-lang-polish, texlive-lang-portuguese, texlive-lang-spanish, texlive-lang-swedish, texlive-lang-tibetan, texlive-lang-ukenglish, texlive-lang-vietnamese, texlive-latex3, texlive-latex-base, texlive-latex-base-doc, texlive-latex-extra, texlive-latex-extra-doc, texlive-latex-recommended, texlive-latex-recommended-doc, texlive-luatex, texlive-math-extra, texlive-metapost, texlive-metapost-doc, texlive-music, texlive-omega, texlive-pictures, texlive-pictures-doc, texlive-plain-extra, texlive-pstricks, texlive-pstricks-doc, texlive-publishers, texlive-publishers-doc, texlive-science, texlive-science-doc, texlive-xetex, tipa, xmltex
Architecture: all
Description: texlive dummy package
Quelli elencati in
Provides
sono i pacchetti della distribuzione TeX Live che ho trovato o che comunque avevo bisogno di far finta che fossero installati, ne esistono molti altri non presenti in questo elenco. Con il comando
equivs-build texlive
ho generato il pacchetto deb che ho potuto installare con un doppio clic.
Come suggerito nella documentazione (in particolare nel manuale di
equivs-build
), se riscontrate qualche caso in cui il sistema delle dipendenze dei pacchetti dovrebbe essere migliorato, non usate
equivs
ma piuttosto segnalate agli sviluppatori il problema.
Qui trovate altre informazioni sulla gestione dei metapacchetti:
http://guide.debianizzati.org/index.php/Gestione_dei_metapacchetti.