将 ghostscript 从 apt 或 aptitute 降级

将 ghostscript 从 apt 或 aptitute 降级

我最近安装了 Ubuntu 18.04(不是升级,而是全新安装)。在 Ubuntu 18.04 中,Inkscape 中的渲染 LaTeX 功能不起作用。以下是错误输出:

*** WARNING - the DELAYBIND command has been deprecated, and will be

           removed in the next version. For now you can restore

           the behaviour by using -dREALLYDEALYBIND but if you

           require continued use of this command you should contact

           the Ghostscript developers. Commercial customers of

           Artifex should email their support contact, free users

           are encouraged to talk to us on the #ghostscript IRC

           channel on irc.freenode.net.



Unrecoverable error: undefined in DELAYBIND

PostScript/PDF Interpreter finished. Return status 65280 executed command : /usr/bin/gs -q -dDELAYBIND -dWRITESYSTEMDICT -dNODISPLAY -dNOEPS "/tmp/psin5eNNQ0"

The interpreter seems to have failed, cannot proceed !

Traceback (most recent call last):
  File "eqtexsvg.py", line 160, in <module>
    e.affect()
  File "/usr/share/inkscape/extensions/inkex.py", line 283, in affect
    self.effect()
  File "eqtexsvg.py", line 154, in effect
    svg_open(self, svg_file)
  File "eqtexsvg.py", line 81, in svg_open
    doc = inkex.etree.parse(filename)
  File "src/lxml/etree.pyx", line 3426, in lxml.etree.parse
  File "src/lxml/parser.pxi", line 1839, in lxml.etree._parseDocument
  File "src/lxml/parser.pxi", line 1865, in lxml.etree._parseDocumentFromURL
  File "src/lxml/parser.pxi", line 1769, in lxml.etree._parseDocFromFile
  File "src/lxml/parser.pxi", line 1162, in lxml.etree._BaseParser._parseDocFromFile
  File "src/lxml/parser.pxi", line 600, in lxml.etree._ParserContext._handleParseResultDoc
  File "src/lxml/parser.pxi", line 710, in lxml.etree._handleParseResult
  File "src/lxml/parser.pxi", line 639, in lxml.etree._raiseParseError
  File "/tmp/inkscape-Y11679/eq.svg", line 1
lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1

从谷歌搜索中,我发现问题是由于 ghostscript 引起的。扩展Render>LaTeX实际上调用了pstoeditwhich ,然后调用ghostscript使用DELAYBIND标志将 转换为LaTeXSVG但在较新版本的ghostscript标志DELAYBIND已弃用。解决办法是降级ghostscript到9.20或以下版本。以下是我尝试过降级ghostscript但没有成功的方法。

将 ghostscript 从 apt 或 aptitute 降级

我尝试ghostrict使用以下命令降级。

sudo aptitude install ghostscript=9.18~dfsg~0-0ubuntu2

或者使用

sudo apt install ghostscript=9.18~dfsg~0-0ubuntu2

我得到以下输出

Unable to find a version "9.18~dfsg~0-0ubuntu2" for the package "ghostscript"

或者

E: Version '9.18~dfsg~0-0ubuntu2' for 'ghostscript' was not found

我试过其他版本,比如 ghost script 9.20。但都不起作用。

从 ghostscript 网站安装:

我已经ghostscriptghostscript website,并使用以下命令安装

sudo ./configure
sudo make
sudo make install

看起来安装已经完成,但如果我运行命令

ghostscript  --version

显示的版本为 9.22。

我能找到的所有在线解决方案都指向降级ghostscript。但我不知道如何在 Ubuntu 18.04 中执行此操作。

有什么解决办法吗?

答案1

假设你使用 Latex Inkscape 插件,tex文本,它除了 ghostscript+pstoedit 之外还支持 pdf2svg。因此,在 Ubuntu 18.04 的情况下,安装 pdf2svg 可以解决问题

sudo apt install pdf2svg

它适用于我的 Ubuntu 18.04、InkScape 0.92。

答案2

在这个特定情况下,从源代码构建 pstoedit 并不能解决问题,因为默认情况下不包含 svg 后端(如上所述)。因此,我建议将 ghostscript 更新到版本 9.23。

下载并解压 ghostscript 源代码 tarball 后,https://www.ghostscript.com/download/gsdnld.html进入源码目录,执行以下三条命令:

./configure --prefix=/usr
make
sudo make install

这只是覆盖了现有的 ghostscript 版本,然后就不需要摆弄依赖关系了。

如果你在其他地方遇到由于新 gs 版本而导致的问题,你可以通过以下方式轻松切换回来

sudo apt-get install ghostscript --reinstall

此解决方案的缺点是系统安装的 ghostscript 安全更新将覆盖您的安装,您需要重新安装。但是,只要没有可用的预构建二进制文件,这可能是第一个解决方法

答案3

使用 pstoedit 将 EPS 转换为 DXF 文件时遇到了同样的问题。无需降级 ghostscript!

最简单的解决方案

  1. 升级 pstoedit
  2. 使用标志运行 pstoedit -rdb

一步步

  1. 删除 Ubuntu 当前的 pstoedit:
    • sudo apt-get remove pstoedit
  2. 下载最新的 pstoedit:
  3. 安装新的 pstoedit:

    • 在终端中打开解压的文件夹(右键单击文件夹→在终端中打开)
    • 跑步:

      ./configure
      make
      sudo make install
      
  4. 使用 -rdb 标志运行:

    • 现在,当您运行 pstoedit 时,添加-rdb标志。
    • 例如: pstoedit -dt -f dxf:-polyaslines "input-file.eps" -rdb "output-file.dxf"
    • 此标志告诉 pstoedit 使用新的“强制”选项使 ghostscript 接受 delaybind 命令。发行说明警告说,这只能对受信任的文件进行,因为它可能会带来安全漏洞。

答案4

9.18 版本位于 xenial (16.04) 档案中。如果要安装它,您必须将 xenial 存储库添加到您的sources.list文件中:

sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe"

然后你就可以看到可用的版本了apt-cache madison ghostscript

ghostscript | 9.18~dfsg~0-0ubuntu2 | http://archive.ubuntu.com/ubuntu xenial/main amd64 软件包

并安装sudo apt-get install ghostscript=9.18~dfsg~0-0ubuntu2

相关内容