MacOS Big Sur

MacOS Big Sur

我在 Windows 10 上安装了 Strawberry Perl 和 MiKTeX v2.9,并latexindent通过 MiKTeX 控制台安装了该包。

但是,latexindent.pl在命令提示符中运行会导致以下错误

在 @INC 中找不到 Log/Log4perl.pm(您可能需要安装 Log::Log4perl 模块)(@INC 包含:C:/Program Files/MiKTeX 2.9/scripts/latexindent C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib)位于 C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/LogFile.pm 第 22 行。BEGIN 失败 - 编译在 C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/LogFile.pm 第 22 行中止。C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/Document.pm 第 25 行的 require 中编译失败。BEGIN 失败 - 编译在 C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/Document.pm 第 25 行。在 C:\Program Files\MiKTeX 2.9\scripts\latexindent\latexindent.pl 第 27 行,需要时编译失败。BEGIN 失败 - 在 C:\Program Files\MiKTeX 2.9\scripts\latexindent\latexindent.pl 第 27 行,编译中止。

此外,这个答案无法帮助消除错误。那么,这里缺少什么?

答案1

更新:

Log4perl 是确实不再需要。请参阅评论。

原始答案

对于在 Mac 上遇到相同问题的其他用户:

通过以下方式安装 perl brew

brew install perl

用于cpan安装必要的perl软件包:

打开cpan并选择yes是否需要自动设置配置:

cpan

然后安装错误日志中提到的任何软件包,您可能需要安装并重试几次才能找出所需的所有软件包。

就我而言,这些包修复了错误消息:

install Log::Log4perl
install Log::Dispatch::File
install YAML::Tiny
install File::HomeDir

Catalina 更新

如果安装失败并出现类似权限问题的错误消息,则可能是由于 Catalina 中的安全更改造成的。在这种情况下,请尝试强制安装:

cpan -fi \
  Log::Log4perl \
  Log::Dispatch::File \
  YAML::Tiny \
  File::HomeDir \
  Unicode::GCString

答案2

感谢@Nicola评论,错误可以按如下方式修复:

  1. Log::Log4perl错误的第一行显示了缺少的模块。
  2. 打开 Win 10 开始菜单并搜索CPAN client,然后打开并运行install Log::Log4perl。但是,由于常见错误,需要通过运行强制安装force install Log::Log4perl(从CPAN 客户端)或其他 命令提示符答案给出的命令这个问题换句话说,例如,命令 cpan -f -i Log::Log4perl必须从命令提示符运行不是CPAN 客户端。
  3. 可能缺少另一个模块,其名称可以按照第一步中类似的方式识别,并以相同的方式安装。

答案3

作为版本 3.9Log4Perl模块不再由 加载latexindent.pl

所需 perl 模块的详细信息如下记录示例安装步骤如下.travis.ymlappveyor.yml

我真诚地希望这能简化工具的安装和使用。如果您能帮助改进latexindent.pl,或者有任何问题,请访问https://github.com/cmhughes/latexindent.pl

答案4

MacOS Big Sur

新的问题出现了大苏尔。这是我的解决办法。

(该解决方案假设您已经安装自制。 )

步骤 1. 安装 perl 及其包管理器

brew install perl
brew install cpanm

步骤 2. 创建符号链接MacOSX10.14.sdk

直接安装缺少的软件包将引发构建错误:

clang:警告:没有这样的 sysroot 目录:'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk'[-Wmissing-sysroot]

那是因为:

苹果决定不再以版本号来命名他们的 SDK,而是将其命名为 MacOSX.sdk,并在版本名中添加一个别名,以实现兼容性

因此我们创建符号链接此文件夹。(最近的 SDK 之间的差异很小)

> cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
> sudo ln -s MacOSX.sdk MacOSX10.14.sdk

步骤 3. 安装缺少的软件包

cpanm YAML::Tiny
cpanm File::HomeDir
cpanm Unicode::GCString
cpanm Log::Log4perl
cpanm Log::Dispatch

相关内容