visual-studio-code - 配方因致命错误而终止:spawn latexmk ENOENT
问题描述
我刚刚安装了 debian 10 和 vscode。我已经为此苦苦挣扎了 3 天。我使用以下命令从终端安装了 texlive:
sudo apt install texlive
然后我在 vscode 中安装了 Latex Workshop 扩展并尝试构建一个.tex
文件。弹出以下错误:
Recipe terminated with fatal error: spawn latexmk ENOENT.
然后我之前从终端安装了latexmk:
sudo apt install latexmk
之后同样的错误不断出现。输出显示了这一点。
[14:59:34] Recipe step env: {}
[14:59:34] cwd: /home/phoenix/Documents/stellies/year4/2021/s&s-414/pracs/prac-4/report
[14:59:34] LaTeX build process spawned. PID: undefined.
[14:59:35] LaTeX fatal error: spawn latexmk ENOENT, . PID: undefined.
[14:59:35] Does the executable exist? PATH: /app/bin:/usr/bin:/home/phoenix/.var/app/com.visualstudio.code-oss/data/node/bin:/home/phoenix/.var/app/com.visualstudio.code-oss/data/cargo/bin:/home/phoenix/.var/app/com.visualstudio.code-oss/data/python/bin
[14:59:35] The environment variable $SHELL: /bin/sh
然后我开始查看 texlive 网站。我注意到我没有设置路径变量来包含 texlive 二进制文件。texlive 网站给出了二进制文件的以下路径:PATH=/usr/local/texlive/2021/bin/x86_64-linux:$PATH
但是/usr/local/texlive
由于某种原因在我的系统上不存在。我在哪里可以找到 Debian 10 上 texlive 二进制文件的正确路径?
解决方案
我有同样的问题。根本原因是:(1) PATH 中缺少软件的 bin 文件夹;(2)坏文件权限。因此,VSC 无法访问latexmk
,这解释了错误消息。
就我而言,问题发生在 Mac 上,特别是在我安装 MacTex 之后,MacTex 又安装了 Tex Live。我相信同样的解决方案也可能适用于 linux 发行版。
解决方案:
/usr/local/texlive
在文件夹:下声明文件所有权(最初是根)sudo chown -R <username> /usr/local/texlive
,其中<username>
是操作系统级别的用户名。该修复程序适用于该特定用户。如果还不够,请尝试适当地设置组所有者,和/或考虑第 3 步。添加
/usr/local/texlive/2021/bin/<software_dialect>
到路径。<software_dialect>
取决于安装的软件版本:在我的情况下是universal-darwin
;在 linux 上可能是x86_64-linux
.如果问题仍然存在,请尝试在
/usr/local/texlive
using下更改文件访问权限chmod
。
编辑:作为最后一步,重新启动 VSC 以使更改生效。
推荐阅读
- machine-learning - 使用 StanfordNERTagger 获取错误'super(type, obj): obj must be an instance or subtype of type'
- python - 熊猫合并101
- c++ - 对于具有 ES_RIGHT 样式的多行编辑框,WM_SETTEXT 花费的时间太长
- php - 无法将会话存储为文件
- c# - 从视图中的 onclick 调用 razor 方法
- python - 具有多列的groupby,在熊猫中具有添加和频率计数
- hamming-code - 整个互联网上是否有任何地方可以从中复制/粘贴 Hamming(8,4) 表?
- javascript - 使用 AGM-MAPS + Angular 5 平滑过渡移动标记
- magento - Magento 2.3 在本地主机中无法正常工作
- tensorflow - 训练后如何获得单个测试实例的嵌入表示