Установка ImageMagick на Rocky Linux: полное руководство

ImageMagick — это набор инструментов командной строки для обработки изображений, поддерживающий более 200 форматов. Он предоставляет утилиты для изменения размера, обрезки, конвертации и пакетной обработки изображений. Типичные сценарии использования включают генерацию миниатюр для веб-приложений, пакетное преобразование изображений между форматами и автоматизацию процессов обработки изображений в рабочих процессах разработки.

💡 Если вам нужно обрабатывать изображения в скриптах (конвертировать, изменять размер, обрезать, добавлять эффекты) — ImageMagick предоставит мощный набор инструментов командной строки для любых задач.

В этом руководстве мы рассмотрим два метода установки ImageMagick на Rocky Linux 8, 9 и 10:

  • Установка из репозитория EPEL — для стабильной, протестированной версии с автоматическими обновлениями.
  • Сборка из исходных кодов — для доступа к самой свежей версии со всеми новыми функциями.

Для кого: веб-разработчики (генерация миниатюр, обработка загруженных изображений), сисадмины (пакетная обработка изображений), дизайнеры (автоматизация рутинных задач), новички (кто хочет научиться обрабатывать изображения из командной строки).


Оглавление

1. Выбор метода установки ImageMagick

Rocky Linux предлагает два подхода к установке ImageMagick, каждый из которых подходит для разных задач.

МетодКаналВерсияОбновленияДля кого
DNF + EPELРепозиторий EPELRocky 8/9: ImageMagick 6.x; Rocky 10: ImageMagick 7.xАвтоматические через dnf upgradeБольшинство пользователей, нужны стабильные, протестированные пакеты
Сборка из исходниковGitHub ReleasesПоследняя 7.xТребуется ручная перекомпиляцияПользователи, которым нужны новейшие функции или специфические опции сборки

💡 Вывод для новичка: Для большинства задач подойдёт установка через EPEL — она даёт автоматические обновления безопасности и требует минимального обслуживания. Сборка из исходников нужна только если вам требуются функции, отсутствующие в версии из EPEL, или специфические флаги компиляции.

⚠️ Важно: Rocky Linux 10 включает ImageMagick 7.x из EPEL, где основной командой является magick. Rocky Linux 8 и 9 включают ImageMagick 6.x, где используются классические команды convert, identify, mogrify.


2. Подготовка системы

2.1 Обновление системы

sudo dnf upgrade --refresh -y

Что делает:

  • sudo — права суперпользователя.
  • dnf upgrade — обновляет все пакеты до последних версий.
  • --refresh — принудительно перекачивает метаданные репозиториев (игнорирует кэш).
  • -y — автоматически отвечает «yes».

Зачем: Это стандартная практика безопасности перед установкой нового ПО. Снижает риск конфликтов зависимостей.

2.2 Установка dnf-plugins-core (для метода сборки из исходников)

sudo dnf install -y dnf-plugins-core

Что делает: Устанавливает набор плагинов для DNF, включая команду config-manager.

Зачем: Понадобится для включения репозиториев CRB/PowerTools при сборке из исходников.


3. Метод 1: Установка ImageMagick через EPEL (рекомендуемый)

Этот метод подходит для большинства пользователей. Вы получаете стабильную, протестированную версию ImageMagick, которая будет обновляться вместе с системой через dnf upgrade.

3.1 Установка репозитория EPEL

EPEL (Extra Packages for Enterprise Linux) необходим, так как ImageMagick отсутствует в стандартных репозиториях AppStream.

sudo dnf install -y epel-release

Что делает: Устанавливает пакет epel-release, который добавляет конфигурационные файлы репозитория EPEL в систему.

Зачем: ImageMagick поставляется через EPEL, а не через стандартные репозитории Rocky Linux.

3.2 Установка ImageMagick

sudo dnf install -y ImageMagick

Что делает: Устанавливает пакет ImageMagick из репозитория EPEL. DNF автоматически разрешает и устанавливает все зависимости.

Зачем: Установка включает основные библиотеки ImageMagick и инструменты командной строки.

3.3 Проверка установки

В зависимости от вашей версии Rocky Linux используйте соответствующую команду.

Для Rocky Linux 10 (ImageMagick 7.x):

magick --version

Ожидаемый вывод в терминале (пример):

Version: ImageMagick 7.x.x-x Q16-HDRI x86_64 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5) 
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zip zlib zstd

Для Rocky Linux 8 и 9 (ImageMagick 6.x):

convert --version

Ожидаемый вывод в терминале (пример):

Version: ImageMagick 6.9.x-x Q16 x86_64 https://legacy.imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5) 
Delegates (built-in): bzlib cairo djvu fontconfig freetype gslib gvc jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zlib

Зачем: Убедиться, что ImageMagick установился корректно. Строка «Delegates» показывает поддерживаемые форматы изображений — чем длиннее список, тем шире поддержка.


4. Метод 2: Сборка ImageMagick из исходников (последняя версия)

Этот метод сложнее, но даёт доступ к самой свежей версии ImageMagick 7.x и позволяет настроить сборку под свои нужды.

4.1 Установка зависимостей для сборки

Для Rocky Linux 9 и 10:

sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled crb
sudo dnf builddep ImageMagick -y

Для Rocky Linux 8:

sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled powertools
sudo dnf builddep ImageMagick -y

Что делает:

  • dnf builddep ImageMagick — читает спецификацию пакета из EPEL и устанавливает все необходимые пакеты разработки (заголовочные файлы для JPEG, PNG, TIFF, WebP, шрифтов, библиотек сжатия и инструментов сборки).
  • -y — автоматически подтверждает установку.

Зачем: Без этих зависимостей сборка из исходников будет невозможна — вы получите ошибки о пропущенных библиотеках.

4.2 Создание директории и скачивание исходников

mkdir -p ~/imagemagick-build && cd ~/imagemagick-build
VERSION=$(curl -s https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest | grep -oP '"tag_name": "\K[^"]+')
echo "Downloading ImageMagick version: ${VERSION}"
curl -fL "https://github.com/ImageMagick/ImageMagick/archive/refs/tags/${VERSION}.tar.gz" -o "ImageMagick-${VERSION}.tar.gz"

Что делает:

  • curl -s ... — обращается к API GitHub и получает JSON с информацией о последнем релизе.
  • grep -oP ... — вырезает номер версии из строки "tag_name": "7.1.2-12".
  • curl -fL ... — скачивает архив с исходниками нужной версии.

Ожидаемый вывод в терминале:

Downloading ImageMagick version: 7.1.2-12
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15.2M  100 15.2M    0     0  8.5M      0  0:00:01  0:00:01 --:--:-- 8.5M

4.3 Распаковка и настройка сборки

tar -xzf ImageMagick-${VERSION}.tar.gz
cd ImageMagick-${VERSION}
./configure --with-modules

Что делает:

  • tar -xzf — распаковывает архив.
  • ./configure — проверяет наличие доступных библиотек и генерирует конфигурацию сборки.
  • --with-modules — включает динамическую загрузку обработчиков форматов, позволяя ImageMagick поддерживать дополнительные форматы без перекомпиляции.

Сколько ждать: 1–2 минуты.

Ожидаемый вывод в конце:

checking for OpenSSL... yes
checking for libpng... yes
checking for libjpeg... yes
checking for libtiff... yes
checking for libwebp... yes
...
configure: creating ./config.status
config.status: creating Makefile

Configuration complete. Type make (or gmake on some *BSD machines) to compile.

💡 Совет: Проверьте вывод configure на наличие no там, где вы ожидаете yes. Если какой-то формат не обнаружен, установите соответствующий -devel пакет и запустите ./configure заново.

4.4 Компиляция и установка

make -j$(nproc)
sudo make install
sudo ldconfig

Что делает:

  • make -j$(nproc) — компилирует исходный код, используя все ядра процессора для ускорения.
  • sudo make install — устанавливает скомпилированные файлы в систему (в /usr/local).
  • sudo ldconfig — обновляет кэш разделяемых библиотек, чтобы система видела новые библиотеки ImageMagick.

Сколько ждать: 5–10 минут на современной системе с 4+ ядрами.

4.5 Проверка установки

magick --version

Ожидаемый вывод в терминале:

Version: ImageMagick 7.1.2-12 Q16-HDRI x86_64 https://imagemagick.org
...
Delegates (built-in): bzlib cairo fftw fontconfig freetype heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png raqm raw rsvg tiff webp wmf x xml zip zlib zstd

Зачем: Убедиться, что собралась правильная версия. Сборка из исходников обычно включает больше делегатов (поддерживаемых форматов), чем пакетная версия.


5. Управление ImageMagick

5.1 Обновление (EPEL-установка)

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

sudo dnf upgrade ImageMagick

Проверка наличия обновлений:

dnf check-update ImageMagick

5.2 Обновление (сборка из исходников)

Сборка из исходников требует ручного обновления. Выполните следующие команды:

cd ~/imagemagick-build
VERSION=$(curl -s https://api.github.com/repos/ImageMagick/ImageMagick/releases/latest | grep -oP '"tag_name": "\K[^"]+')
echo "Current version: $(magick --version 2>/dev/null | head -1 || echo 'Not installed')"
echo "Latest version: ${VERSION}"
echo "Downloading ImageMagick ${VERSION}..."
curl -fL "https://github.com/ImageMagick/ImageMagick/archive/refs/tags/${VERSION}.tar.gz" -o "ImageMagick-${VERSION}.tar.gz"
echo "Extracting..."
tar -xzf "ImageMagick-${VERSION}.tar.gz"
cd "ImageMagick-${VERSION}"
echo "Configuring build..."
./configure --with-modules
echo "Compiling (5-10 minutes)..."
make -j$(nproc)
echo "Installing..."
sudo make install
sudo ldconfig
echo "Update complete:"
magick --version | head -1

5.3 Базовые примеры использования

Для Rocky Linux 10 (ImageMagick 7.x):

Конвертация формата:

magick input.png output.jpg

Изменение размера:

magick input.jpg -resize 800x600 output.jpg

Получение информации об изображении:

magick identify input.jpg

Для Rocky Linux 8 и 9 (ImageMagick 6.x):

Конвертация формата:

convert input.png output.jpg

Изменение размера:

convert input.jpg -resize 800x600 output.jpg

Получение информации об изображении:

identify input.jpg

6. Диагностика проблем

6.1 Ошибка: «command not found» после установки

Причина: Пакет не установлен или команда не в PATH.

Решение для EPEL:

rpm -q ImageMagick

Если пакет не установлен — вернитесь к шагу 3.2.

Решение для сборки из исходников:

ls -la /usr/local/bin/ | grep -E "magick|convert"
echo $PATH | grep -q /usr/local/bin && echo "Path OK" || echo "Добавьте /usr/local/bin в PATH"

6.2 Отсутствует поддержка формата (например, HEIC, WebP)

Причина: Не хватает делегата (библиотеки) для этого формата.

Проверка доступных делегатов:

# Для ImageMagick 7.x
magick --version | grep Delegates

# Для ImageMagick 6.x
convert --version | grep Delegates

Частые форматы и требуемые пакеты:

ФорматПакетРепозиторий
HEIC/HEIFlibheif-develEPEL
WebPlibwebp-develAppStream
JPEG XLlibjxl-develEPEL
RAW (камеры)LibRaw-develEPEL

Для EPEL-установки: поддержка форматов фиксирована на момент сборки пакета. Нужно устанавливать недостающие -devel пакеты и пересобирать из исходников.

Для сборки из исходников: установите недостающий -devel пакет и пересоберите ImageMagick.

6.3 Ошибка «error while loading shared libraries»

Текст ошибки: error while loading shared libraries: libMagickWand-7.Q16HDRI.so.10: cannot open shared object file

Причина: Устаревший кэш разделяемых библиотек.

Решение:

sudo ldconfig

Если ошибка сохраняется:

# Проверяем, включена ли /usr/local/lib в пути поиска
cat /etc/ld.so.conf.d/*.conf | grep /usr/local/lib || echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig

7. Удаление ImageMagick

7.1 Удаление EPEL-установки

sudo dnf remove ImageMagick
sudo dnf autoremove

Проверка:

rpm -q ImageMagick

Ожидаемый вывод:

package ImageMagick is not installed

7.2 Удаление сборки из исходников

Если сохранилась директория сборки:

cd ~/imagemagick-build/ImageMagick-*
sudo make uninstall
sudo ldconfig

Если директории сборки больше нет — удалите файлы вручную:

sudo rm -rf /usr/local/bin/magick /usr/local/bin/convert /usr/local/bin/identify /usr/local/bin/mogrify
sudo rm -rf /usr/local/lib/libMagick*
sudo rm -rf /usr/local/include/ImageMagick-7
sudo rm -rf /usr/local/share/ImageMagick-7

⚠️ Внимание: Будьте осторожны при удалении файлов из /usr/local — убедитесь, что не удаляете файлы других программ.

Удаление директории сборки:

rm -rf ~/imagemagick-build

Чек-лист: всё готово к работе

# 1. Проверка версии (для Rocky 10)
magick --version

# 2. Проверка версии (для Rocky 8/9)
convert --version

# 3. Проверка поддержки форматов
magick --version | grep Delegates

# 4. Тест конвертации (создаёт тестовое изображение)
magick -size 100x100 gradient:red-blue test.png && echo "✅ ImageMagick работает"

# 5. Очистка тестового файла
rm -f test.png

Заключение

Вы установили ImageMagick на Rocky Linux, используя стандартные репозитории EPEL или сборку из исходников.

Что теперь есть в системе:

  • ✅ Набор инструментов командной строки для обработки изображений
  • ✅ Поддержка более 200 форматов (JPEG, PNG, WebP, HEIC, TIFF и др.)
  • ✅ Возможность пакетной обработки и автоматизации
  • ✅ (При сборке из исходников) — самая свежая версия с новейшими функциями

Что дальше:

  • Изучите официальную документацию: imagemagick.org/script/command-line-tools.php
  • Напишите скрипт для пакетного изменения размера изображений в папке
  • Настройте автоматическую генерацию миниатюр для загружаемых на сайт изображений
  • Изучите продвинутые функции: создание GIF-анимации, наложение водяных знаков, пакетную обрезку

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *