从 tlmgr 安装包时出现权限问题

从 tlmgr 安装包时出现权限问题

我从MiKTeXWindows 迁移到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

通过这种方式,我以某种方式启用了sudotlmgr之后可以使用以下方式安装软件包

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 安装将二进制文件放在非标准目录中,因此PATHroot 可识别的位置集不包括 TeX Live 附带的任何内容。根据设计,您不应该能够永久修改 root 的PATH变量,因此任何需要提升权限的任务都会变得棘手。

Ubuntu 论坛上描述了更永久地解决此问题的方法。 这样做比较复杂,我自己还没有尝试过。

相关内容