'apt' によって他の texlive-* がインストールされている場合、'texdoc' は失敗します。

'apt' によって他の texlive-* がインストールされている場合、'texdoc' は失敗します。

Ubuntu 20.04 に 'texlive2020-20200406.iso' から TexLive を正しくインストールし、しばらくの間レポートを書くために使用していました。最近、ターミナル コマンドでいくつかのパッケージを見つけapt search texlive、そのうちのいくつかをインストールしました。それ以降、コマンドはtexdocドキュメントを検索できなくなりました。コマンドは以前は正常に動作していたはずです。

例: このコマンドはtexdoc beamer以前は「beameruserguide.pdf」を開いていましたが、今は別のパスにあるbeamerサンプルを開きます。

を介してインストールされたパッケージは、apt'iso` ファイルからインストールされたパッケージのパスを上書きするようです。

apt list --installed | grep texlive以下にリストを示します。

texlive-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-binaries/focal,now 2019.20190605.51237-3build2 amd64 [installed,automatic]
texlive-font-utils/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra-links/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra/focal,focal,now 2019.202000218-1 all [installed]
texlive-fonts-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-chinese/focal,focal,now 2019.20200218-1 all [installed]
texlive-lang-cjk/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-japanese/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-korean/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-other/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-extra/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-latex-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-pictures/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-plain-generic/focal,focal,now 2019.202000218-1 all [installed,automatic]

この問題の解決にご協力いただければ幸いです。


追加: パスは以下のように '~/.bashrc' を編集して設定されます ('.iso' からインストールした後)

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

追加: コマンドwhich texdocecho $PATH出力:

# which texdoc
/usr/bin/texdoc

読みやすくするために行を折り返します

# echo $PATH
/home/xiaocy/.local/bin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/snap/bin:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux

結論

この問題はパスのオーバーライドによって発生します。以下のように変更する~/.bashrc~/.profileこの問題を解決できます。

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

この結論を自分で出しても良いかどうかは分かりません。この結論は @daleif の協力を得て導き出されました (コメントを参照)。どうもありがとうございました!

答え1

これはよくある間違いです。まず、OS は PATH を左から右に検索します。(ここではパスはコロンで区切られています)。次に、最初のパスが見つかるまで、各パス部分を関数呼び出しに追加します。ここでは、apt と ISO 経由の TL2020 の 2 つの LaTeX インストールがあります。apt インストールは を介し​​て見つかるような方法で texlive のものを追加するため/usr/bin/、パスの TL2020 部分が の前に来るようにする必要があります/usr/bin/。標準的な方法は、先頭に追加するTL2020 パス。

したがって、

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

ない

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

さらに、これも必ず追加してください.profile(編集を有効にするには、ログアウトして再度ログインする必要があります.profile)。これは、メニューから、またはファイルをダブル スリックして起動したエディターでは、Bash に関連するものが表示されず、変更も表示されないためです。

関連情報