Как установить более старую версию GhostScript?
Это второй раз, когда я получаю ошибку ошибки сегментации при попытке запустить GhostScript для любого файла PDF с pdfwrite.
В первый раз это был мой предыдущий дистрибутив Ubuntu 11.04, который впоследствии я полностью удаляю (не из-за gs), форматирую свой диск и т. Д., А затем снова устанавливаю 11.04
Я не знаю, в чем может быть проблема. Я много работаю с GS, и теперь я внезапно начинаю получать эти ошибки в любом файле, как будто что-то пошло не так с этим пакетом или некоторыми его зависимостями.
Я искал историю Synaptic, если, возможно, какое-то недавнее обновление могло привести к повреждению GS, но ничего не было
В прошлом (по крайней мере, два раза) я сообщал о проблемах в ветке GS Launchpad, но никто даже не отвечал, и на самом деле никто не отвечал мне на Launchpad ни за какой отчет, который я выпускаю, поэтому я решил полностью удалить ghostscript и установите другую версию.
Сначала я подумал добавить стабильный репозиторий Debian и установить более протестированную версию, но оказалось, что, возможно, это не очень хорошая идея - добавить репозиторий Debian в Ubuntu.
Поскольку я не могу "принудительно" использовать Synaptic для какой-либо предыдущей версии GS (поскольку она кажется единственной - проблемной), я не знаю, как решить эту проблему, и хотел спросить, как установить предыдущую версию, желательно 8.71, потому что это последняя версия стабильной версии Debian.
Обновить:
Я удалил GS 9.01 (и кучу других пакетов в пути) и последовал совету Бориса, поскольку я не знал, что еще я могу сделать.
Я установил:
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
Здесь начинается проблема:
Ошибка:
Разбивает существующий пакет '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
а также ghostscript
, when I try to install ghostscript-x
Я получил:
Ошибка:
Разбивает существующий пакет 'ghostscript', который конфликтует: 'gs'.
Но "/home/zetah/gs/ghostscript-x_8.71~dfsg2-9_i386.deb" предоставляет его через: "gs,gs-afpl,gs-esp,gs-gpl"
Это точно так же, если я пытаюсь использовать пакеты Ubuntu 10.10 ghostscript 8.71 с Launchpad
4 ответа
Как альтернативное решение - вы можете скомпилировать старую версию 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) Copyright (C) 2010 Artifex Software, Inc. Все права защищены.
Если вы хотите запустить ghostscript
Вы можете переназначить текущую символическую ссылку:
sudo rm /usr/bin/ghostscript
sudo ln -s /usr/local/bin/gs /usr/bin/ghostscript
Вот решение, опробованное и протестированное на 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-объявление] make: * [obj / gp_unix.o] Ошибка 1
Скомпилировать используя
make XCFLAGS=-DHAVE_SYS_TIME_H=1
Наконец, установите скомпилированные двоичные файлы, используя
make install
На этом этапе вы будете ghostscript будет установлен на /usr/local/bin/gs
Я также задавал этот вопрос на форумах Debian: ссылка, и с помощью члена damgaard я смог без проблем понизить GhostScript
Вот обзор этой более общей схемы, которую, я считаю, можно использовать в аналогичной ситуации, составленной из постов Дамгаарда:
После удаления поврежденного пакета (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-чашки
ps_downgrade_policies_ghostscript-документ
ps_downgrade_policies_ghostscript-х
ps_downgrade_policies_libevdocument3
ps_downgrade_policies_libevview3
ps_downgrade_policies_libgs8
ps_downgrade_policies_libspectre1
с этим примером содержания:
Пакет: имя пакета здесь
PIN-код: релиз = индивидуалист
Приоритет пин-кода: 1000
Затем запустите:
sudo apt-get update
sudo apt-get dist-upgrade
Спасибо, черт побери:)
Попробуйте установить более новую версию: https://launchpad.net/~dns/+archive/gnu