ImageMagick — это набор инструментов командной строки для обработки изображений, поддерживающий более 200 форматов. Он предоставляет утилиты для изменения размера, обрезки, конвертации и пакетной обработки изображений. Типичные сценарии использования включают генерацию миниатюр для веб-приложений, пакетное преобразование изображений между форматами и автоматизацию процессов обработки изображений в рабочих процессах разработки.
💡 Если вам нужно обрабатывать изображения в скриптах (конвертировать, изменять размер, обрезать, добавлять эффекты) — ImageMagick предоставит мощный набор инструментов командной строки для любых задач.
В этом руководстве мы рассмотрим два метода установки ImageMagick на Rocky Linux 8, 9 и 10:
- Установка из репозитория EPEL — для стабильной, протестированной версии с автоматическими обновлениями.
- Сборка из исходных кодов — для доступа к самой свежей версии со всеми новыми функциями.
Для кого: веб-разработчики (генерация миниатюр, обработка загруженных изображений), сисадмины (пакетная обработка изображений), дизайнеры (автоматизация рутинных задач), новички (кто хочет научиться обрабатывать изображения из командной строки).
1. Выбор метода установки ImageMagick
Rocky Linux предлагает два подхода к установке ImageMagick, каждый из которых подходит для разных задач.
| Метод | Канал | Версия | Обновления | Для кого |
|---|---|---|---|---|
| DNF + EPEL | Репозиторий EPEL | Rocky 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/HEIF | libheif-devel | EPEL |
| WebP | libwebp-devel | AppStream |
| JPEG XL | libjxl-devel | EPEL |
| RAW (камеры) | LibRaw-devel | EPEL |
Для 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-анимации, наложение водяных знаков, пакетную обрезку