已安装 Ghostscript 但未找到 RGhost::Config::GS[:path]='/path/to/my/gs'

Ghostscript installed but not found RGhost::Config::GS[:path]='/path/to/my/gs'

我已经尝试了几个小时来解决这个问题,我到处寻找解决方案,但没有找到。我正在尝试 运行 对我的项目进行规范测试,但出现以下错误:

RuntimeError:
 
   Ghostscript not found in your system environment (linux-gnu).
   Install it and set the variable RGhost::Config::GS[:path] with the executable.
   Example: RGhost::Config::GS[:path]='/path/to/my/gs' #unix-style
    RGhost::Config::GS[:path]="C:\gs\bin\gswin32c.exe"  #windows-style

我试着把 RGhost::Config::GS[:path]='/usr/local/bin/gs' 和它 returns:

bash: RGhost::Config::GS[:path]=/usr/local/bin/gs: No such file or directory

但是 ghostscript 已安装,我做了一切(make、sudo make install 等),当我 运行 gs -v 它 returns:

GPL Ghostscript 9.26 (2018-11-20)
Copyright (C) 2018 Artifex Software, Inc.  All rights reserved.

当我使用用户界面并在“文件”应用程序中搜索“gs”时,在 /home/marcelle/projects/ghostscript-9.26/bin/gs 中找到了它,我也尝试过:

RGhost::Config::GS[:path]='/home/marcelle/projects/ghostscript-9.26/bin/gs'

和它returns同样的错误:

bash: RGhost::Config::GS[:path]=/home/marcelle/projects/ghostscript-9.26/bin/gs: No such file or directory

我还尝试使用 autoremove 和 purge 从我的笔记本中删除 ghostscript,然后使用我之前提到的(./configure、make、sudo make install)重新安装它,重新启动笔记本、终端,但什么也没有。

PS:我正在使用 Ubuntu 20.04.

我想出了一个解决办法。寻找 Rghost 的代码,我在其规范中看到的是预期的路径与 ghostscript 的实际路径不同。 当我 运行 whereis or which 在我的终端上时,它 returns:

which gs
/usr/local/bin/gs

所以我试图指向这条路径。但是看到我在 github for Rghost 上找到的 Rghost 规范测试,我们可以看到它期望 /usr/bin/gs:

 it 'should detect linux env properly' do
    RbConfig::CONFIG.should_receive(:[]).twice.with('host_os').and_return('linux')
    File.should_receive(:exists?).with('/usr/bin/gs').and_return(true)
    RGhost::Config.config_platform
    RGhost::Config::GS[:path].should == '/usr/bin/gs'
  end

所以它期望 /usr/bin 而不是 /usr/local/bin。 然后我只是复制到那个路径和规范 运行 没有问题了:

sudo cp /usr/local/bin/gs /usr/bin

我完全没有使用 Ruby 的经验,但是我在使用 asciidoctor 时也遇到了这个错误,它使用 rghost 生成 PDF。

错误中提到的命令RGhost::Config::GS[:path]='/path/to/my/gs'不是shell命令,这就是bash无法处理的原因。然而,对我来说,也不是立即清楚如何使用这个命令。我希望有一种简单的方法可以在某处设置此变量,但找不到它。

对我有用的是搜索 rghost.rb 文件,这是设置并可以更改此变量的地方。在 Windows 中,它位于 C:\Ruby30-x64\lib\ruby\gems.0.0\gems\rghost-0.9.7\lib\rghost.rb

在这个文件中,我添加了以下行,解决了问题:

RGhost::Config::GS[:path]="C:\Program Files\gs\gs9.55.0\bin\gswin64c.exe"

注意:提到的路径可能因人而异,因此请确保使用对您的系统有效的路径。