解決策

解決策

次のコマンドを実行しましたが失敗しました。まず、奇妙な出力404を取得してから、不明なハッシュを取得しましたwget

root@masi:/home/masi/Documents/# tlmgr update --self

出力

(running on Debian, switching to user mode!)
TLDownload::get_file: response error: 404 File 'texlive.tlpdb.xz' not found (for ftp://ftp.funet.fi/pub/TeX/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz)
TLUtils::download_file: persistent connection ok, but download failed: ftp://ftp.funet.fi/pub/TeX/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
TLUtils::download_file: retrying with wget.
TLUtils::download_file: retry with wget succeeded: ftp://ftp.funet.fi/pub/TeX/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Unknown directive ...containerchecksum c59200574a316416a23695c258edf3a32531fbda43ccdc09360ee105c3f07f9fb77df17c4ba4c2ea4f3a5ea6667e064b51e3d8c2fe6c984ba3e71b4e32716955... , please fix it! at /usr/share/texlive/tlpkg/TeXLive/TLPOBJ.pm line 210, <$retfh> line 5579.

問題は2016年11月27日と12月30日に発生しました。

TeXLiveバージョンの混乱

TeXLive 2015をrootとして表示するには、次の手順を実行します。

root@masi:/home/masi# tex -version
TeX 3.14159265 (TeX Live 2015/dev/Debian)
kpathsea version 6.2.1dev
Copyright 2014 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.

私は次のように走るmasi

masi@masi:~$ tex --version
TeX 3.14159265 (TeX Live 2016)
kpathsea version 6.2.2
Copyright 2016 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.

私はxelatex示している何でも実行しますTeXLive 2016〜のようにmasi

(/usr/local/texlive/2016/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty)

またmasi

command -v tlmgr
/usr/local/texlive/2016/bin/x86_64-linux/tlmgr

またmasi

command -v tex
/usr/local/texlive/2016/bin/x86_64-linux/tex

TeXLive:2016、2015
オペレーティングシステム:Debian 8.5
説明:TeXディストリビューションをどのように更新しますか?

答え1

問題:のパスが異なるmasiため、rootsu -p行くときにパスを変更しないでくださいroot。私のソリューションを提案

su -p
tlmgr update --self

出力

tlmgr: package repository http://mirror.datacenter.by/pub/mirrors/CTAN/systems/texlive/tlnet (verified)
tlmgr: saving backups to /usr/local/texlive/2016/tlpkg/backups
tlmgr: no self-updates for tlmgr available.

答え2

解決策

ルート状態に入るとき、これsudo -sEまたはこれを使用してsu -p現在のセッションの環境変数を保存します。

説明する

システムはユーザーごとに異なるバージョンを使用します。texliveこれは環境変数によるものですPATH

端末にコマンドを入力すると、シェルはディレクトリ内の対応するPATHプログラムを探します。しかし、問題はシェルですPATHPATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/snap/bin:/snap/bin

date端末に入力すると、シェルはdateディレクトリ内のプログラムを探し/usr/local/sbin、見つからない場合はプログラムを探し/usr/local/bin、見つからない場合...すべてのディレクトリが見つかるまで探します。

2016を手動でインストールするときは、texliveある時点でディレクティブを使用しましたPATH=/usr/local/texlive/2016/bin/x86_64-linux/:$PATH。これにより、/usr/local/texlive/bin/x86_64-linux/コマンドを入力すると、シェルは最初にディレクトリを検索します。唯一の問題は、以下のガイドラインがすべてのユーザーに適用されないことです。したがって、root アクセス権を取得すると、変数はPATH元の内容に戻ります。

そのため、同じコマンドを実行すると、masi2rootつの異なるプログラムが提供されます。解決策は、古いユーザーの環境変数を使用またはsudo -sE保存することです。su -p

関連情報