这是第二次当我尝试使用 pdfwrite 在任何 PDF 文件上运行 GhostScript 时,会出现分段错误。
第一次出现这种情况的是我之前的 Ubuntu 11.04 发行版,之后我将其完全删除(不是因为 gs),格式化我的驱动器等,然后再次安装 11.04
我不知道问题出在哪里。我经常使用 GS,现在突然开始在任何文件上收到此错误,就像这个包或它的某些依赖项出了问题。
我搜索了 Synaptic 历史记录,看是否有最近的更新可能导致 GS 瘫痪,但一无所获
我过去在 GS Launchpad 分支上报告过问题(至少两次),但没有人回复,事实上,没有人在 Launchpad 上回复我发布的任何报告,所以我想完全删除 ghostscript 并安装其他版本。
起初,我想添加 Debian 稳定存储库,并安装更好的测试版本,但事实证明,在 Ubuntu 中添加 Debian 存储库可能不是一个好主意。
由于我无法“强制” Synaptic 使用某个以前的 GS 版本(因为似乎只有一个 - 有问题的版本)我不知道如何解决这个问题,想问一下如何安装以前的版本,最好是 8.71,因为这是 Debian 稳定版中的最后一个版本。
更新:
我删除了 GS 9.01(以及途中的一堆其他软件包)并听从了 Boris 的建议,因为我不知道我还能做什么。
我安装了:
libgs8_8.71~dfsg2-9_i386.deb
ghostscript_8.71~dfsg2-9_i386.deb
并测试了 GS 解释器,一切运行正常。
现在我想放回 GS 9.01 删除的所有软件包,我需要先安装ghostscript-x
:
ghostscript-x_8.71~dfsg2-9_i386.deb
问题就从这里开始:
错误:
破坏了与“gs”冲突的现有软件包“gsfonts”。
但“/home/zetah/gs/ghostscript-x_8.71~dfsg2-9_i386.deb”通过“gs、gs-afpl、gs-esp、gs-gpl”提供了它
我不想破坏一切,所以我删除了刚刚安装的libgs8
,ghostscript
并尝试删除gsfonts
包(这还删除了 abiword、gnumeric 等),然后重新安装所有包。
但我发现这gsfonts
是必需的,ghostscript
并且无论何时安装ghostscript
(因此在能够安装ghostscript-x
包之前)。
现在安装libgs8
和之后ghostscript
,当我尝试安装时,ghostscript-x
我得到:
错误:
破坏了与“gs”冲突的现有软件包“ghostscript”。
但“/home/zetah/gs/ghostscript-x_8.71~dfsg2-9_i386.deb”通过“gs、gs-afpl、gs-esp、gs-gpl”提供了它
如果我尝试使用 Launchpad 中的 Ubuntu 10.10 ghostscript 8.71 软件包,结果完全一样
答案1
作为替代解决方案 - 您可以编译旧版本的 ghostscript。
下载并解压 tar 文件
下载来自启动板的 tar 文件。
设置构建环境
sudo apt-get build-dep ghostscript-x
编译并安装 ghostscript
cd [ghostscript folder location]
sh autogen.sh
make
sudo make install
二进制文件
所有二进制文件都安装在/usr/local/bin
因此如果你运行gs -v
:
GPL Ghostscript 8.71(2010-02-10)版权所有 (C) 2010 Artifex Software, Inc. 保留所有权利。
如果您想运行,ghostscript
您可以重新分配当前的符号链接:
sudo rm /usr/bin/ghostscript
sudo ln -s /usr/local/bin/gs /usr/bin/ghostscript
答案2
这是在 Ubuntu 12.04 LTS 上尝试和测试的解决方案......
下载源码http://downloads.ghostscript.com/public/
wget http://downloads.ghostscript.com/public/ghostscript-8.71.tar.gz
解压下载的源代码并更改目录。
tar xvf ghostscript-8.71.tar.gz
cd ghostscript-8.71
配置它(我使用了所有默认设置)
./configure
开始编译
make
如果遇到以下错误:
./base/gp_unix.c:148:2: 警告:函数“gettimeofday”的隐式声明 [-Wimplicit-function-declaration] make:*[obj/gp_unix.o] 错误 1
使用编译
make XCFLAGS=-DHAVE_SYS_TIME_H=1
最后使用安装编译的二进制文件
make install
此时,ghostscript 将安装在/usr/local/bin/gs
答案3
我也在 Debian 论坛上问过这个问题:关联并在会员的帮助下达姆加德我能够毫不费力地降级 GhostScript
以下是根据 damgaard 的帖子编写的、我认为可以在类似情况下使用的更通用的方案的概述:
删除有问题的软件包(GS 9.01)后,搜索支持所需软件包的最后一个 Ubuntu 版本(GS 8.71) - 即 Ubuntu 10.10,因此它的存储库被添加到帮助文件中:/etc/apt/sources.list.d/maverick.list
调查哪些软件包受到此降级想法的影响,我们可以得到以下列表:
ghostscript ghostscript-cups ghostscript-doc ghostscript-x libgs8 evince evince-common libevdocument3 libevview3 libspectre1
我们运行下面这行代码(作为 sudo):
for a in ghostscript ghostscript-cups ghostscript-doc ghostscript-x libgs8 evince evince-common libevdocument3 libevview3 libspectre1; do echo -e "Package: $a\nPin: release a=maverick\nPin-Priority: 700" > /etc/apt/preferences.d/ps_downgrade_policies_$a; done
在文件夹中创建以下文件/etc/apt/preferences.d/
:
ps_downgrade_policies_evince
ps_downgrade_policies_evince-常见
ps_downgrade_policies_ghostscript
ps_downgrade_policies_ghostscript-cups
ps_downgrade_policies_ghostscript-doc
ps_downgrade_policies_ghostscript-x
ps_downgrade_policies_libevdocument3
ps_downgrade_policies_libevview3
ps_downgrade_policies_libgs8
ps_downgrade_policies_libspectre1
示例内容如下:
软件包:package-name-here
Pin:release a=maverick
Pin-Priority:1000
然后运行:
sudo apt-get update
sudo apt-get dist-upgrade
谢谢 damgaard :)
答案4
尝试安装较新的版本:https://launchpad.net/~dns/+archive/gnu