zet*_*tah 6 installation ghostscript 11.04
这是我第二次在尝试使用 pdfwrite 在任何 PDF 文件上运行 GhostScript 时遇到分段错误错误
第一次是我以前的 Ubuntu 11.04 发行版,之后我完全删除(不是因为 gs),格式化我的驱动器等,然后再次安装 11.04
我不知道可能是什么问题。我经常与 GS 合作,现在突然间我开始在任何文件上收到此错误,例如此包或其某些依赖项出现问题。
如果最近的更新可能导致 GS 瘫痪,我搜索了 Synaptic 历史,但什么也没有
我过去在 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
Run Code Online (Sandbox Code Playgroud)
并测试了 GS 解释器,一切正常。
现在我想放回 GS 9.01 删除后删除的所有软件包,我需要先安装ghostscript-x
:
ghostscript-x_8.71~dfsg2-9_i386.deb
Run Code Online (Sandbox Code Playgroud)
这是问题开始的地方:
错误:
破坏现有的包 'gsfonts' 冲突:'gs'。
但是“/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
and 后ghostscript
,当我尝试安装时,ghostscript-x
我得到:
错误:
破坏了存在冲突的现有包“ghostscript”:“gs”。
但是“/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 软件包,情况完全相同
作为替代解决方案 - 您可以编译旧版本的 ghostscript。
下载并解压tar文件
从启动板下载tar 文件。
设置构建环境
sudo apt-get build-dep ghostscript-x
Run Code Online (Sandbox Code Playgroud)
编译安装ghostscript
cd [ghostscript folder location]
sh autogen.sh
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
二进制文件
所有二进制文件都安装在 /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
Run Code Online (Sandbox Code Playgroud)
我还在 Debian 论坛上问了这个问题:链接,在成员damgaard的帮助下,我已经能够毫不费力地降级 GhostScript
以下是这个更通用的方案的概述,我相信它可以在类似的情况下使用,从 damgaard 的帖子中编译而来:
删除有问题的软件包 (GS 9.01) 后,搜索支持所需软件包 (GS 8.71) 的最后一个 Ubuntu 版本 - 即 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
Run Code Online (Sandbox Code Playgroud)
它在文件夹中创建以下文件/etc/apt/preferences.d/
:
ps_downgrade_policies_evince
ps_downgrade_policies_evince-common
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_政策_libspectre1
与此示例内容:
软件包:此处为软件包名称
Pin:release a=maverick
Pin 优先级:1000
然后运行:
sudo apt-get update
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)
谢谢达姆加德:)