[图像处理软件] 关于ImageMagick和Imagick安装的备忘录
你好。
每天一次 OOM 杀手 我是系统解决方案部门的 Kawa。
前几天我必须在我的 Linux 机器上安装 ImageMagick,但
由于这是我第一次使用它,所以我很难安装它。首先,现有的信息并不多。
即使是这样,操作系统不同,版本较旧,或者方法完全不同。
每当您遇到包依赖项错误时,请不要担心。
这是 AlmaLinux 8 环境中顺利运行的备忘录。我希望它对后代有用。
ImageMagick 和 Imagick 的区别
您需要了解的第一件事是它们是不同的。 (如果您已经知道,请跳过此部分)
ImageMagick是用于编辑和转换图像文件的免费开源软件。
Imagick是一个 PHP 扩展模块,允许您使用 ImageMagick API 从 PHP 创建和编辑图像文件。
所以,如果你只安装 ImageMagick,你将无法从 PHP 端运行它,所以要小心! (复杂的)
关于环境
AlmaLinux 8.8
Apache 2.4.37
PHP 8.1.23
PHP-FPM 8.1.23
插入remi存储库作为前期准备
dnf 安装 https://rpms.remirepo.net/enterprise/remi-release-8.rpm
安装 ImageMagick
如果你不假思索地尝试安装它,所需的包将不存在,并且你会得到这样的错误,
dnf install --enablerepo=remi ImageMagick7 ImageMagick7-devel 上次元数据过期检查:2023 年 9 月 15 日星期五 15:54:10 0:54:50 前。错误:问题:无法安装该作业的最佳候选 - 没有任何内容提供 jasper- ImageMagick7-devel-1:7.1.1.15-1.el8.remi.x86_64 所需的 devel(x86-64) - 没有提供 ImageMagick7-devel-1:7.1.1.15-1 所需的 OpenEXR-devel(x86-64)。 el8.remi.x86_64 - 没有提供 ImageMagick7-devel-1:7.1.1.15-1.el8.remi.x86_64 所需的 Ghostscript-devel(x86-64) - 没有提供 ImageMagick7 所需的 jbigkit-devel(x86-64) - devel-1:7.1.1.15-1.el8.remi.x86_64 - 没有提供 ImageMagick7-devel-1:7.1.1.15-1.el8.remi.x86_64 所需的 lcms2-devel(x86-64) - 没有提供 openjpeg2- ImageMagick7-devel-1:7.1.1.15-1.el8.remi.x86_64 需要 devel(x86-64) (尝试添加 '--skip-broken' 来跳过可卸载的软件包或 '--nobest' 来不仅使用最佳候选包)
添加并启用名为“PowerTools”的存储库,
dnf 配置管理器 --set-enabled powertools
当我再次尝试时,我能够成功安装所有内容,包括依赖项!
dnf install --enablerepo=remi ImageMagick7 ImageMagick7-devel AlmaLinux 8 - PowerTools 938 kB/s | 3.2 MB 00:03 上次元数据过期检查:2023 年 9 月 16 日星期六 16:35:59 0:00:02 前。依赖关系已解决。 =================================================== =================================================== =============== 包 Arch 版本存储库大小 ================================ =================================================== ===================================== 安装:ImageMagick7 x86_64 1:7.1.1.15-1.el8.remi remi 110 k ImageMagick7-devel x86_64 1:7.1.1.15-1.el8.remi remi 143 k 安装依赖项:ImageMagick7-libs x86_64 1:7.1.1.15-1.el8.remi remi 2.5 M LibRaw x86_64 0.19.5-3。 el8 appstream 315 k OpenEXR-devel x86_64 2.2.0-12.el8 powertools 85 k OpenEXR-libs x86_64 2.2.0-12.el8 appstream 671 k adobe-mappings-cmap noarch 20171205-3.el8 appstream 2.1 M adobe-mappings- cmap 已弃用 noarch 20171205-3.el8 appstream 118 k adobe-mappings-pdf noarch 20180407-1.el8 appstream 706 k atk x86_64 2.28.1-1.el8 appstream 271 k avahi-libs x86_64 0.7-20.el8 baseos 61 k ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~ 安装弱依赖项:ImageMagick7-djvu x86_64 1:7.1.1.15-1.el8.remi remi 66 k open-sans-fonts noarch 1.10-6。 el8 appstream 482 k 启用模块流: nginx 1.14 php 7.2 事务摘要 ======================================== ====================================================== ==== =========================== 安装 142 个软件包 总下载大小:51 M 安装大小:155 M
如果显示版本,则安装完成。
magick --version 版本:ImageMagick 7.1.1-15 Q16-HDRI x86_64 21298 https://imagemagick.org 版权所有:(C) 1999 ImageMagick Studio LLC 许可证:https://imagemagick.org/script/license.php 功能:密码 DPC HDRI 模块 OpenMP(4.5) 委托(内置): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zip zlib 编译器: gcc ( 8.5)
安装 Imagick
如果直接这样做,会出现依赖错误,所以提前安装必要的包。
dnf install --enablerepo=remi php-pear php-devel
验证 pecl 命令是否被识别
其中 pecl /usr/bin/pecl
使用 pecl 安装。
“请提供 ImageMagick 安装的前缀提示时按 Enter 键
pecl install imagick 下载 imagick-3.7.0.tgz ... 开始下载 imagick-3.7.0.tgz (360,138 字节) ........................ ...................................................... .done:360,138字节33个源文件,构建运行:phpize 配置:PHP Api版本:20170718 Zend模块Api编号:20170718 Zend扩展Api编号:320170718 请提供ImageMagick安装的前缀[自动检测]:
安装完成后,消息显示“您应该将“extension=imagick.so”添加到 php.ini ”,因此将以下内容添加到 php.ini 的底部。
# 将 ↓ 添加到 php.ini [PECL] extension=imagick.so
重新启动 Apache 和 PHP-FPM
systemctl 重新启动 httpd systemctl 重新启动 php-fpm.service
重启后,安装额外的PHP包,如果出现在PHP模块中,就可以了。
dnf 安装 php81-php-pecl-imagick-im7 php -m | grep imagick imagick
此外,您可以使用以下命令检查当前策略。
magick -list 策略 路径:/etc/ImageMagick-7/policy.xml 策略:未定义 权限:无 策略:委派权限:无 模式:* 策略:过滤器权限:无 模式:* 策略:编码器权限:无 模式:* 策略:编码器权限:读写模式:{PNG、JPEG、JPG、GIF、WEBP} 路径:[内置] 策略:未定义 权限:无
完全的