我从MiKTeX
Windows 迁移到TeXLive
了 Ubuntu。起初我texlive-full
从 Ubuntu 存储库安装,但我意识到我想安装更多软件包,而当没有 时,这不太方便tlmgr
。
所以我决定TeXLive
从 TUG 中删除并重新安装它。安装没有问题。然后我将以下几行添加到bashrc
export PATH=$PATH:/usr/local/texlive/2014/bin/i386-linux
export PATH=$PATH:/usr/local/texlive/2014/tlpkg/
然后我运行了一个简单的文档,它似乎工作正常。我尝试安装一个包(即units
),tlmgr
但我没有权限写入特定目录。我所做的是使用sudo
特权,但仍然没有运气。我的努力如下
thanos@thanos-laptop:~$ tlmgr install units
You don't have permission to change the installation in any way,
specifically, the directory /usr/local/texlive/2014/tlpkg/ is not writable.
Please run this program as administrator, or contact your local admin.
thanos@thanos-laptop:~$ sudo tlmgr install units
[sudo] password for thanos:
sudo: tlmgr: command not found
我也尝试过相关的 tlmgr 的 gui,但收到与上述相同的消息。
我该怎么做才能通过 安装软件包tlmgr
?
答案1
我所做的是让大家sudo
知道变量的修改$PATH
。这是通过在终端上输入以下命令来完成的
sudo env PATH="$PATH" tlmgr
通过这种方式,我以某种方式启用了sudo
。tlmgr
之后可以使用以下方式安装软件包
sudo tlmgr install package
答案2
如果其他人尝试过以前的建议但没有奏效,那么这对我有用:
sudo /usr/local/texlive/2015/bin/x86_64-linux/tlmgr ...
答案3
Thanos 的答案基本可行,但是多个命令的描述具有误导性。
全部root 操作需要与env
修改明确配对。
根据设计,每次调用 root 用户的环境变量时都会重置。如果您随后尝试执行常规sudo
命令,则PATH
变量将已被重置。即使在环境中也是如此sudo su
。因此,例如,如果您想使用--dry-run
选项预览安装名为 的包package
,则以下内容将不是工作:
sudo env PATH="$PATH" tlmgr install package --dry-run
sudo tlmgr install package
相反,您必须PATH
每次都修复变量,如下所示:
sudo env PATH="$PATH" tlmgr install package --dry-run
sudo env PATH="$PATH" tlmgr install package
根本问题是,标准 TeX Live 安装将二进制文件放在非标准目录中,因此PATH
root 可识别的位置集不包括 TeX Live 附带的任何内容。根据设计,您不应该能够永久修改 root 的PATH
变量,因此任何需要提升权限的任务都会变得棘手。
Ubuntu 论坛上描述了更永久地解决此问题的方法。 这样做比较复杂,我自己还没有尝试过。