我最近将我认为是 TeX Live 2013 的东西从 Debian testing/unstable 移植到了 Debian wheezy。版本号是2013.20140314-1
。这不再是 Debian 中最新的版本;现在有2013.20140408-1
。这并非毫无困难,但那是另一回事。至少,我以为我已经将它移植了,但结果发现我忽略了一些东西。
当我安装该texlive-bibtex-extra
软件包(其中包含 biblatex LaTeX 软件包)时,我发现还需要 biber 1.8。这是不稳定的,所以我试图将其反向移植。这就是问题所在。由于我不清楚的原因,biber 需要 Perl 5.16。根据佩尔希斯,5.16 于 2012 年 5 月发布,所以相对较新。
不幸的是,Debian wheezy 使用 Perl 5.14。一般来说,更新像 Perl 这样的系统基本组件并不是一个好主意,所以我没有尝试这样做,尽管这样做可能无害;我不知道。无论如何,我发现我现在陷入困境。我可能不得不退回到为 wheezy 打包的 TeX Live 2012,这会很烦人。
有人能提出解决方案或解决方法吗?我知道可以本地安装 TeX Live,但这样不会遇到同样的问题吗?除非有人要包含一个 Perl 的本地副本专门用于此目的。另一个模糊的可能性似乎是以某种方式将 perl 与程序捆绑在一起,也许是通过某种形式的静态链接?
Biber README 说
您不需要安装 Perl,而是使用 biber——通过主要的 TeX 发行版(TeXLive、MacTeX、MiKTeX)以及通过从 SourceForge 下载,为许多操作系统提供二进制文件。
您只需安装 Perl 即可在下列情况下使用 biber:
- 您的操作系统/平台没有可用的二进制版本 * 您希望在将所有最新的 git 提交打包成二进制文件之前跟上它们。
当我构建并安装 Debian 二进制 Biber 包时,它仍然抱怨 5.16 可用,所以我不确定这里的二进制文件是什么意思。
答案1
目前最好的解决方案是安装 vanilla TeX Live,如本网站有答案以及官方说明。
我认为有些混淆。一般来说,建造二进制文件以及需要什么使用biber
它。的文档中的引文是说perl
不需要使用预先构建的二进制文件。但是,当您尝试构建 backports 包时,您正在尝试建造二进制文件,perl
看来这就是需要 5.16 的原因。
例如,您可以从 Sourceforge 获取二进制文件。但是,您需要确保获取的版本biber
适合您所拥有的版本biblatex
。此外,每次更新反向移植的软件包时,您都需要重新反向移植和重新检查等。
相比之下,如果您安装 vanilla TeX Live,则可以保持所有内容的最新状态,tlmgr
而无需编译任何内容。至少可以说,这非常好。它还避免了在 Debian 生态系统中试图弄清楚哪个包包含什么的大量麻烦。(这并不是对 Debian 打包的批评,但如果您基本上想要所有的 TeX Live,那么直接安装它会更简单。)
我认为,如果有人对他们的发行版提供的 TL 版本感到满意,那么坚持使用它就很有意义了。但是一旦你对它不满意,在我看来,原始 TL 比其他选择更有意义。它更简单、更易于维护、更透明、更干净。它还允许您以非特权用户身份安装 TeX Live,这是上游推荐的。(注意:除了我之外,几乎没有人这样做,但作为我,我认为这是一个优势。)
答案2
因此,我使用了以下解决方法。我从以下网站下载了 biber-linux_x86_64.tar.gz http://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/1.8/binaries/Linux/biber-linux_x86_64.tar.gz/download。
这会解压为一个名为 的可执行文件biber
。Biber 文档告诉我,他们使用 PAR::Packer 来构建此可执行文件。显然,这会将 Perl 解释器与其他所需文件一起打包到其中。
我已将此可执行文件放在 中/usr/local/bin
。由于 Debian TeX 维护者以其无穷的智慧选择不让 texlive-bibtex-extra 依赖于 biber(它甚至不是推荐或建议),所以我不需要做任何其他事情。我对此进行了测试,它确实有效。
我不太喜欢这个解决方案,但我可以接受它。如果我想成为二进制 Debian 软件包纯粹主义者,我可以为这个单个可执行文件构建一个 Debian 软件包,但这似乎不值得。或者,更进一步,我可以构建一个“适当的”Debian 软件包,使用 Biber 源中的 PAR::Packer 编译这个可执行文件,但这似乎更不值得,因为它不仅需要从头开始编写打包,而且如果没有一些额外的软件包,也无法在 Wheezy 上构建。
感谢@cfr 的有益建议。