Help us understand the problem. What is going on with this article?

インストーラープロファイルを用いてTeX Liveをインストールしよう

More than 1 year has passed since last update.

これは「TeX & LaTeX Advent Caleandar 2017」の18日目の記事です。
17日目は、uwabamiさんでした。19日目は、doraTeXさんです。

みなさん、#テフライブ! していますか?

この記事では、「TeXで作る環境」ということで、TeX Live公式のコマンドラインによるインストーラ install-tl コマンドに、インストーラープロファイルを与えることで、自分好みの構成でTeX Live環境をインストールするための解説をしてみます。

install-tl コマンドからインストールすると、

  • インストーラープロファイルを与えることで、TeX Liveのインストールを自動化できます。
  • Windows、macOS、Linux、FreeBSD、どのOSでも同じ処理、同一構成でインストール可能です。
  • (Unix系OS上から)他のプラットフォームのTeX Live環境も構築可能です。

install-tl コマンドに、インストーラープロファイルを与えて TeX Live をインストール

ここでは、以下の条件でTeX Live 2016 frozenをインストールするとします。

  1. /opt/texlive/2016 にインストール
  2. フル構成インストール(scheme-full
  3. Mac OS Xバイナリのみインストール(x86_64-darwin
  4. ソースとドキュメントを除く(texmf-dist/src, texmf-dist/doc
  5. その他オプションを調整

1. インストーラープロファイルを作成

この条件をみたすインストーラープロファイルを texadvent2017-tl16frozen.profile としてまとめました。

# texadvent2017-tl16frozen.profile
# 
# $ wget https://texlive.texjp.org/2016/tlnet/install-tl-unx.tar.gz
# $ sudo mkdir -p /opt/texlive/2016/tlpkg
# $ sudo cp /some/where/texadvent2017-tl16frozen.profile /opt/texlive/2016/tlpkg/texlive.profile
# $ sudo install-tl-20170413/install-tl \
#     --profile /opt/texlive/2016/tlpkg/texlive.profile \
#     --repository http://texlive.texjp.org/2016/tlnet
#
## 
selected_scheme scheme-full
#selected_scheme scheme-minimal
#collection-langjapanese 1
#collection-latexextra 1
#collection-xetex 1
#collection-luatex 1
#collection-fontsrecommended 1
#collection-texworks @@WITH_WINDOWS@@
#collection-wintools @@WITH_WINDOWS@@
#
## 
TEXDIR /opt/texlive/2016
TEXMFLOCAL /opt/texlive/texmf-local
TEXMFSYSCONFIG /opt/texlive/2016/texmf-config
TEXMFSYSVAR /opt/texlive/2016/texmf-var
TEXMFHOME ~/texmf
TEXMFCONFIG ~/.texlive2016/texmf-config
TEXMFVAR ~/.texlive2016/texmf-var
#
## set platform(s)
binary_x86_64-darwin 1
binary_x86_64-linux 0
binary_win32 0
#
## texmf-dist/doc, texmf-dist/src
option_doc 0
option_src 0
#
## set other options
in_place 0
option_adjustrepo 0
option_autobackup 0
option_backupdir tlpkg/backups
option_desktop_integration 0
option_file_assocs 0
option_fmt 1
option_letter 0
option_menu_integration 0
option_path 0
option_post_code 1
option_sys_bin /usr/local/bin
option_sys_info /usr/local/share/info
option_sys_man /usr/local/share/man
option_w32_multi_user 1
option_write18_restricted 1
portable 0

2. インストーラーをダウンロード

インストーラーをダウンロードします。
TeX Live YYYYをインストールする場合は、
https://texlive.texjp.org/YYYY/tlnet/install-tl-unx.tar.gz
をダウンロードします!(ココ、テストに出ます!)
実際に、Webブラウザから https://texlive.texjp.org/ 以下を辿ってもよいですね。

$ wget https://texlive.texjp.org/2016/tlnet/install-tl-unx.tar.gz

3. インストーラー install-tl を実行

インストールプロファイル texadvent2017-tl16frozen.profile を指定の場所に texlive.profile として置きます1

$ sudo mkdir -p /opt/texlive/2016/tlpkg
$ sudo cp /some/where/texadvent2017-tl16frozen.profile
/opt/texlive/2016/tlpkg/texlive.profile

Goooooooooooooooooooooo!!!

$ cd install-tl-20170413
$ sudo ./install-tl \
    --profile /opt/texlive/2016/tlpkg/texlive.profile \
    --repository http://texlive.texjp.org/2016/tlnet

以上です、簡単ですね!

このあと、後処理として、以下の設定を行います。

  • 環境変数 PATH(Windowsでは %PATH%
  • Unix系OSで OSFONTDIR(Windowsでは、初めから C:\WINDOWS\Fonts を見に行くようになっています)
  • 和文フォントの設定
  • tltexjp リポジトリの追加
  • その他

この各種後処理も色々と大事なことがありますけれども、今回は割愛いたします。

各事項の補足

tlnet リポジトリの場所

TeX Live historic ftp://tug.org/texlive/historic/ には、TeX Live公式のTeX Live YYYY frozenが保存されています。このhistoricを --repository で指定してもよいのですが…、当然のごとく、日本国内からインターネット上の距離が遠い場所にあります。

そこで、tlnetリポジトリ場所は、最新バージョンに対して、CTANミラー http://mirror.ctan.org/systems/texlive/tlnet (JAISTなどのCTANミラーを直接してしてもOK) を、過去にリリースされたTeX Live YYYYに対して、国内にある日本語TeX開発コミュニティ側の http://texlive.texjp.org/ をオススメいたします2

また、前述の例では、 --repository に日本語TeX開発コミュニティが運営しているサーバのURLを与えていますが、手元に適当なtlnetリポジトリを用意すれば、 --repository /some/where/tlnet のように与えることができます。

インストール場所: 1. /opt/texlive/YYYY にインストール

texadvent2017-tl16frozen.profile をご覧いただくと容易に分かるように、どのようなディレクトリ構成でもインストールできます3

今回、あえて「/opt/texlive/YYYY にTeX Live YYYYをインストールする」というプロファイルにしました。
たとえば、標準の /usr/local/texlive/YYYY に TeX Live YYYYをインストールする場合は、このプロファイルに対して

s|/opt/texlive|/usr/local/texlive|

の置換で十分です。

標準のTeX Directory Structure (TDS)を崩さなければ、kpath searchから自動的に TEXDIR が分かりますので、一度インストールした /opt/texlive/YYYY を丸ごと、 /usr/local/texlive/YYYY などに丸ごと持っていっても問題なく動作します。ここらへんは、 texmf.cnf のTDSに関する解説が別途必要になります(この解説も今回は割愛いたします)。

さらにTeX Live 2016にかぎらず、TeX Live YYYYをインストールする場合は、

https://texlive.texjp.org/YYYY/tlnet/install-tl-unx.tar.gz

をダウンロード、 texadvent2017-tl16frozen.profile2016YYYY に置換すれば十分です。

インストール構成: 2. フル構成インストール(scheme-full

通常、TeX Live YYYYの全パッケージのをインストールしておくのが無難です。

最近のTeX Live YYYYはおおよそ 4.5GBほどあります。このうち、

  • TEXDIR/texmf-dist/fonts: 2GB
  • TEXDIR/texmf-dist/doc: 2GB
  • TEXDIR/texmf-dist/src: 250MB

ほどあります。

それゆえ、単にビルド専用でTeX Liveをインストールしたり、どうせググるからdocもsrcも要らないっていう場合は、 foo-doc, foo-src のパッケージを除けばよいです(後述)。

また、フル構成 scheme-full を選ばずに、最小構成 scheme-minimal から最低限の日本語TeX環境を構築したい場合など、以下のような感じに変えてもよいでしょう。

selected_scheme scheme-minimal
collection-langjapanese 1
...

設定可能なscheme名やcollection名は、TeX Liveバージョンで大幅に変わることがないものの、TeX Live YYYYが変わることで使えなくなるものもありますので、要確認です(後述)。

プラットフォームの指定:3. Mac OS Xバイナリのみインストール(x86_64-darwin

通常、インストーラー install-tl がOSを自動判別して、最低限のバイナリが1つだけ選択されます。
最近の TeX Liveであれば、Mac OS X上で install-tl を動かすと、自動的に x86_64-darwin が選択されます。

実は、Mac OS X上から Linuxバイナリ x86_64-linux、Windowsバイナリ win32 も各OSだけの TeX Live YYYY、もしくは、複数バイナリを混ぜた TeX Live YYYY を構成できます。実際には

TEXDIR/bin/win32
TEXDIR/bin/x86_64-linux
TEXDIR/bin/x86_64-darwin

があるかどうかだけで、標準のTDSであれば、各プラットフォームごとにここの場所を環境変数の PATH に入れるだけで、あとは kpath search で全部自動的にパスが解決されるからです。

それゆえに、例えば…、Macと同一構成なTeX Live YYYY環境をもつLinuxのそれを作りたい場合は、まとめて

binary_x86_64-darwin 1
binary_x86_64-linux 1

としておいて、 /opt/texlive なり TEXDIR なりまるごと tarball などで固めておけば十分となります。

ドキュメントファイルやソースファイルのインストール有無:4. ソースとドキュメントを除く(texmf-dist/src, texmf-dist/doc

texadvent2017-tl16frozen.profile で以下のようにしています。

option_doc 0
option_src 0

これらのオプションはデフォルトで 1 となっています。
どーせ、みんな、ググっちゃうから、ディスクの肥やしになる!?ドキュメントもソースも要らんかもですねー ;-)

保守やデスクトップ向け関連付けなどのオプション:5. その他オプションを調整

option_adjustrepo 0

インストーラーでインストール後、ネットワーク上からmirrorのtlnetからさらに更新を試みるオプションです。

しかしながら、今回は TeX Live YYYY frozenからインストールしますし、通常の場合であったとしても、これは 0 で良いと思います。

option_autobackup 0, option_backupdir tlpkg/backups

$ sudo tlmgr update ごとに、過去のパッケージを順に TEXDIR/tlpkg/backups 以下に保持しておく機能です。

しかしながら、通常、これを使うユーザーはいないと推察できますし、 TEXDIR/tlpkg/backups に貯まっていくだけでディスク容量を食いますので、これも 0 であってよいと思います。

option_desktop_integration 0, option_file_assocs 0, option_menu_integration 0

これらのオプションたちは、名前から推察できるとおり、おもにインストーラーでパッケージを展開後、 mktexlsr, updmap-sys, fmtutils-sys 後の後処理で、おもにWindows向けにTeXworksなりのデスクトップアプリケーション関連付けが行われます。

しかしながら、Windowsであっても、advanced userにとって、余計なお世話だと思いますので、これらもあらかじめ 0 にしていてよいと思います。

関連記事

付録:過去3年分のTeX Live YYYYのインストーラープロファイル例集

TeX Live 2017

selected_scheme scheme-full
TEXDIR /opt/texlive/2017
TEXMFCONFIG ~/.texlive2017/texmf-config
TEXMFHOME ~/texmf
TEXMFLOCAL /opt/texlive/texmf-local
TEXMFSYSCONFIG /opt/texlive/2017/texmf-config
TEXMFSYSVAR /opt/texlive/2017/texmf-var
TEXMFVAR ~/.texlive2017/texmf-var
binary_x86_64-darwin 1
collection-basic 1
collection-bibtexextra 1
collection-binextra 1
collection-context 1
collection-fontsextra 1
collection-fontsrecommended 1
collection-fontutils 1
collection-formatsextra 1
collection-games 1
collection-genericextra 1
collection-genericrecommended 1
collection-htmlxml 1
collection-humanities 1
collection-langafrican 1
collection-langarabic 1
collection-langchinese 1
collection-langcjk 1
collection-langcyrillic 1
collection-langczechslovak 1
collection-langenglish 1
collection-langeuropean 1
collection-langfrench 1
collection-langgerman 1
collection-langgreek 1
collection-langindic 1
collection-langitalian 1
collection-langjapanese 1
collection-langkorean 1
collection-langother 1
collection-langpolish 1
collection-langportuguese 1
collection-langspanish 1
collection-latex 1
collection-latexextra 1
collection-latexrecommended 1
collection-luatex 1
collection-mathscience 1
collection-metapost 1
collection-music 1
collection-omega 1
collection-pictures 1
collection-plainextra 1
collection-pstricks 1
collection-publishers 1
collection-texworks 1
collection-xetex 1
in_place 0
option_adjustrepo 0
option_autobackup 1
option_backupdir tlpkg/backups
option_desktop_integration 1
option_doc 1
option_file_assocs 1
option_fmt 1
option_letter 0
option_menu_integration 1
option_path 0
option_post_code 1
option_src 1
option_sys_bin /usr/local/bin
option_sys_info /usr/local/share/info
option_sys_man /usr/local/share/man
option_w32_multi_user 1
option_write18_restricted 1
portable 0

TeX Live 2016

selected_scheme scheme-full
TEXDIR /opt/texlive/2016
TEXMFCONFIG ~/.texlive2016/texmf-config
TEXMFHOME ~/texmf
TEXMFLOCAL /opt/texlive/texmf-local
TEXMFSYSCONFIG /opt/texlive/2016/texmf-config
TEXMFSYSVAR /opt/texlive/2016/texmf-var
TEXMFVAR ~/.texlive2016/texmf-var
binary_x86_64-darwin 1
collection-basic 1
collection-bibtexextra 1
collection-binextra 1
collection-context 1
collection-fontsextra 1
collection-fontsrecommended 1
collection-fontutils 1
collection-formatsextra 1
collection-games 1
collection-genericextra 1
collection-genericrecommended 1
collection-htmlxml 1
collection-humanities 1
collection-langafrican 1
collection-langarabic 1
collection-langchinese 1
collection-langcjk 1
collection-langcyrillic 1
collection-langczechslovak 1
collection-langenglish 1
collection-langeuropean 1
collection-langfrench 1
collection-langgerman 1
collection-langgreek 1
collection-langindic 1
collection-langitalian 1
collection-langjapanese 1
collection-langkorean 1
collection-langother 1
collection-langpolish 1
collection-langportuguese 1
collection-langspanish 1
collection-latex 1
collection-latexextra 1
collection-latexrecommended 1
collection-luatex 1
collection-mathextra 1
collection-metapost 1
collection-music 1
collection-omega 1
collection-pictures 1
collection-plainextra 1
collection-pstricks 1
collection-publishers 1
collection-science 1
collection-texworks 1
collection-xetex 1
in_place 0
option_adjustrepo 1
option_autobackup 1
option_backupdir tlpkg/backups
option_desktop_integration 1
option_doc 1
option_file_assocs 1
option_fmt 1
option_letter 0
option_menu_integration 1
option_path 0
option_post_code 1
option_src 1
option_sys_bin /usr/local/bin
option_sys_info /usr/local/share/info
option_sys_man /usr/local/share/man
option_w32_multi_user 1
option_write18_restricted 1
portable 0

TeX Live 2015

selected_scheme scheme-full
TEXDIR /opt/texlive/2015
TEXMFCONFIG ~/.texlive2015/texmf-config
TEXMFHOME ~/texmf
TEXMFLOCAL /opt/texlive/texmf-local
TEXMFSYSCONFIG /opt/texlive/2015/texmf-config
TEXMFSYSVAR /opt/texlive/2015/texmf-var
TEXMFVAR ~/.texlive2015/texmf-var
binary_x86_64-darwin 1
collection-basic 1
collection-bibtexextra 1
collection-binextra 1
collection-context 1
collection-fontsextra 1
collection-fontsrecommended 1
collection-fontutils 1
collection-formatsextra 1
collection-games 1
collection-genericextra 1
collection-genericrecommended 1
collection-htmlxml 1
collection-humanities 1
collection-langafrican 1
collection-langarabic 1
collection-langchinese 1
collection-langcjk 1
collection-langcyrillic 1
collection-langczechslovak 1
collection-langenglish 1
collection-langeuropean 1
collection-langfrench 1
collection-langgerman 1
collection-langgreek 1
collection-langindic 1
collection-langitalian 1
collection-langjapanese 1
collection-langkorean 1
collection-langother 1
collection-langpolish 1
collection-langportuguese 1
collection-langspanish 1
collection-latex 1
collection-latexextra 1
collection-latexrecommended 1
collection-luatex 1
collection-mathextra 1
collection-metapost 1
collection-music 1
collection-omega 1
collection-pictures 1
collection-plainextra 1
collection-pstricks 1
collection-publishers 1
collection-science 1
collection-texworks 1
collection-xetex 1
in_place 0
option_adjustrepo 1
option_autobackup 1
option_backupdir tlpkg/backups
option_desktop_integration 1
option_doc 1
option_file_assocs 1
option_fmt 1
option_letter 0
option_menu_integration 1
option_path 0
option_post_code 1
option_src 1
option_sys_bin /usr/local/bin
option_sys_info /usr/local/share/info
option_sys_man /usr/local/share/man
option_w32_multi_user 1
option_write18_restricted 1
portable 0

以上、 texmf.cnf の TDS の説明以外で、インストーラーのインストーラープロファイルに関わる解説をざーっとしてみました。


  1. この処理は必須ではないですけれども、過去のバージョンで特定の場所しか認識しないことがあったので、そのままにしています。 

  2. このリポジトリ集 https://texlive.texjp.org/ の管理は、わたしが某弊社Green Cherryのサーバでやっていたものを、日本語TeX開発コミュニティにそのまま持ってきました。 

  3. ほんまに /some/where/texlive/YYYY の「texlive/YYYY」ですらなくてもかまいません。 

munepi
山本宗宏munepi;Green Cherry Ltd.代表。TeXでお仕事、Vine LinuxでProject Vine広報、数学に恋しています。 今年はTUG 2013実行委員 http://tug.org/tug2013/ です。 電子書籍、読み障害、コンサルタントなどのキーワードにも興味を持っています。
http://greencherry.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした