Проблемы с установкой делегата в ImageMagick PNG

Ubuntu 14.04:

Я скачал и установил последний источник imagemagick, используя опцию ниже для настройки:

root@usve59445:~/im/ImageMagick-6.9.3-7# ./configure --enable-shared --with-png=yes

Однако после установки в моем встроенном списке делегатов ноль элементов:

root@usve59445:~/im/ImageMagick-6.9.3-7# identify -version
Version: ImageMagick 6.9.3-7 Q16 x86_64 2016-03-14
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC License:  
Features: Cipher DPC OpenMP
Delegates (built-in):

Проблема, которую я получаю: "Не найдено ни одного делегата для формата PNG" при выполнении convert команда.

Я установил делегат libpng с: http://www.imagemagick.org/download/delegates/

Извлеките libpng1621.tar.gz в его собственную папку, затем: запустите configure, make, make install (без сообщений об ошибках)

Теперь, когда я пытаюсь перекомпилировать imagemagick, он по-прежнему говорит "Проверка на PNG ... нет", а значение --with-png имеет значение "нет" (хотя я настраиваю его с помощью --with-png=yes).

Не уверен, что я делаю не так?

Попытка перекомпилировать IM, используя:

root @ usve59445: ~ / im / ImageMagick-6.9.3-7 #./configure --enable-shared = yes --with-png = yes LDFLAGS = '- L / usr / local / lib' LIBS = -lpng16

думаю, что я использую правильные LDFLAGS, но не уверен)

root@usve59445:~/im/libpng-1.6.21# libpng16-config --L_opts
-L/usr/local/lib 

root@usve59445:~/im/libpng-1.6.21# libpng16-config --libs
-lpng16


root@usve59445:~/im/libpng-1.6.21# locate libpng
/lib/x86_64-linux-gnu/libpng12.so.0
/lib/x86_64-linux-gnu/libpng12.so.0.46.0
/usr/bin/libpng-config
/usr/bin/libpng12-config
/usr/include/libpng
/usr/include/libpng12
/usr/include/libpng12/png.h
/usr/include/libpng12/pngconf.h
/usr/lib/x86_64-linux-gnu/libpng.a
/usr/lib/x86_64-linux-gnu/libpng.so
/usr/lib/x86_64-linux-gnu/libpng.so.3
/usr/lib/x86_64-linux-gnu/libpng12.a
/usr/lib/x86_64-linux-gnu/libpng12.so
/usr/lib/x86_64-linux-gnu/libpng12.so.0
/usr/lib/x86_64-linux-gnu/pkgconfig/libpng.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/libpng12.pc
/usr/local/bin/libpng-config
/usr/local/bin/libpng16-config
/usr/local/include/libpng16
/usr/local/include/libpng16/png.h
/usr/local/include/libpng16/pngconf.h
/usr/local/include/libpng16/pnglibconf.h
/usr/local/lib/libpng.a
/usr/local/lib/libpng.la
/usr/local/lib/libpng.so
/usr/local/lib/libpng16.a
/usr/local/lib/libpng16.la
/usr/local/lib/libpng16.so
/usr/local/lib/libpng16.so.16
/usr/local/lib/libpng16.so.16.21.0
/usr/local/lib/pkgconfig/libpng.pc
/usr/local/lib/pkgconfig/libpng16.pc
/usr/local/share/man/man3/libpng.3
/usr/local/share/man/man3/libpngpf.3
/usr/share/doc/libpng12-0
/usr/share/doc/libpng12-dev
/usr/share/doc/libpng3
/usr/share/doc/libpng12-0/ANNOUNCE
/usr/share/doc/libpng12-0/KNOWNBUG
/usr/share/doc/libpng12-0/README.Debian
/usr/share/doc/libpng12-0/README.gz
/usr/share/doc/libpng12-0/TODO
/usr/share/doc/libpng12-0/changelog.Debian.gz
/usr/share/doc/libpng12-0/copyright
/usr/share/doc/libpng12-0/libpng-1.2.46.txt.gz
/usr/share/doc/libpng12-dev/changelog.Debian.gz
/usr/share/doc/libpng12-dev/copyright
/usr/share/doc/libpng12-dev/examples
/usr/share/doc/libpng12-dev/examples/example.c.gz
/usr/share/doc/libpng12-dev/examples/pngtest.c.gz
/usr/share/doc/libpng12-dev/examples/pngtest.png
/usr/share/doc-base/libpng12
/usr/share/man/man1/libpng-config.1.gz
/usr/share/man/man1/libpng12-config.1.gz
/usr/share/man/man3/libpng.3.gz
/var/cache/apt/archives/libpng12-0_1.2.46-3ubuntu4.2_amd64.deb
/var/cache/apt/archives/libpng12-dev_1.2.46-3ubuntu4.2_amd64.deb
/var/cache/apt/archives/libpng3_1.2.46-3ubuntu4.2_amd64.deb
/var/lib/dpkg/info/libpng12-0:amd64.list
/var/lib/dpkg/info/libpng12-0:amd64.md5sums
/var/lib/dpkg/info/libpng12-0:amd64.postinst
/var/lib/dpkg/info/libpng12-0:amd64.postrm
/var/lib/dpkg/info/libpng12-0:amd64.shlibs
/var/lib/dpkg/info/libpng12-dev.list
/var/lib/dpkg/info/libpng12-dev.md5sums
/var/lib/dpkg/info/libpng3:amd64.list

3 ответа

Решение

Вы делаете вещи слишком сложными для себя, вот быстрое и грязное руководство, которое хорошо для меня работало на Трасти Тар:

Сначала подберите несколько известных зависимостей:

sudo apt-get install build-essential checkinstall \
             libx11-dev libxext-dev zlib1g-dev libpng12-dev \
             libjpeg-dev libfreetype6-dev libxml2-dev

Это не совсем улавливает все, поэтому активируйте репозитории исходного кода, нажав "Souce Code" здесь:

Dash >> Software & Updates >> Source Code

и затем запустите следующее:

sudo apt-get build-dep imagemagick

Создайте папку сборки и измените на нее:

mkdir $HOME/imagemagick_build && cd $HOME/imagemagick_build

И, наконец, загрузите, распакуйте, скомпилируйте и установите, просто скопировав и вставив весь приведенный ниже код в окно терминала:

wget https://www.imagemagick.org/download/ImageMagick-7.0.8-28.tar.bz2 && \
tar xvf ImageMagick-7.0.8-28.tar.bz2 && cd ImageMagick-7.0.8-28 && ./configure && make && \
sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/imagemagick_build" \
     --pkgname imagemagick --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
     --pkgversion "7.0.8-28" && \
make distclean && sudo ldconfig

И, наконец, проверьте это, особенно ища png, который вам не хватает в вашей собственной установке:

andrew@corinth:~$ identify -version
Version: ImageMagick 7.0.5-10 Q16 x86_64 2017-06-05 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr lzma openexr pangocairo png tiff wmf x xml zlib
andrew@corinth:~$ 

И есть опция png, которую вы пропустили:).

Я установил ImageMagick7.0.11, а также ImageMagick7.1.0, извлекая файлы tar.gz. Но это не сработало. В конце концов мне пришлось установить его, используя только rpm. Команда 'dnf' поможет вам. Если apt-get не работает, то «dnf» может быть правильным решением для вашей RHEL/CentOS 8. Для справки перейдите по этой ссылке — https://unix.stackexchange.com/questions/555466/how-to-install- apt-получить-и-dpkg

Теперь, когда я нажму магическую версию или конвертировать -

version, я вижу правильный вывод: Version:

ImageMagick 7.0.11-13 Q16 x86_64 17.05.2021 https://imagemagick.org Авторские права: (C) 1999-2021 ImageMagick Studio LLC Лицензия:https://imagemagick.org/script/license.php Особенности: Cipher DPC Модули HDRI OpenMP(4.5) Делегаты (встроенные): bzlib cairo djvu fontconfigfreetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png psraqm raw rsvg tiff webp wmf x xml zlib

Первоначально для меня этот раздел «Делегаты (встроенные)» тоже был пустым, когда я продолжал усердно работать с командой yum.

Ответ andrew.46 предлагает решение для правильной сборки на любом debian-подобном дистрибутиве, но на самом деле не отвечает, почему исходная сборка плаката не находила libpng.

Простой способ найти виновника — бежатьpkg-config --cflags libpngследующее

      user@mac ~ % pkg-config --cflags libpng
Package zlib was not found in the pkg-config search path.
Perhaps you should add the directory containing `zlib.pc'
to the PKG_CONFIG_PATH environment variable
Package 'zlib', required by 'libpng', not found

Это дает представление о том, чего не хватает. В моем случае это был zlib. После установки zlib:

      user@mac ~ % pkg-config --cflags libpng
-I/usr/local/include/libpng16 -I/usr/local/include
Другие вопросы по тегам