Equivs per Texlive 2010

Info.png Installare pacchetti dipendenti da Texlive 2009 su una Debian Box con Texlive 2010 Vanilla

Introduzione a Equivs

Equivs è uno strumento di Debian Linux per creare metapacchetti, ovvero per incorporare localmente dei pacchetti fittizi nel sistema di gestione, anche se vi si possono inserire pacchetti effettivamente già presenti nel sistema.

In genere, i metapacchetti creati con equivs si limitano di conseguenza unicamente a dichiarare dipendenze da e conflitti con altri pacchetti e vengono usati per risolvere le dipendenze di pacchetti che si stanno compilando o per "avvertire" dei pacchetti da installare che le le loro dipendenze sono già installate e pertanto soddisfatte nel sistema.

Nel creare tali metapacchetti, si dovrà prestare in ogni caso attenzione alle caratteristiche standard dei pacchetti Debian almeno relativamente alle voci Depends e Provides(che si possono vedere mediante apt-rdepends oppure in rete a http://packages.debian.org).

Texlive 2010 e le dipendenze

I più smaliziati utenti di LaTeX sanno che nella Texlive 2009 inclusa in Debian diversi pacchetti sono obsoleti, e che la tempistica degli aggiornamenti è in genere molto lenta. Inoltre, i pacchettizzatori Debian hanno escluso il gestore interno di Texlive, ossia tlmgr, ritenendolo pericoloso per la sicurezza del sistema; questo impedisce gli aggiornamenti automatici dal sito del CTAN (o dai suoi mirror). Infine, alcuni comandi specifici di Texlive (come updmap-sys) sono poi stati "debianizzati", ed esistono pertanto dei comandi di controllo e di aggiornamento diversi rispetto a quelli standard di Texlive.

Una volta installata Texlive 2010 (il che non è oggetto della presente mini-guida), Debian richiede comunque di soddisfare una ampia serie di dipendenza per l'instalazione di pacchetti come Kile, KBibTeX, AucTeX, Vim-LaTeX e Muttprint. L'obiettivo è evitare di installare in aggiunta a Texlive 2010 anche Texlive 2009, che è enorme (anche se in teoria installandosi in una directory del tutto diversa da Texlive 2010 le due installazioni potrebbero anche convivere). Ecco allora l'utilità di equivs. Come abbiamo visto, esso crea un pacchetto "vuoto", senza i programmi in questione, contenente però le informazioni su di essi, cosicché i pacchetti che richiedono quegli altri come dipendenze sono "ingannati" credendo che siano presenti nel sistema.

Equivs per Texlive 2010

La procedura per produrre un metapacchetto per Texlive 2009 è molto semplice. Essa viene qui descrita nel caso specifico, mentre poi ciascuno potrà eventualmente adeguarla alle sue necessità per altri pacchetti.

Riferiamo ora i vari passaggi da compiere.

1.

Installare (ovviamente da root) ) il pacchetto equivs con il comando:

# aptitude install equivs

2.

Creare (da semplice utente) un file di configurazione standard (o "di controllo") di estensione .ctl con il comando:

$ equivs-control

specificando in aggiunta il nome dei file.

Qui si propone di creare texlive-dummy.ctl con il comando:

$ equivs-control texlive-dummy.ctl

In questo file vuoto ci sono tutti i campi che andranno poi riempiti:

    ### Commented entries have reasonable defaults.
    ### Uncomment to edit them.
    Section: misc
    Priority: optional
    # Homepage: <enter URL here; no default>
    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>
    # Files: <pair of space-separated paths; First is file to include, second is destination>
    #  <more pairs, if there's more than one file to include. Notice the starting space>
    Description: <short description; defaults to some wise words>
    long description and info
    .
    second paragraph

3.

A questo punto, identificare i campi da riempire e, soprattutto, i file "falsi" da installare e quindi compilare, sempre da semplice utente, il file. Nel nostro caso risulta:

    ### Commented entries have reasonable defaults.
    ### Uncomment to edit them.
    Section: tex
    Priority: optional
    Homepage: http://packages.debian.org/testing/tex
    Standards-Version: 3.6.2

    Package: texlive-dummy
    Version: 1.0
    Maintainer: Nome Cognome <indirizzo mail>
    # 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: cm-super, cm-super-minimal, context, latex-beamer,
    latex-cjk-all, latex-cjk-chinese, latex-cjk-chinese-arphic-bkai00mp,
    latex-cjk-chinese-arphic-bsmi00lp, latex-cjk-chinese-arphic-gbsn00lp,
    latex-cjk-chinese-arphic-gkai00mp, latex-cjk-common, latex-cjk-japanese,
    latex-cjk-japanese-wadalab, latex-cjk-korean, latex-cjk-thai,
    latex-sanskrit, latex-xcolor, lmodern, luatex, musixtex, pgf, prosper,
    tex4ht, tex4ht-common, texinfo, texlive-base, texlive-base-bin,
    texlive-base-bin-doc, texlive-bibtex-extra, texlive-common,
    texlive-doc-base, texlive-doc-bg, texlive-doc-cs+sk, texlive-doc-de,
    texlive-doc-el, 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-th, texlive-doc-tr, texlive-doc-uk,
    texlive-doc-vi, texlive-doc-zh, texlive-extra-utils, texlive-font-utils,
    texlive-fonts-extra, texlive-fonts-extra-doc, texlive-fonts-recommended,
    texlive-fonts-recommended-doc, texlive-formats-extra, texlive-full,
    texlive-games, texlive-generic-extra, texlive-generic-recommended,
    texlive-humanities, texlive-humanities-doc, texlive-lang-african,
    texlive-lang-arab, 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-manju, 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-latex-base, texlive-latex-base-doc, texlive-latex-extra,
    texlive-latex-extra-doc, texlive-latex-recommended,
    texlive-latex-recommended-doc, texlive-latex3, 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
    # 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>
    # Files: <pair of space-separated paths; First is file to include, second
    # is destination>
    # <more pairs, if there's more than one file to include. Notice the
    # starting space>
    Description: texlive dummy package
    This package provides dpkg with information that there are the packages of
    Texlive 2009 fully installed in Testing version.

Aggiungiamo che si possono includere anche i font. In questo caso nel file di controllo sopra riportato andranno inclusi anche

 ttf-freefont, ttf-gfs-artemisia, ttf-gfs-baskerville, ttf-gfs-bodoni-classic,
 ttf-gfs-didot, ttf-gfs-didot-classic, ttf-gfs-gazis, ttf-gfs-neohellenic,
 ttf-gfs-olga, ttf-gfs-porson, ttf-gfs-solomos, ttf-gfs-theokritos,
 ttf-sil-gentium, latex-xft-fonts, tex-common, ttf-sil-gentium-basic,
 ttf-junicode, ttf-inconsolata, ttf-oflb-asana-math, ttf-linux-libertine

In ogni caso, i font aggiunti da Texlive 2010 posson essere resi disponibili per tutto il sistema aggiornando il database dei font con il comando:

# fc-cache -fsv

4.

Creare ancora una volta da utente il pacchetto .deb con il comando:

$ equivs-build texlive-dummy.ctl

Viene creato il pacchetto texlive-dummy_1.0_all.deb.

5.

Diventare root e installare il pacchetto appena creato col solito sistema:

#dpkg -i texlive-dummy_1.0_all.deb<pre>

'''6.'''

Installare i pacchetti che ci interessano, avendo però l'accortezza di usare
l'opzione che esclude i pacchetti raccomandati.
Ad esempio, con aptitude col comando:
<pre>$ aptitude install --without-recommends kile

oppure con apt-get col comando:

$ apt-get install kile --no-install-recommends


Documentazione

http://www.debian.org/doc/manuals/apt-howto/ch-helpers.it.html

http://weblog.elzevir.fr/2008/11/tex-live-2008-a-la-vanille-sur-debian-like/

http://texblog.net/latex-archive/linux/kile-texlive-2008-equivs/

http://laltromondo.dynalias.net/~wiki/informatica:texlive2010debian

http://www.tug.org/texlive/debian.html

http://users.telenet.be/mydotcom/howto/linux/equivs.htm


Samiel 20:11, 31 ott 2010 (CET)