為什麼無法在 Debian 8.5 中更新 TeXLive?
我未成功執行以下命令並首先獲得奇怪的輸出 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
問題:不同的 PATH
masi
,root
所以使用su -p
時不要更改 PATHroot
。我的解決方法建議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.
解決方案
當您進入 root 時,使用 this
sudo -sE
或 thissu -p
來保留目前會話中的環境變數。解釋
您的系統
texlive
為不同的使用者使用不同的版本,這是因為 environment variablePATH
。當您在終端中並鍵入命令時,shell 將在您的
PATH
目錄中查找相應的程序。但問題是,當 shell 在PATH
. 例如,我有這個PATH
變數:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/snap/bin:/snap/bin
如果我在終端中輸入,shell 將在目錄中
date
查找程序,如果沒有找到,他會查找,如果沒有找到……直到他查看所有目錄。date``/usr/local/sbin``/usr/local/bin
當您手動安裝
texlive
2016 時,有時您使用了指令PATH=/usr/local/texlive/2016/bin/x86_64-linux/:$PATH
。這樣,/usr/local/texlive/bin/x86_64-linux/
如果您鍵入任何命令,您的 shell 就會首先在目錄中查找。唯一的問題是下面的指令並沒有應用於所有使用者,所以當你進入 root 時,你的PATH
變數將恢復到原來的內容。
masi
這就是為什麼當從並root
給你兩個不同的程序執行相同的命令時。解決方案是使用sudo -sE
或su -p
保留以前使用者的環境變數。