Node.js imagemin на CentOS

Я пытаюсь использовать Node.js imagemin для сжатия большого количества изображений на моем сервере. Мне нравится использовать imagemin, потому что я знаю, как указать его в определенных каталогах.

Я использую CentOS 6, и когда я запускаю свой файл, я получаю сообщение об ошибке:

node_modules / imagemin / node_modules / imagemin-pngquant / node_modules / pngquant-bin / vendor / pngquant: /lib64/libc.so.6: версия `GLIBC_2.14'не найдена

Кроме того, когда я установил imagemin с npm install imageminЯ получил сообщение об ошибке:

Ошибка: pngquant не удалось собрать, убедитесь, что установлен libpng-dev

Любые идеи о том, что я могу сделать, чтобы решить эту проблему?

4 ответа

Решение

(Проблема де-факто уже решена в комментариях - но ради доработки и будущих поколений выкладываю актуальный ответ).

Ошибка: pngquant не удалось собрать, убедитесь, что установлен libpng-dev

Эта ошибка означает, что системе не хватает libpng библиотека разработки, которая необходима для установки imagemin Модуль Node.JS. Чтобы установить его на CentOS 6, вам нужно выполнить следующую команду:

yum install libpng-devel

Обратите внимание, что оба пакета менеджера (здесь - yum) и название пакета (libpng-devel) может отличаться в разных дистрибутивах Linux.

У меня была такая же проблема с CentOS 7 даже с libpng-devel установлены. Похоже, что пакет содержит предварительно скомпилированную двоичную программу в node_modules/pngquant-bin/vendor/pngquant что-то несовместимо с установкой Linux (CentOS 7 последняя версия).

Я решил проблему, заменив этот двоичный файл тем, который доступен для CentOS 7.

Я устанавливаю официальный пакет pngquant с yum, первый. Затем я устанавливаю узлы модулей. Вы можете удалить node_modules папку, если вам нравится до установки действий. Это не обязательно, хотя.

Ошибка будет отображаться как обычно (файл программы еще не заменен):

⚠ The `node_modules/pngquant-bin/vendor/pngquant` binary doesn't seem to work correctly ⚠ pngquant pre-build test failed ℹ compiling from source ✖ Error: pngquant failed to build, make sure that libpng-dev is installed at ChildProcess.exithandler (child_process.js:206:12) at emitTwo (events.js:106:13) at ChildProcess.emit (events.js:191:7) at maybeClose (internal/child_process.js:877:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

Однако после замены бинарного файла все должно быть в порядке.

sh yum install libpng-devel pngquant npm install rm -rf node_modules/pngquant-bin/vendor/pngquant ln -s /usr/bin/pngquant node_modules/pngquant-bin/vendor/pngquant

После этого вы можете запустить любую понравившуюся вам команду, "imagemin:dynamic" и т. Д. Она должна работать правильно.

Резюме

Вообще говоря, проблема, кажется, находится внутри pngquant-bin пакет узлов. Это решение может помочь и для других дистрибутивов Linux.

Само решение заключается в установке официально поддерживаемой версии pngquant с менеджером пакетов ОС и заменить двоичный файл внутри pngquant-bin папка vendor после ее установки.

Обновить

Кроме того, существует недавняя проблема, которая все еще связана с pngquant Пакет Npm. Похоже, что есть баггий релиз - заблокируйте требуемый pngquant пакет в вашем package.json до старой версии (последняя правильно работающая версия для вас).

Предыдущие решения не работали для меня. Я использую Centos 7,4

При выполнении выполнения

# npm install

Я получил ошибку:

✖ Ошибка: pngquant не удалось собрать, убедитесь, что libpng-dev установлен`

Пока пытаюсь установить libpng-devel, он говорит, что он уже установлен.

Решение

Обновите версию nodejs & npm, если она использует старую версию.

Я обновил до

Версия Nodejs

[root@hosting ~]# node -v

v8.10.0

версия npm

[root@hosting ~]# npm -v

5.7.1

Проверьте установленный libpng-devel на вашем сервере.

[root@hosting ~]# rpm -qa |grep libpng

Libpng-1.5.13-7.el7_2.x86_64

Libpng-разви-1.5.13-7.el7_2.x86_64

Если вы используете epel repo, он установит последнюю версию. Для дополнительной проверки выпуска libpng

[root@hosting ~]# yum list |grep libpng

Я установил

yum install libpng12-1.2.50-10.el7.x86_64 libpng12-devel-1.2.50-10.el7.x86_64

модули перемещенных узлов

mv node_modules node_modules_bak

Затем введите

# npm install

В моем случае я использую экземпляр CentOS на Amazon WS, и здесь я столкнулся с той же проблемой. Я решил это, установив libpng12 и libpng12-devel (yum install libpng12 libpng12-devel), затем запустив yarn install (или npm install), и пакеты установились правильно.

Просто это!

Вот как я решил проблему для своего дела:

удалять node_modules:

rm -rf node_modules

Установите следующие зависимости:

sudo dnf install libpng-devel pngquant gcc make libpng12 libpng12-devel

Перестройте зависимости. я использую yarn:

yarn
Другие вопросы по тегам