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/texlive
,su - 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 的包,而无需下载大量的依赖项。
其他虚拟软件包来源(我还没有测试过)有
- 如何更新虚拟 RPM 包以满足 Fedora 24 上 vim-latex 的依赖关系?
- https://copr.fedorainfracloud.org/coprs/fatka/texlive-dummy/
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]:
- 删除。如果您希望重新安装,
/usr/local/texlive/<year>
请不要删除,因为该目录是的主目录。/usr/local/texlive
tladmin
- (更激进)参见 mcbetz 的回答如何删除与 TeX Live 相关的所有内容以便在 Ubuntu 上全新安装?。
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 等。