今天运行 MiKTeX-x86 更新后,biber
无法再调用。几年前我就发现过很多类似的问题,但这个特定的错误却从未出现过……事实上,这个错误似乎没有出现在任何地方。
运行biber
结果在包装器中出现一条消息“biber failed” miktex\bin\biber.exe
,日志文件miktex\log\biber.log
包含以下内容:
INFO biber - this process (2664) started by powershell in directory .... with command line: "C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\biber.exe"
FATAL biber.core - The program '{name}' could not be found.
FATAL biber.core - Data: engine="exe", path="executables/windows-x86/biber/biber.exe", name="biber"
FATAL biber.core - Source: Libraries\MiKTeX\Core\Session\runperl.cpp:57
根据miktex/config/package-manifests.ini
,安装的二进制文件的正确路径是texmf/biber/bin/windows-x86/biber.exe
。此文件存在,可以手动调用:
PS C:\Program Files (x86)\MiKTeX 2.9> biber\bin\windows-x86\biber.exe --help
NAME
"biber" - A bibtex replacement for users of biblatex
...
我迄今已尝试过(没有变化):
- 刷新 FNDB
- 删除 FNDB 并重新生成它
- 卸载、验证文件位置并重新安装 biber
假设 miktex 包装器是认真的path="executables/windows-x86/biber/biber.exe"
,这样的路径在任何地方都不存在,所以我并不惊讶它无法调用它。更新:可能是这个本机包的打包问题,所有其他平台做使用executables/...
。
这里发生了什么?
(为了今天能够完成任何事情,我已经用指向真实二进制文件的硬链接替换了包装器,并且这可以工作,但理想情况下我希望修复我的安装。)
附加信息:
- 软件包更新:(
babel-french cjk l3kernel l3packages lineno ltxbase miktex-misc oberdiek pdfpages platex polyglossia pstricks setspace
看不到任何相关内容) - 在管理员模式下更新,并确保始终只在“通用”根目录中安装包(自动安装程序配置为请求提升的权限)
答案1
“按预期工作”。
显然,MiKTeX 在没有通知现有安装的情况下放弃了对 x86 的支持。您甚至可以更新所有内容并安装新软件包,但它会随机破坏您的安装(部分)。
Github:https://github.com/MiKTeX/miktex-packaging/issues/315
是时候重新安装一切了。