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 comandosudo 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 nomepacchettocreerà 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 comandosudo 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 packageQuelli 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 comandoequivs-build texliveho 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.
Ciao, ho seguito la tua guida proprio per l'installazione di TeXLive 2011. Mentre scarico il file .iso avrei una domanda: è normale che nel gestore dei pacchetti quei pacchetti presenti del pacchetto dummy non sono visti come installati?
RispondiEliminaGrazie mille
Sì, è normale: l'unico pacchetto realmente installato è "texlive-dummy" che fornisce ("provides" in inglese) anche tutti gli altri pacchetti elencati nel campo "Provides" del file di configurazione, ma quelli non sono installati. Il metapacchetto è utile perché fa credere al gestore pacchetti che tutti i vari pacchetti (scusa le ripetizioni) relativi a TeX Live siano installati senza questi lo siano realmente!
RispondiEliminaCiao