mozjpeg не устанавливается из обычных пакетных менеджеров для RHEL, его необходимо собирать вручную.
Mozjpeg использует CMake для сборки. Установим необходимые утилиты
sudo yum install cmake nasm make gcc gitСклонируем репозиторий:
git clone https://github.com/mozilla/mozjpeg.gitСоберем и установим mozjpeg
cd mozjpeg
mkdir build && cd build
cmake -G"Unix Makefiles" ..
make
sudo make installПуть установки
По умолчанию mozjpeg устанавливается в каталог /opt/mozjpeg.
Добавим mozjpeg в PATH
export PATH=/opt/mozjpeg/bin:$PATHПроверим, что все установилось успешно
cjpeg -versionПроблема при установке
Во время запуска cmake я получил следующую проблему.
$ cmake -G"Unix Makefiles" ..
....
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib64/libpng.so (found suitable version "1.6.37", minimum required is "1.6")
-- PNG reading support enabled (PNG_SUPPORTED = 1)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find PNG (missing: PNG_LIBRARY) (Required is at least version
"1.6")
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindPNG.cmake:159 (find_package_handle_standard_args)
CMakeLists.txt:778 (find_package)
-- Configuring incomplete, errors occurred!Проблема связана с отсутствием необходимых библиотек разработки для zlib и libpng. Хотя из вывода CMake видно, что сначала он находит библиотеки ZLIB и PNG:
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib64/libpng.so (found suitable version "1.6.37", minimum required is "1.6") Я попытался установить нужные пакеты, но они уже были установлены.
sudo yum install zlib-devel libpng-develЯ проверил наличие библиотек и заголовочных файлов. Они также были на месте.
ls /usr/lib64/libz.*
ls /usr/lib64/libpng.*
ls /usr/include/zlib.h
ls /usr/include/png.hЯ попробовал установить pkg-config, который помогает CMake находить пути к библиотекам и заголовочным файлам. И проверил, что pkg-config возвращает пути к библиотекам.
sudo yum install pkgconfig
pkg-config --libs zlib
pkg-config --libs libpngЯ пытался использовать cmake3 указывая пути до библиотек
cmake3 -G"Unix Makefiles" \
-DZLIB_LIBRARIES=/usr/lib64/libz.so \
-DZLIB_INCLUDE_DIR=/usr/include \
-DPNG_LIBRARY=/usr/lib64/libpng.so \
-DPNG_PNG_INCLUDE_DIR=/usr/include \
..В итоге я решил просто отключить поддержку PNG для mozjpeg, раз с ней возникают проблемы, так как я планирую использовать mozjpeg только для сжатия jpeg файлов.
cmake -G"Unix Makefiles" -DPNG_SUPPORTED=OFF ..И это в итоге помогло.
Мета информация
Область:: 00 Разработка
Родитель::
Источник::
Создана:: 2024-09-25
Автор::