如何在 Fedora 中安装 TeX Live – 鸭子的快速指南

如何在 Fedora 中安装 TeX Live – 鸭子的快速指南

Fedora 提供了非常好的 texlive 封装。但是,我认为最好直接使用 ./install-tl 命令安装 texlive。我之前曾使用这个指南在 Ubuntu 系统上直接安装过 texlive:

如何在 Debian 或 Ubuntu 上安装“原始” TeXLive?

(感谢 Torbjørn T 提供完整的指南)。

现在,我正在使用 Fedora 23 Workstation。有没有办法在 Fedora 23 上直接安装 texlive?是否有任何假软件包可以让 Fedora 认为我们已经安装了 texlive,即类似于 Debian 上的 equivs 软件包?

答案1

鸭子

如何在 Fedora 中安装 TeX Live – 鸭子的快速指南

在制作本指南的过程中没有鸭子受到伤害。

步骤1:获取TUG 的官方 Unix 安装程序。如果要直接使用终端,请打开它并输入:

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

第二步:是时候解压安装程序并运行它了!就我个人而言,我喜欢命令行,因此在终端中,转到下载的目录install-tl-unx.tar.gz并输入:

$ tar xvzf install-tl-unx.tar.gz

您将获得一个名为 的目录install-tl-<build date>,其中的<build date>日期指的是最新安装程序版本(您的里程可能会有所不同)。让我们深入研究安装,因此请输入:

$ cd install-tl-*
$ sudo ./install-tl

安装程序将出现在您的终端屏幕上:

< verbose output, suppresed here because it is too complex for ducks >

 <O> options:
   [ ] use letter size instead of A4 by default
   [X] allow execution of restricted list of programs via \write18
   [X] create all format files
   [X] install macro/font doc tree
   [X] install macro/font source tree
   [ ] create symlinks to standard directories

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <H> help
 <Q> quit

Enter command: 

现在,只需选择I并等待安装完成。

第三步:让我们添加一个指向 TeX Live 二进制目录的符号链接!打开终端并输入以下内容:

$ sudo ln -s /usr/local/texlive/<year>/bin/<arch> /opt/texbin

请用正确的年份和架构替换<year><arch>。就我而言,我会运行:

$ sudo ln -s /usr/local/texlive/2016/bin/x86_64-linux /opt/texbin

现在,我们可以通过提供符号引用来引用 TeX Live 二进制文件/opt/texbin。安装新版本时,只需简单地更新符号链接即可,一切准备就绪。

第四步:在你的终端中输入以下内容:

$ gedit texlive.sh

GEdit 编辑器将出现一个名为 的空白文档texlive.sh。复制并粘贴以下文本(由埃格尔):

#!/bin/bash
pathmunge () {
    if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
        if [ "$2" = "after" ] ; then
            PATH=$PATH:$1
        else
            PATH=$1:$PATH
        fi
    fi
}
pathmunge /opt/texbin
unset pathmunge

在 GEdit 中保存文件并关闭它。您将返回到终端屏幕。现在输入:

$ sudo mv texlive.sh /etc/profile.d/

此脚本可确保该/opt/texbin条目位于您的路径中,在任何其他条目之前。运行命令后,关闭终端并再次打开(这很重要)。现在,尝试运行:

$ which pdflatex
/opt/texbin/pdflatex

如果您获得如上所示的输出,则一切都设置完美!

第五步:现在,让我们从 TeX Live 配置 OpenType 字体。打开终端并输入:

$ sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
$ sudo fc-cache -fsv

等待几秒钟(或几分钟),我们就完成了!

祝您使用 TeX Live 和 Fedora 愉快!

答案2

这是我根据一些笔记改编的联邦法规Silke 的答案如何在 Debian 或 Ubuntu 上安装“原始” TeXLive?。其中大部分内容都是逐字逐句地取自这些答案,其他我不感兴趣的内容也都描述在那里。

这个答案解释了如何使用专用用户帐户安装和维护 TeX Live,以避免对系统目录和主目录造成潜在风险,以及如何使用虚假包让包管理器知道依赖关系已得到满足,并且不需要从发行版的存储库中提取 TeX Live。


1)设置专门的用户/组并为 TeX Live 创建合适的主页

此方法保护您的系统目录您的主目录。tladmin用户无法写入您的正常主目录。

笔记:

  • 其中,虚假包的设置PATH和安装是唯一需要 root 权限的部分;
  • 一般来说,如果你想要更改 下的任何内容/usr/local/texlivesu - tladmin请先进行更改。如果你想要在用户主目录之外执行某些操作(例如,在 中/etc),则需要 root 权限(sudo 或类似权限)。

1.1)创建用户

笔记:如果您之前已使用 TUG 安装程序安装了 TeX Live,请-m从以下命令中省略该标志。

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

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

如果您之前已经从上游安装了 TeX Live,那么在创建新用户后,请执行以下操作:

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

为新用户设置密码

sudo passwd tladmin

1.2)在登录屏幕上隐藏新用户的名称

打开/var/lib/AccountsService/users/tladmin(如果需要则创建)

sudo vim /var/lib/AccountsService/users/tladmin

如果文件已经存在,请确保有以下行

SystemAccount=true

在该[User]部分下。否则,只需在其中写入以下两行:

[User]
SystemAccount=true

2)安装

登录身份tladmin

su - tladmin

然后下载并运行安装程序:

wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar xvfz install-tl-unx.tar.gz
rm -i install-tl-unx.tar.gz
cd install-tl-... *press TAB*
./install-tl

该命令./install-tl启动安装过程。您可以在那里更改所有类型的选项。大多数默认设置都是合理的,但请考虑不安装文档和源树将为您节省大量磁盘空间(约 50%)。这样做的缺点是必须在线查找文档,而不是在本地查找。如果您想进一步减少磁盘空间,您还可以更改安装方案或集合,但这会导致默认情况下不安装某些包。但是,您可以稍后通过 TeX Live 管理器安装它们。我个人唯一想更改的是 TEXMFHOME 的位置,使用 in 而~/.texmf不是 default ~/texmf,使其隐藏。

设置完选项后,按i开始安装。完整安装可能需要很长时间,即使连接良好也需要大约一个小时。

安装完成后,您可以删除包含安装文件的目录:

rm -rf /usr/local/texlive/install-tl- *hit TAB*

中断

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

rm -rf /usr/local/texlive/2019

失败

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

3)设置PATH

注意:在 [1-1] 有关于如何/etc/profile.d/texmf.sh在安装新版本的 TeX Live 时避免使用符号链接系统进行调整的说明。

现在您需要将 TeX Live 的可执行文件目录添加到,PATH以便系统在您发出命令时可以找到它们。

以普通用户身份登录(以便能够使用sudo

su - <your user>

打开或创建文件/etc/profile.d/texlive.sh

sudo vim /etc/profile.d/texlive.sh

并写下

# /etc/profile.d/texlive.sh

TeX_dir="/usr/local/texlive/2019"

if [[ $UID != 0 && -d $TeX_dir/bin/x86_64-linux ]]; then
  case ":$PATH:" in
    *":$TeX_dir/bin/x86_64-linux:"*) :;;                 # already there
    *) PATH="${PATH:+$PATH:}$TeX_dir/bin/x86_64-linux";; # add it
  esac
fi

unset TeX_dir

这样可以避免自动将 TeX Live 二进制文件添加到 root 的 PATH 中,就像在 中设置的那样/etc/environment。它还可以避免将 TeX Live 二进制文件的目录两次添加到PATH 3-4(“带有 .sh 扩展名的文件在/etc/profile.d都会被执行,并且当桌面会话加载时,显示管理器也会执行这些文件。”)3-1。显然,它们也会在非登录 Bash 进入时运行(将一个添加echo到脚本并打开一个终端进行尝试),这会将 TeX Live 的目录PATH第二次附加到该脚本中。)

注销,然后重新登录。

笔记:

  • Fedora 不使用MANPATH环境变量来了解在哪里查找手册页。最后,man tlmgr例如,即使没有设置MANPATH。另请参阅3-5
  • 我无法让独立的 Info 找到 TeX Live 手册。显然 Fedora 既不使用 TeX Live 手册,INFOPATH也没有找到关于它实际使用内容的任何文档。您可以通过将其添加(add-to-list 'Info-additional-directory-list (car (last (file-expand-wildcards "/usr/local/texlive/20*/texmf-dist/doc/info"))))到 Emacs 初始化文件中来让 Emacs 找到这些手册,但对于独立的 Info,我只会在 Fedora 论坛上留下一个未解决的问题的链接:如何更改 INFOPATH,可能仅限于用户范围?

4)伪造包裹

您需要安装一个虚拟包,以满足 TUG 安装程序安装的 TeX Live 组件的依赖关系。否则,安装需要这些组件的软件会texlive-*疯狂地拉下软件包(请参阅 [4-3])。

使用 [ 中列出的适当软件包4-1]. 对于 Fedora 30 上的 TeX Live 2019,为 RHEL7 制作的版本 [4-2] 可以完成这项工作。

解压档案并运行

sudo dnf install /path/to/texlive-dummy[…].rpm

然后您应该能够安装另一个依赖于 TeX 的包,而无需下载大量的依赖项。

其他虚拟软件包来源(我还没有测试过)有

5)测试

注意:无论哪个用户运行以下命令都应该有效,除了tlmgr需要以 身份运行的命令之外tladmin

如果一切顺利,所有与 TeX 相关的命令都应该可以工作。通过检查

which tex

应该是

/usr/local/texlive/2019/bin/x86_64-linux/tex

上次我安装 TeX Live(Fedora 30 上的 v. 2019)失败了,因为中which tex的测试返回了 false。检查中的目录权限/etc/profile.d/texlive.sh[[ -d $TeX_dir/bin/x86_64-linux ]]/usr/local/

ls -l /usr/local/

可能texlive具有rwx------( 700) 权限。如果是这种情况,请运行

sudo chmod 755 /usr/local/texlive/

来修复这个问题。

尝试一些其他命令

man tlmgr
info tlmgr
tlmgr --version
pdflatex --version
biber --version

我上次安装 TeX Live 时遇到的另一个问题是 Biber 引发此错误:

biber: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory

安装后libnsl再次抱怨:

biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory

你可以找到哪些软件包提供了缺失的文件

dnf provides libnsl.so.1
dnf provides libcrypt.so.1

然后安装它们:

sudo dnf install libnsl libxcrypt-compat

6) 让你的类、包和输入文件可供 TeX Live 使用

如果您有个人类、包或输入文件,请将它们放入~/<your setting for TEXMFHOME>/tex/latex/(您可能需要创建它)。如果您想将它们存储在其他地方,可以使用符号链接。

注意:可以使用 just\input{filename}而不是 来加载本地 texmf 树中的文件\input{path/to/file}

7)getnonfreefonts

由于许可问题,某些字体未随 TeX Live 安装程序分发。您必须使用单独的脚本getnonfreefonts来安装它们。

笔记:不要getnonfreefonts带着--user标志运行。它会导致问题,因为它会执行updmap(请参阅 [7-2])。

su - tladmin
wget https://tug.org/fonts/getnonfreefonts/install-getnonfreefonts
texlua install-getnonfreefonts
rm -i install-getnonfreefonts
getnonfreefonts --sys -a

检查所有字体是否已正确安装

getnonfreefonts --sys -l

如果没有,请运行

getnonfreefonts --sys -a

再次。

8) 使 TeX 字体在系统范围内可用

跑步

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

删除包含的行type1,保存,然后运行

sudo fc-cache -fsv

如果你使用 Firefox,你必须将 TeX Live 的字体目录/usr/local/texlive/2019/texmf-dist/fonts/(不要省略尾随斜杠)添加到变量中,security.sandbox.content.read_path_whitelist以便about:config浏览器使用它们 [8-1]。 (看8-2了解如何使用绑定安装以避免在每次安装时调整年份。)

9)安装 Inkscape 以使命令正常\includesvg工作

\includesvg类似于\includegraphics,但适用于 SVG 图片。它由 LaTeX 包提供svg[9-1]。

sudo dnf install inkscape

10)更新

su - tladmin
tlmgr update --self --all

不要使用 sudo 或切换到 root。关键是 tlmgr 以非特权用户身份运行,无法触及您的主目录或系统目录。


附录

I) 升级到下一个 TeX Live

要升级,您需要再次下载并运行安装程序,并更新年份/etc/profile.d/texlive.sh

您可以通过运行以下命令删除旧的发行版:

rm -rf /usr/local/texlive/<YEAR>

II)卸载 TeX Live

要彻底删除 TeX Live,你需要撤消你所做的一切 [2-1]:

III)可选内容

在 [2-1] 有进一步的指示

  • 通过 GUI 更新;
  • 为 Gnome 创建一个启动器(.desktop 文件)来启动 GUI 更新程序。

如果您想使用,tlmgr --gui您将需要 perl-Tk:

sudo dnf install perl-Tk

你可能还需要 Aspell 的词典(例如,如果你在 Emacs 中使用它),你可以使用以下命令安装它

sudo dnf install aspell-<lang1> aspell-<lang2> …

玩得开心 :-)

答案3

使用“yum install texlive”从 fedora 安装官方软件包(这样就可以安装带有 tex 依赖项的软件)从以下位置下载完整 texlive 的安装程序http://www.tug.org/texlive/acquire-netinstall.html 运行 install-tl 脚本确保安装路径为 /opt(或 /opt/texlive,如果你愿意)将 /opt/texlive/2012/bin/x86_64-Linux(使用正确的年份)添加到路径中(参见例如http://askubuntu.com/questions/60218/how-to-add-a-directory-to-my-path如果不确定如何操作)确保将其添加到 /usr/bin 之前,以便使用正确的 latex 程序,而不是 fedora 的 texlive 包中的程序。如果使用某些软件(如 texmaker)来编辑和编译 latex,请确保正确配置它以从 /opt/texlive/2012/bin/x86_64-Linux 运行 pdflatex、Biber 等。

相关内容