昨天我决定安装 Perl-Magick 来对我的图像执行一些脚本。我似乎破坏了 ImageMagick 的委托(delegate)并创建了多个版本。我不完全确定...我对 Linux 还很陌生。我尽可能地追溯了我的命令路径,我会尽力指导您完成我所做的事情。
在决定安装 Perl-Magick(来自源代码)之前,我有 6.7.7 版的 ImageMagick,它运行良好。 我几乎按照此处的说明安装 Perl-Magick。
http://www.imagemagick.org/script/perl-magick.php
tar xczf ImageMagick.tar.gz
./configure -with-perl
make
sudo make install
make 出错,指出我缺少 lbperl(我想就是这样。我没有任何输出日志。) 因此,无论出于何种原因,我认为移动到 imagemagick 目录并再次尝试可能会修复它。
cd ImageMagick-6.8.9-5
./configure -with-perl
make
sudo make install
Make 再次失败,所以我认为将 imagemagick 目录移动到另一个目录可能会修复它。
mv ImageMagick-6.8.9-5 /usr/share
sudo su
perl -e "use Image::Magick; print Image::Magick->QuantumDepth"
测试命令无效。试着多弄乱一点。
sudo ldconfig usr/local/lib
./configure -with-perl
sudo make install
cd PerlMagick
此时我意识到在尝试转换 PNG 时出现了一些错误。我认为主要错误是 PNG 的委托(delegate)代码不再存在。 尝试了多种方法来摆脱它,以便我可以重新安装它。
sudo apt-get install --reinstall imagemagick
sudo apt-get remove imagemagick
rm -rf ImageMagick-6.8.9-5
sudo apt-get install --reinstall imagemagick
sudo ldconfig usr/local/lib
sudo apt-get --purge remove imagemagick
sudo apt-get install imagemagick
sudo apt-get --purge remove imagemagick
sudo apt-get install imagemagick
sudo apt-get install --reinstall imagemagick
此时我非常沮丧,所以我问一位高级程序员是否可以帮我解决这个问题。他建议通过 make uninstall 再次进行 make。
tar xczf ImageMagick.tar.gz
./configure -with-perl
sudo make uninstall
发现 PerlMagick 不支持“卸载”。 (我到底应该如何删除它?)
sudo make install
sudo apt-get install libperl-dev
sudo make install
出于我的工作目的,问题的核心归结为我无法对 PNG 做任何事情。所以我得到了 png 库并提取了 tar。仍然没有运气。 :(
tar xvfz libpng-1.6.12.tar.gz
今天我去我的/usr/local/lib 目录,发现了这个:
Jul 2 15:34 ImageMagick-6.8.9
Jul 2 15:34 libMagickCore-6.Q16.a
Jul 2 15:34 libMagickCore-6.Q16.la
Jul 2 15:34 libMagickCore-6.Q16.so -> libMagickCore-6.Q16.so.2.0.0
Jul 2 15:34 libMagickCore-6.Q16.so.2 -> libMagickCore-6.Q16.so.2.0.0
Jul 2 15:34 libMagickCore-6.Q16.so.2.0.0
Jul 2 15:34 libMagickWand-6.Q16.a
Jul 2 15:34 libMagickWand-6.Q16.la
Jul 2 15:34 libMagickWand-6.Q16.so -> libMagickWand-6.Q16.so.2.0.0
Jul 2 15:34 libMagickWand-6.Q16.so.2 -> libMagickWand-6.Q16.so.2.0.0
Jul 2 15:34 libMagickWand-6.Q16.so.2.0.0
Jul 2 15:34 perl
Jul 2 15:34 pkgconfig
我不知道那是否应该在那里......我有这个开发环境,我可以连接到它也安装了 imagemagick,但我没有在同一目录中找到类似的东西。
另外,我做了一个 dpkg --list |更少,发现这个:
ii imagemagick 8:6.7.7.10-5ubuntu3.1
ii imagemagick-common 8:6.7.7.10-5ubuntu3.1
此外,我检查了我的/usr/libls - 我没有 ImageMagick-6.8.9 的任何内容,但我有一个 ImageMagick-6.7.7 的目录,但它只有三个 XML 文件,“english .xml", "french.xml", "locale.xml."我会假设这意味着我丢失了所有的配置文件。有没有简单的方法可以让我完全消除这种困惑并获得预配置版本的 imagemagick?
再多一点信息。我看了一下 usr/local/lib/ImageMagick-6.8.9/config-Q16/configure.xml 并且缺少 png 委托(delegate)。尝试使用 ./configure --with-png 配置它。依然没有。
好的。我认为这就是一切。
编辑:这是配置运行的结果
Shared libraries --enable-shared=yes yes
Static libraries --enable-static=yes yes
Module support --with-modules=no no
GNU ld --with-gnu-ld=yes yes
Quantum depth --with-quantum-depth=16 16
High Dynamic Range Imagery
--enable-hdri=no no
Install documentation: yes
Delegate Configuration:
BZLIB --with-bzlib=yes no
Autotrace --with-autotrace=no no
Dejavu fonts --with-dejavu-font-dir=default none
DJVU --with-djvu=yes no
DPS --with-dps=yes no
FFTW --with-fftw=yes no
FlashPIX --with-fpx=yes no
FontConfig --with-fontconfig=yes no
FreeType --with-freetype=yes no
GhostPCL None pcl6 (unknown)
GhostXPS None gxps (unknown)
Ghostscript None gs (9.10)
Ghostscript fonts --with-gs-font-dir=default /usr/share/fonts/type1/gsfonts/
Ghostscript lib --with-gslib=no no
Graphviz --with-gvc=no
JBIG --with-jbig=yes no
JPEG v1 --with-jpeg=yes no
JPEG-2000 --with-jp2=
LCMS v1 --with-lcms=yes no
LCMS v2 --with-lcms2=yes no
LQR --with-lqr=yes no
LTDL --with-ltdl=yes no
LZMA --with-lzma=yes no
Magick++ --with-magick-plus-plus=yes no (failed tests)
OpenEXR --with-openexr=yes no
OpenJP2 --with-openjp2=yes no
PANGO --with-pango=yes no
PERL --with-perl=no no
PNG --with-png=yes no
RSVG --with-rsvg=no no
TIFF --with-tiff=yes no
WEBP --with-webp=yes no
Windows fonts --with-windows-font-dir= none
WMF --with-wmf=no no
X11 --with-x= yes
XML --with-xml=yes no
ZLIB --with-zlib=yes no
X11 Configuration:
X_CFLAGS =
X_PRE_LIBS = -lSM -lICE
X_LIBS =
X_EXTRA_LIBS =
Options used to compile and link:
PREFIX = /usr/local
EXEC-PREFIX = /usr/local
VERSION = 6.8.9
CC = gcc -std=gnu99 -std=gnu99
CFLAGS = -fopenmp -g -O2 -Wall -march=corei7-avx -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
CPPFLAGS = -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
PCFLAGS =
DEFS = -DHAVE_CONFIG_H
LDFLAGS =
LIBS =
CXX = g++
CXXFLAGS = -pthread
FEATURES = DPC OpenMP
DELEGATES = mpeg ps x
最佳答案
在查阅 imagemagick 论坛后,我找到了答案。
我进入了包含我安装的最新版本的 IM (6.8.9-5) 的目录,并从那里执行了“make uninstall”。
我的机器仍然有正确配置的旧版本 IM (6.7.7)。我认为出了什么问题是我安装了最新版本的 IM 而没有先执行 ./configure。我直接去了 ./configure --with-perl ,它可能没有图像格式的所有配置。
我想如果我重新安装最新版本并正确配置它,它会工作得很好。 6.7.7 现在适合我的目的!
关于linux - 损坏的 ImageMagick 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24559501/