TeX Liveのインストールとアップグレードに問題がある

TeX Liveのインストールとアップグレードに問題がある

最新の TeX Live を次のように手動でインストールした場合 (rootユーザーとしてインストール):

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xvzf install-tl-unx.tar.gz
cd install-tl-*
perl ./install-tl

更新しようとするとエラーが発生する可能性があります。

実行中tlmgr update --all(非rootユーザーとして)、 に関するエラーが発生しますcannot write to directory

root(または)を使用するとsudo tlmgr update --all、誤差は次の形式になります。

tlmgr: Local TeX Live (2020) is older than remote repository (2022). Cross release updates are only supported with
update-tlmgr-latest(.sh/.exe) --update See https://tug.org/texlive/upgrade.html for details.

またはbash: tlmgr: command not found

これらの問題をどのように解決しますか?

update-tlmgr-latest上から操作するべきでしょうか?

答え1

一般ユーザーの場合、システム全体にインストールされた TeX Live に書き込むことはできないはずなので、このエラーが表示されるのは適切かつ正しいことです。特定のシステム ユーザー (例texlive) またはスーパーユーザーを使用する必要がありますroot。 を使用しsudoて実行することは を使用することと同じでありroot、機能します (ただし、初期インストールにシステム ユーザーを使用した場合は、 ではなく、そのユーザーのみを使用する必要がありますroot)。

が見つからない場合は、実行可能ファイルtlmgrへのパスをのパスに追加する必要があります。tlmgrroot

実行しますsudo su - ; nano ~/.bashrc(bashシェルとして を使用していると仮定します)。次のような行を追加し、保存して終了します。

export PATH=/usr/local/texlive/2022/bin/linux-x86_64/:${PATH}

を取得した場合cross version error、修正方法は同じです。 のパスの前に正しいパスを追加するrootと、そのパスが選択されます。

インストールしていないバージョンがあるのはなぜですか?

一般的に、これは、インストールした何かの依存関係を満たすためにパッケージ マネージャーによってインストールされたバージョンになります。これは、TeX モードを備えたエディターのような単純なものである可能性があります (エディターはKileこの説明に当てはまります)。

古い TeX Live は削除できますか?

おそらく、はい。ただし、削除には使用しないでくださいrm。解決するよりも多くの問題を引き起こします。パッケージ マネージャーを使用してください。それがパッケージ マネージャーの目的です。ただし、パッケージ マネージャーは、必要な項目を削除しようとする可能性があります。削除される項目のリストに注意してください。

Debian Linuxをお使いの場合は、非常に優れた説明書パッケージマネージャ(aptapper、 )にTeX Liveをインストールしていることを納得させ、古いバージョンを再度インストールしないようにする方法。RedHatベースのディストリビューションではRPM( 、 )に同じことsynapticを納得させることができるかもしれないが、正確なプロセスは異なり、そのリンクでは説明されていない。yumdnfunix&linux.SE役に立つかもしれませんが、このサイトの範囲外です。

リリースの更新(例:2022年から2023年):

上記のエラーの 1 つは、 の実行を指定していますupdate-tlmgr-latest(.sh/.exe) --update。そのコマンドをコピーして実行しても、機能しません。Windows の場合は、 を使用すれば機能するはずですupdate-tlmgr-latest.exe --update。Linux の場合は、 を使用します。update-tlmgr-latest.sh --updateこのエラーは特に明確ではありませんが、さまざまなシステムのファイル拡張子と実行可能形式に多少精通していることも前提としています。これを読んでいて、これを修正できる人がいる場合に備えて、より適切なエラー メッセージを提案することはできません。

個人的には、 を使用してバージョンを更新することはしませんupdate-tlmgr-latest。 代わりに、新しいバージョンをインストールし、既存のバージョンをそのまま残すか、新しいバージョンがドキュメントで機能することに満足したら削除します。

システムユーザーを使用してインストールする:

上記では、TeX Live システムをインストールするのではなく、システム ユーザーを使用する方法について説明しましたroot。その方法は次のとおりです。

rootまたはを使用して、次のコマンド (または実質的に同様のコマンド) を使用してsudo、 という名前の新しいシステム ユーザーを作成します。texlive

useradd -d /usr/local/texlive -m -r texlive
passwd -l texlive

これにより、システム ユーザー ( -r) が作成され、ホーム ディレクトリが/usr/local/texlive( -d /usr/local/texlive -m) になり、パスワードがロックされます (そのため、アカウントにログインできるパスワードはありません)。 を使用してユーザーsudo su - texliveに変更しtexlive、質問に記載されているようにインストールを実行します。

その主な理由は、責任の分離です。texliveユーザーは、TeX Live インストールの管理以外の目的に使用されません。他のシステム管理に使用することはできません。また、どのファイルが TeX Live インストールの一部であるかは非常に明確です (ファイルは ではtexliveなく が所有しますroot)。

高度なトピック - 複数のバージョンの TeX Live を連携させる:

(自動バージョンは Linux では動作しますが、Mac では動作しない可能性があり、Windows では動作しません)

朗報です! 互いに干渉することなく、複数の異なるリリースの Tex Live をインストールすることができます。 それぞれを などの別のディレクトリにインストールします/usr/local/texlive/<year>/

バージョンを選択するには、PATH変数を手動で変更するか、コンピューターに自動的に変更させることができます。コンピューターに自動的に変更させるには、environment-modules次のようなモジュール ファイルを含むパッケージを使用します (インストールした TeX Live のバージョンごとに 1 つ作成します)。

#%Module1.0#######################################################################
#
#
module-whatis   "Loads settings for the TeXLive 2023"
prepend-path    PATH            /usr/local/tex/texlive/2023/bin/x86_64-linux
prepend-path    MANPATH         /usr/local/tex/texlive/2023/texmf/doc/man
prepend-path    INFOPATH        /usr/local/tex/texlive/2023/texmf/doc/info

各バージョンにこのようなモジュール ファイルが 1 つある場合は、 を使用して簡単にバージョンを選択しmodule load texlive/2023、 を使用してデフォルトに戻すことができますmodule remove texlive/2023。繰り返しますが、この方法でモジュール ファイルを使用するための具体的なヘルプについては、unix&linux.SEは、助けを求めるのに適した場所です (もちろん、マニュアル ページを確認した後で)。

関連情報