TeX Live は、tlmgr を用いてオンラインアップデートすることが可能です。Debian 系や RHEL 系のディストリビューションに慣れた人は、apt-get / aptitude や rpm / yum のようなディストリビューション固有のアップデータでのシステム管理に慣れていると思いますが、tlmgr はそれら程ではないものの、TeX Live に収録されたユーティリティの version number を管理し、ユーティリティの中で古くなったものをその時点における最新の version に更新することができます。
もし tlmgr がなかったら、僕は TeX Live を /usr/local/texlive 以下にインストールすることに関して、このような document を作成しなかったでしょう。現在用いられている Debian 系や RedHat 系のディストリビューションのほとんど全てが TeX Live を収録していますし、ユーティリティの version 管理などに関しても、システムを構成する他のソフト同様に、そのディストリビューション固有のシステム管理に委ねる方が、どう考えても安全でしょうから。
しかし、tlmgr のおかげで、TeX Live のユーザは、その時点において最もデバッグの行き届いたシステムを使用することができます。そして、ここで取り上げているように、Mac OS X と Linux の双方において、ほぼ同じ感触で管理を行うことができるわけです。
しかし、後述しますが、tlmgr は決して完全なアップデータではありませんし、その使用に際しては、いくつか知っておいた方がいいこともあります。ここでは、それらの問題に関して解説します。
TeX Live のインストールと path の設定が終わった段階で、tlmgr の設定作業に入ります。まずはオンラインアップデートのリポジトリ(パッケージとそれらの情報を得るための URL)を指定します(この処理は初回だけ必要で、それ以後は変更の必要がない限りは不要です)。
リポジトリは、上の例のように mirror.ctan.org を指定しておくと、ネットワーク的に近所のミラーサイトに飛ばされるので便利です。$ sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
リポジトリの指定が終わったら、tlmgr 自体のアップデートを行います。この操作は初回と、tlmgr の version up が行われたときに必要です。いずれの場合も、tlmgr の更新なしで通常のアップデートを行おうとすると、
とメッセージが出て、tlmgr のアップデートが要求されます。Updates for tlmgr itself are present. =============================================================================== Please update the package manager first, via either tlmgr update --self or by getting the latest updater for Unix-ish systems: http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh and/or Windows systems: http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.exe Then continue with other updates. =============================================================================== /usr/local/texlive/2021/bin/x86_64-linux/tlmgr: Exiting, please read above warning.
tlmgr のアップデートは以下のように行います。
$ sudo tlmgr update --self
以上の準備が整ったら、まずは、
としてみて下さい。アップデートが必要とされるパッケージのリストが出てきます。これらのパッケージに対して、$ sudo tlmgr update --list
でアップデートをかけることができます。これ以後は、定期的にこのコマンドで更新を行えばよいのですが、後述のような問題が生じた場合には、その都度対策する必要があります。現状では、残念ながら「tlmgr は万能ではない」ということを念頭に置いてシステム運営を行う必要があります。$ sudo tlmgr update --all
または$ sudo tlmgr gui
とすることで GUI の tlmgr が起動します。$ sudo tlmgr --gui
上のスクリーンショットは日本語で表示されていますが、tlmgr の GUI モードは環境変数 LC_MESSAGES をチェックして、ユーザの通常使用している言語で GUI を表示しようとします。もし他の言語で GUI を利用したい場合は、
のように、--gui-lang オプションで表示言語を指定することもできます。詳細は、tlmgr のオンラインマニュアルを御参照下さい。$ sudo tlmgr --gui --gui-lang en
上述のとおり、tlmgr は自動的に古くなったパッケージをリストアップし、それらを最新のパッケージに更新してくれます。しかし、その機能は残念ながら万能ではありません。
tlmgr によるアップデートを行った際に、取得したパッケージの展開に失敗することがしばしばあります。TeX Live のパッケージは tar と XZ Utilsでアーカイブされているのですが、失敗するところを見ていると、「これは XZ アーカイブではない」というようなメッセージを散見します。
この原因は現時点で未だ判然としていませんが、レポジトリサーバ上へのアップロードが完了していないファイルをそのまま取得してしまっているのかもしれません。このような場合には、しばらく時間をおいてから、再度アップデートを試みるようにして下さい。
しばしば起きるものとしては、 tlmgr での update 時に以下のようなメッセージが出ることがあります:
skipping forcibly removed package <package_name>
これは、更新がうまく行かなかったために強制的に除去されたパッケージがあることを示しています。このようなメッセージが出た場合は、まず、
として tlmgr を更新してから、$ sudo tlmgr update --self
としてインストールを再試行するか、$ sudo tlmgr install --reinstall <package_name>
とします。この時点で、インストールに失敗したパッケージが取得可能であれば、除去されたパッケージの再インストールが行われます。取得に失敗するようであれば、上記コマンドを何度か入力していただくと、インストールに失敗したパッケージの削除が行われ、次回以降、取得可能になった段階でインストールが行われます。$ sudo tlmgr update --reinstall-forcibly-removed --all
このような状態になったときは、すぐに何度も再試行を行っても、ターゲットのパッケージが取得できない状態が改善されない限りは、インストールやアップデートが完了することはありません。ですから、少し待ってから上記の作業を行うようにして下さい。
次章『日本語フォントのセットアップ』で、システムの改変に関して言及していますが、そこでは TeX Live のインストールツリーに触れずにシステムを改変するように記述を徹底させています。それは、このような update の失敗が発生して生じる不具合に ad-hoc に対処するために、TeX Live のインストールツリー:
/usr/local/texlive/2021をばっさり消去して再インストールしても大丈夫な状態を維持する、という意味合いもあります。こういう解決策を薦めたくはないのですが、文書の締切が迫っているときにトラブったときなど、さくっと再インストール→ update で事が済むようにしておくのが……「大人の選択」というものでしょうね。