Как я могу установить последнюю версию ImageMagick без компиляции?

15

У меня были некоторые проблемы с ImageMagick, и мне сказали, что стандартный пакет Ubuntu ImageMagick является устаревшей версией, и я должен обновить его, чтобы решить мои проблемы.

Как я могу это сделать? У меня последняя версия Ubuntu (12.10). Synaptic показывает мне 8:6.7.7.10-2ubuntu4как последнюю версию IM. Это означает, что моя версия IM 6.7.7.10( convert --versionвыводит то же самое). IM не предоставляет сам deb deb . В Debian есть что-то более новое , но в некоторых ветках тестирования / эксперимента, если я хорошо понимаю. Я нашел IM на Launchpad , но нет никаких инструкций, как добавить это в мои источники, похоже, это не один из обычных PPA, с которыми я встречаюсь при поиске последней / бета-версии программного обеспечения. Я не знаю, как работать с этим.

Есть ли способ, как пометить пакет, который будет взят из некоторых передовых источников, и оставить оставшуюся часть моей системы из стандартных источников? Возможно, было бы лучше обновить его до последней стабильной версии IM ( 6.8), но это, вероятно, научно, так как даже в Debian это не так. Тем не менее, мне нужно по крайней мере 6.7.9.


Примечание: я хочу избежать компиляции из исходного кода. Я ненавижу устанавливать что-то и не могу с этим легко манипулировать с помощью apt-getSynaptic. Более того, нет обновлений для скомпилированных программ. Всегда я собираю, я чувствую, что иду против системы, как с помощью клея, проводов и скотча. Нет, я не хочу компилировать это точно.

Хонза Яворек
источник
Самый простой способ получить новые версии - это фактически помочь с упаковкой новой версии и загрузкой ее для сопровождающих. Предложите присоединиться к команде launchpad.net/imagemagick или лучше поработать в апстриме.
fossfreedom
Это было бы неплохо, но я разработчик Python, у которого нет абсолютно никаких глубоких знаний об упаковке Ubuntu / Debian, так что это задача, скорее, для людей, которые ближе к управлению DevOps / packaging / UNIX. Я помогу миру, написав библиотеки с открытым исходным кодом Python :)
Honza Javorek
Насколько я вижу, на самом деле нет ответа, кроме как путем компиляции и упаковки, отсюда и предложение.
fossfreedom
Я знаю, что вы сказали, что не хотите компилировать, но это может представлять интерес: вы можете сохранить существующий imagemagickпакет и его зависимости с помощью этого метода. Вы можете запустить configure с помощью --prefix=/opt, скомпилировать программу, а затем установить с помощью /optwith checkinstall, чтобы вы могли управлять скомпилированной версией как пакетом через apt-get. Если вы хотите использовать новую версию, вам нужно указать, /opt/bin/convertкогда, скажем, вы запускаете convert, если только вы не создадите несколько символических ссылок. В любом случае, вы можете сохранить как стандартную версию пакета, так и скомпилированную версию
1
Ну, я не знал о checkinstall. Если я правильно понимаю, он должен установить скомпилированную версию программы в мою систему, а затем представить ее как пакет в Synaptic или около того, что означает, что я могу безопасно и легко удалить ее позже. Это было бы прекрасно!
Хонза Яворек

Ответы:

18

Обратите внимание: несмотря на то, что Хонза изначально сказал, что не хочет компилировать, мы обсуждали использование checkinstallдля установки скомпилированного пакета в комментариях выше. Это было именно то, что хотел Хонза , так как программы, установленные с помощью, checkinstallмогут быть удалены, как и любой другой пакет с менеджером пакетов.


Так как мы устанавливаем к /optиспользованию checkinstallпосле сборки, мы можем оставить оригинальный imagemagickпакет на месте. (Фактически, установите версию репозитория, если она еще не установлена.) Зависимости можно оставить установленными, и они не отличаются для самой последней версии imagemagick. Что нам нужно сделать, это установить зависимости сборки и некоторые другие инструменты в первую очередь:

sudo apt-get install build-essential checkinstall && sudo apt-get build-dep imagemagick

Загрузите исходный код с официального сайта и, используя терминал, cdтуда, где находится исходный пакет, и распакуйте его:

tar -xzvf ImageMagick-6.8.3-9.tar.gz

Теперь перейдите в эту папку с

cd Imagemagick-6.8.3-9

Теперь, если вы хотите узнать доступные параметры для сборки, запустите

./configure --help

Тем не менее, в основном все уже настроено enabled, поэтому нет необходимости указывать что-либо еще, кроме необходимого --prefix. Вы можете использовать другие места, но мы будем использовать /optздесь. Теперь запустите configureи make:

./configure --prefix=/opt/imagemagick-6.8 && make

Теперь, последнее, что нужно сделать, это использовать checkinstallдля установки пакета. Убедитесь, что вы находитесь в Imagemagick-6.8.3-9папке и запустите

sudo checkinstall

Конечно, вы можете работать checkinstallс такими параметрами, как --pkgversion=или выбрать их после запуска sudo checkinstall, но все настройки по умолчанию здесь хороши. Будет вызвано имя пакета, который будет создан, imagemagick-6.8.3-9и он будет установлен в /opt/imagemagick-6.8.

Теперь вы также сможете видеть пакет Synapticи управлять им, как и любым другим пакетом, и удаление его не вызовет проблем с другими пакетами.

Если вы хотите запустить свои новые версии, вам нужно будет использовать /opt/imagemagick-6.8/convert, например, то, чего /optнет $PATH, и просто запуск convertвызовет версию репо. Вы можете создать несколько символических ссылок, если хотите всегда запускать /optверсию программ.

Пожалуйста, обратите внимание, что именно этого хотел Хонза , хотя изначально он был склонен к компиляции, пока checkinstallне обсуждался.

Сообщество
источник
Спасибо! На самом деле мой вопрос изначально был просто «Как я могу установить текущую последнюю версию ImageMagick», часть «без компиляции» была добавлена модератором fossfreedom , вероятно, после прочтения моей заметки в конце моего вопроса.
Хонза Яворек
1
Правильный путь к convertИБ /opt/imagemagick-6.x/bin/convert. По крайней мере, так для версии 6.9.1, которую я сейчас установил. Твой путь отсутствует /bin/.
Рафаль
Я получил следующее сообщение об ошибке при попытке установить зависимости для сборки: Unable to find a source package for imagemagick. Я смог установить зависимости таким образом: sudo apt-get install imagemagick libmagick++-devкак подробно описано здесь .
Bwroga
Другая причина, по которой вы можете увидеть Unable to find a source package for imagemagickэто то, что вам нужно раскомментировать источники deb-src в /etc/apt/source.list, чтобы найти пакет.
Майкл
Обратите внимание, я должен был сделать ldconfigпосле checkinstallобновления привязок.
Джошуа Пинтер