尝试使用 latexmk 编译 .tex 文件时出错

尝试使用 latexmk 编译 .tex 文件时出错

我正在运行 macOS Sierra 并安装了 XCode

$ defaults read /var/db/receipts/com.apple.pkg.Xcode.plist
{
    InstallDate = "2016-09-13 19:36:06 +0000";
    InstallPrefixPath = "/";
    InstallProcessName = storedownloadd;
    PackageFileName = "Xcode.pkg";
    PackageIdentifier = "com.apple.pkg.Xcode";
    PackageVersion = "8.0.0.0.1.1472435881";
}

我正在尝试使用 latexmk 将 .tex 文件编译为 pdf,但遇到了问题setgid

$ latexmk -pdf ~/testFile.tex
Latexmk: This is Latexmk, John Collins, 22 April 2016, version: 4.45.
Insecure dependency in open while running setgid at /Library/TeX/texbin/latexmk line 2722.

我安装了 MacTex。我甚至尝试过重新下载latexmk,但问题仍未解决。

我最近从 El Capitan 升级时,不得不从头开始重新安装所有内容,但之前它运行正常。我不知道问题可能是什么。任何帮助都将不胜感激。

答案1

setgid不是一个命令——而是一个状态;与‘setuid’和‘sticky’一起的特殊文件权限。

'setuid' 可能更为人所知:如果可执行文件设置了 'setuid' 位,它将始终自动拥有拥有它的用户的权限,而不是运行它的用户的权限。(例如,这就是susudo能够执行仅限 root 的操作的方式。)

'setgid' 的工作方式相同,只不过它适用于团体该文件的所有者。然而,在这两种情况下,程序都需要格外小心,只做它应该做的事情设计以避免被用户欺骗。

错误消息 - 来自perl解释器,因为latexmk实际上是一个 Perl 脚本 - 意味着 Perl 已经注意到它正在使用 setuid/setgid 权限运行,因此拒绝执行某些操作,以防范粗心编写的脚本。

答案2

正如 @grawity 所述,问题在于脚本所需的某些文件已设置 setgid 状态latexmk。为了查找所有已设置该位的文件,我使用了以下命令

find / -perm -02000 -ls > search_out

在 OSX 上。有很多结果,但我找到了一个与 Tex 相关的。

相关内容