安装

安装

Debian 和 Ubuntu 的 texlive 打包功能非常好。但我希望tlmgr对升级和要安装的软件包进行更细粒度的控制。

那么如何在 Debian/Ubuntu 上安装“原始” TeXLive?

另外我如何dpkg知道我已经安装了 TeXLive?

答案1

使用来自的网络安装程序脚本tug.org 官方网站上的此页面安装“vanilla” TeXlive。

诱使 Ubuntu 满足软件包依赖关系更加复杂,需要使用 equivs 软件包。有一些基本的指导原则在 TeXblog 上的这篇文章中(非官方博客)。(此页面有点旧,针对的是较旧版本的 Ubuntu。)那里的软件包列表有点旧,但相同的总体程序应该仍然有效。恐怕我没有一份虚拟软件包应包含的内容的现成列表;也许其他人会有。(如果您尝试安装某些东西,它会告诉您您有未满足的 texlive 依赖项,您可以随时根据需要创建新的虚拟软件包。)

答案2

这些说明已针对 Ubuntu 16.04 和 TeX Live 2021 进行了更新,它们可能适用于大多数 Ubuntu/Debian 发行版。

安装

安装“原始” TeX Live 并不像您想象的那么难。您需要的东西:

  • 互联网连接。
  • 大约 4 GiB 的可用空间(如果不安装文档,则为 2 GiB)。
  • 根(sudo)的幂。

笔记:这些说明适用于终端和安装 的“原始”最新版本texlive。如果您不熟悉命令行和大量sudo说明,您可能仍然可以从软件中心安装该texlive-full软件包;您最终会得到 的“库存”版本texlive,它通常会比 的最新发行版稍差一些texlive

安装依赖项

本指南需要以下软件包:wgetperl-tk。使用以下命令安装它们:

sudo apt install wget perl-tk

TeX Live 安装程序

首先需要使用以下命令下载官方安装程序:

wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xf install-tl-unx.tar.gz
cd install-tl-20220211

install-tl-20220211文件夹的名称可能不同。您可以键入install-tl然后tab按以自动完成文件夹名称。

现在可以开始安装,运行:

sudo ./install-tl

这将启动安装过程。您可以在此处更改所有类型的选项,大多数默认选项都是正确的。为了在安装后获得可执行文件和 man/info 页面,其中 (1) 是 Unix/Linux 中的推荐选项,而 (2) 是 Windows 中的推荐选项:

  1. 创建以下环境变量以在 TeXLive 2021 中查找新安装:
    export PATH=/usr/local/texlive/2021/bin/x86_64-linux:$PATH    
    export INFOPATH=$INFOPATH:/usr/local/texlive/2021/texmf-dist/doc/info
    export MANPATH=$MANPATH:/usr/local/texlive/2021/texmf-dist/doc/man
    

这可以添加到~/.profile打开终端时自动应用。

  1. 您可以通过更改选项让安装程序为您创建符号链接:使用o更改选项并l创建符号链接。默认位置是正确的,因此只需按enter即可使用它们。使用r返回安装菜单。
    如果由于某种原因您忽略了这一点并运行了安装程序,则可以使用以下命令追溯创建符号链接:tlmgr path add。请参阅相关文件更多细节。

当然,在某些情况下,更改其他选项可能会有所帮助。不安装文档来源树将为您节省大量 (1.8 GiB,50%) 的磁盘空间。但缺点是必须在线查找文档,而不是在本地查找。

如果你想进一步减少磁盘空间,你也可以更改安装方案或者收藏,但这会导致某些软件包默认不安装。不过,您可以稍后通过 TeX live 管理器安装它们。

i开始安装。完整安装可能需要很长时间,比如说一到三个小时(即使在相对较快的连接上)。通常,您的里程可能会有所不同,但如果在设置中选择的组件较少​​,则该过程会加快,并且稍后可以轻松安装缺少的组件。

中断:如果由于某种原因安装中断,则可能可以通过再次运行安装程序来恢复。这将提示您继续安装。如果您想从头开始安装,最好删除以下已安装的元素 +/- 主题答案中提到的可能元素如何删除与 TeX Live 相关的所有内容以便在 Ubuntu 上全新安装?

sudo rm -rf /usr/local/texlive/2021

失败:如此漫长的安装过程可能会因通信中断或其他原因而失败。在这种情况下,您可能希望重新启动安装,但这次请选择可以运行的最小配置。然后,您可以使用 安装所有缺少的组件sudo tlmgr --gui

完成安装

如果一切顺利,所有与 TeX 相关的命令都应该可以工作。通过检查 的输出来验证这一点which tex,它应该是/usr/local/bin/tex

假包裹

现在 TeX Live 可以工作了,但还需要让 Ubuntu 认为您已经安装了 TeX Live。这可以通过以下软件包完成equivs

sudo apt install equivs --no-install-recommends freeglut3
mkdir -p /tmp/tl-equivs && cd /tmp/tl-equivs
equivs-control texlive-local

注意:如果您的/tmp安装带有noexec标志,则构建将失败,如下所述这里/tmp。在这种情况下,您可以使用另一个目录来代替。

然后,您必须编辑texlive-local。为此,请使用提供的文件这里与您正在安装的版本相对应。例如,对于 2020,使用:

wget -O texlive-local https://tug.org/texlive/files/debian-equivs-2021-ex.txt

有关所需编辑的更多信息,请参阅TeX Live Debian 指南

现在您可以构建包并安装它(.deb在下面的第一个命令中创建的确切名称;您也可以使用制表符自动完成):

equivs-build texlive-local
sudo dpkg -i texlive-local_2021-1_all.deb
sudo apt install -f

此后,通过软件包维护者安装将不会再安装 TeX Live。您可以通过安装 TeX 相关的软件包(如 、或)texworks来检查是否确实如此。texworkstexstudioqtikzkile

字体

如果您想要安装所有 OpenType 和 TrueType 字体,以便在其他程序中也可以使用它们,则必须将 TeX Live 字体添加到系统配置中:

sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
gedit admin:///etc/fonts/conf.d/09-texlive.conf

删除包含并保存的行type1。现在运行:

sudo fc-cache -fsv

更新

如果您已从 CD、DVD 或 ISO 映像安装,则应将安装更新为所有软件包的最新版本。为此,请运行以下两个命令:

sudo tlmgr update --self
sudo tlmgr update --all

从现在开始,您可以通过具有 GUI 界面的 TeX Live Manager 更新 TeX Live:

sudo tlmgr --gui

它可能会抱怨缺少“Tk”,这可以通过安装解决perl-tk

sudo apt install perl-tk --no-install-recommends

启动器

您还可以为您的桌面环境创建一个启动器:

mkdir -p ~/.local/share/applications
cat > ~/.local/share/applications/tlmgr.desktop << EOF
[Desktop Entry]
Version=1.0
Name=TeX Live Manager
Comment=Manage TeX Live packages
GenericName=Package Manager
Exec=pkexec /usr/local/texlive/2021/bin/x86_64-linux/tlmgr --gui
Terminal=false
Type=Application
Icon=system-software-update
EOF

您可能需要注销并重新登录才能使更改生效。

笔记:如果$XDG_DATA_HOME设置了变量,则使用该变量的值而不是~/.local/share/applications。也可以用于/usr/share/applications系统范围的启动器。

升级到下一代 TeX Live

要升级,您需要再次下载并运行安装程序。不要忘记让安装程序创建符号链接。

再次运行字体部分可能也是个好主意。您可以通过运行以下命令删除旧发行版(例如):

sudo rm -rf /usr/local/texlive/2019
sudo rm -rf /usr/local/texlive/2020

卸载 TeX Live

要彻底删除 TeX Live,您需要撤消所做的所有操作:

参考文献和来源

答案3

我编写了一个脚本,可以自动执行 Silex 的回答,还可以(可选)执行更多操作。它支持 Ubuntu 12.04 到当前版本。

下载install-tl-ubuntu并运行它

sudo ./install-tl-ubuntu

要下载该脚本,请运行

wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/install-tl-ubuntu && chmod +x ./install-tl-ubuntu

下面我列出了GitHub 存储库

  • 安装 TeX Live 2013
    • 自动寻找最快的存储库
    • 提供安装的最新进度
    • 如果安装失败则自动重启
  • tlmgr然后可以用来保持你的安装是最新的
  • 通知apt以便 apt 不会尝试将 Ubuntutexlive-* 软件包作为依赖项进行安装(例如,如果您这样做sudo apt-get install lyx
  • 链接到 Ubuntu 安装 TeX 文件的文件夹,这样当你安装带有 LaTeX 文件的 Ubuntu 软件包(例如 FoilTeX 和 noweb)时,它们将可用
  • 添加 TeX Live 字体以供全系统使用
  • 其他与字体相关的便利
    • 告诉 AppArmor 允许 Evince 访问 TeX Live 字体
    • 可以安装用户提供的 TrueType 字体(--truetype-dir
    • 可以安装 IvriTeX 希伯来字体(--hebrew
  • 可选择安装 TeX Live 2013 中未包含的常见期刊的附加 LaTeX 文件 ( --more-tex)
  • 非交互方式工作,因此可以添加到批量安装脚本中
  • tlmgr可以从桌面菜单运行(如果安装了“gksu”包)
  • 可以通过 ISO 文件安装 (- -iso)

有关详细信息,请参阅

./install-tl-ubuntu --help

答案4

编辑前请三思!请不要以特定于发行版的方式编辑此答案。虽然这个问题专门针对 Debian/Ubuntu 系统,但它可以向 GNU/Linux 用户提供更普遍的信息。你的系统可能不是他们工作的方式全部GNU/Linux 系统 - 甚至不是所有基于 Debian 的系统。

注意上游推荐不是以 root 身份安装。以 root 身份安装会带来一定风险,而且没有任何好处。

请注意,我信任 TeX Live 的负责人。但是,我有理由相信他们是会犯错的,而且无论他们多么能干、多么善意,他们都会犯错。此外,服务器会被黑客入侵,下载会被破坏或拦截。基本上,糟糕的事情都会发生。

关键在于使用 root 权限安装没有任何好处。它只会增加安全风险。尽管它可能很小,但我认为没有理由接受它。

可以以普通用户身份安装和管理安装。但是,这只能保护您的系统目录。您的主目录(您可能在其中保存所有个人文件和项目)仍然暴露在外。幸运的是,它/home也很容易保护。

如果您想遵循上游的建议,那么,我是这样做的......

设置专门的用户/组并为其创建合适的主页

这是唯一需要 root 权限的部分。

以下是适用于大多数 GNU/Linux 发行版的通用说明。如果您使用的是基于 Debian 的系统或其他具有该adduser脚本的发行版,请参阅下面的说明以了解更简单的方法。否则,请使用useradd以下命令。

通用 GNU/Linux 发行版:useradd

sudo useradd -d /usr/local/texlive -m -r -U -s /bin/sh texlive

这将创建一个新用户,texlive作为新组的成员。它为texlive创建一个主目录。texlive/usr/local/texlive

如果你之前已经从上游安装了 TeX Live,请忽略-m上述命令中的标志。相反,在创建新用户后,请执行以下操作:

sudo chown -Rh texlive:texlive /usr/local/texlive

请务必设置密码:

sudo passwd texlive

系统会要求您选择并确认密码。请注意,您输入的内容根本不会显示在屏幕上。只需输入密码并按回车键即可。然后执行相同操作进行确认。

如果您愿意,可以为用户/组选择其他名称,只要它在系统上是唯一的即可。假设您想使用tladmin:tladmin,那么您需要

sudo useradd -d /usr/local/texlive -m -r -U -s /bin/sh tladmin
sudo passwd tladmin

或者,如果你之前已经以其他用户身份安装了 TeX Live,请省略该-m标志并添加

sudo chown -Rh tladmin:tladmin /usr/local/texlive

下文中,<username for texlive>表示用户名,group of texlive>表示组。因此,在我们的示例中, 都是texlivetladmin

基于 Debian 的发行版:adduser

如果你正在使用 Debian 或 Debian 衍生版本,那么根据这个问题并给出安德鲁·卡什纳的经历,你也许应该使用adduser而不是useradd。根据 Andrew 的说法:

sudo adduser texlive

或者,如果你想使用不同的用户名,例如tladmin

sudo adduser tladmin

就足够了,但请注意,这将创建一个额外的目录/home/texlive,或者/home/tladminuseradd方法不会创建。在这种情况下,<username for texlive>的主页将/home/<username for texlive>不是 /usr/local/texlive。此外,<username for texlive>的主要组将取决于系统的默认值:您可能会得到<username for texlive>:<username for texlive>(例如texlive:texlivetladmin:tladmin)或者您可能会得到<username for texlive>:staff(例如texlive:stafftladmin:staff)或<username for texlive>:users(例如texlive:userstladmin:users)。您可以使用

groups <username for texlive>

发现<username for texlive>被分配到哪个组。例如,使用

groups texlive

iftexlive是您添加的用户的名称,或者

groups tladmin

为了tladmin

如果结果包含<username for texlive>(例如texlivetladmin),则在下文中使用此组。否则,您可能只会列出一个组 egusers并应使用该组。在下文中,我将调用此组<group of texlive>并用 表示您正在使用的用户名<username for texlive>。如果您之前没有从上游安装过:

sudo mkdir -p /usr/local/texlive
sudo chown -Rh <username for texlive>:<group of texlive> /usr/local/texlive

如果你之前已经从上游安装过,那么只需:

sudo chown -Rh <username for texlive>:<group of texlive> /usr/local/texlive

安装前切换到新用户

现在登录为<username for texlive>

su -l <username for texlive>

输入密码后,您将进入<username for texlive>的主目录。也就是说,您将进入/usr/local/texlive。(如果您使用了上面的 Debian 方法,cd /usr/local/texlive请从主目录移动。)

现在按照 Silex 的说明进行操作,但省略所有出现的sudo。 你不需要它们。

请注意,此方法不仅可以保护您的系统目录,它还可以保护你的家<username for texlive>用户无法写入您的正常主目录。因此,即使有人搞砸了,安装程序试图删除您的所有文档,它也不会被允许这样做。事实上,如果您遇到任何权限错误,那将是一个危险信号。安装程序不应该接触任何外部内容/usr/local/texlive

后期护理:何时使用根

您需要sudo安装伪软件包并将 TeX Live 的字体集成到系统配置中。这是因为这些步骤涉及系统目录。伪软件包会为系统安装,而字体配置则涉及更改中的文件/etc。所有这些都需要 root 权限。

维护:更新您的安装

当您准备好更新 TeX Live 时,只需<username for texlive>在运行更新之前登录即可:

su -l <username for texlive>
# give the password
tlmgr update --all

不是使用sudo或切换到 root。重点是tlmgr作为无特权用户并且不能触碰您的主目录或系统目录。

一般来说,如果你想要更改 下的任何内容/usr/local/texlivesu <username for texlive>则必须先进行更改。如果你想要在/etc或 下执行某些操作/opt,则需要 root 权限(sudo或类似权限)。


松散相关的笔记

在 中使用单个配置文件/etc似乎已经过时了。如果您发现/etc/environment未设置PATH,则它可能在其他地方。例如,在某些系统上,PATH已在 中设置,并且应通过为 shell(例如或 )/etc/profile添加名为 的文件来扩展它:/etc/profile.d/texmf.shshbash

# /etc/profile.d/texlive.sh 
if [ $UID != 0 ]
then
        [ -d "<path to binaries>" ] && export PATH="<path to binaries>:${PATH}"
fi

这样可以避免自动将 TeX Live 二进制文件添加到 root 中PATH。为了避免在安装新版本的 TeX Live 时需要调整此文件,您可以使用符号链接系统。

cd /usr/local/texlive
ln -s <YYYY>/bin/x86_64-linux bin.<YYYY>
ln -s <YYYY> current.<YYYY>
ln -s bin.<YYYY> bin
ln -s current.<YYYY> current

然后/etc/profile.d/texmf.sh可以包含

# /etc/profile.d/texlive.sh 
if [ $UID != 0 ]
then
        [ -d "/usr/local/texlive/bin" ] && export PATH="/usr/local/texlive/bin:${PATH}"
fi

PATH将被设置为自动包含当前二进制文件。当您安装新版本的 TeX Live 时,只需添加更多链接(每个版本 2 个)并调整currentbin链接以指向您想要激活的任何版本。这一切都可以按 完成<username for texlive>,无需 root 权限。(也就是说,必须使用 root 权限创建.sh中的文件/etc/profile.d,但在安装或激活新版本的 TeX Live 时无需触碰此文件。)

相关内容