Вопрос или проблема
Я устанавливаю canvas на своем Raspberry Pi 5B. Но установка не удалась.
Вот что у меня получилось:
berryuki@berryuki:~/items/Bot/salt-bot/external/salt-main $ npm i canvas
npm WARN deprecated [email protected]: Этот модуль не поддерживается и вызывает утечку памяти. Не используйте его. Ознакомьтесь с lru-cache, если хотите хороший и проверенный способ объединять асинхронные запросы по значению ключа, который гораздо более универсален и мощен.
npm WARN deprecated [email protected]: Этот пакет больше не поддерживается.
npm WARN deprecated [email protected]: Версии Rimraf до v4 больше не поддерживаются.
npm WARN deprecated [email protected]: Этот пакет больше не поддерживается.
npm WARN deprecated [email protected]: Версии Glob до v9 больше не поддерживаются.
npm WARN deprecated [email protected]: Этот пакет больше не поддерживается.
npm ERR! code 1
npm ERR! path /home/berryuki/items/Bot/salt-bot/node_modules/canvas
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build --update-binary
npm ERR! Не удалось выполнить '/usr/bin/node /usr/share/nodejs/node-gyp/bin/node-gyp.js configure --fallback-to-build --update-binary --module=/home/berryuki/items/Bot/salt-bot/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/home/berryuki/items/Bot/salt-bot/node_modules/canvas/build/Release --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1)
npm ERR! node-pre-gyp info удачно, если заканчивается на ok
npm ERR! node-pre-gyp info используя [email protected]
npm ERR! node-pre-gyp info используя [email protected] | linux | arm64
npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-linux-glibc-arm64.tar.gz
npm ERR! node-pre-gyp ERR! статус ответа установки 404 Не найден на https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-linux-glibc-arm64.tar.gz
npm ERR! node-pre-gyp WARN Предварительно собранные двоичные файлы не могут быть установлены для [email protected] и [email protected] (node-v108 ABI, glibc) (переход к компиляции из источника с помощью node-gyp)
npm ERR! node-pre-gyp WARN Возникла ошибка ответа
berryuki@berryuki:~/items/Bot/salt-bot/external/salt-main $ npm i canvas --registry="https://registry.npmjs.org/"
npm WARN deprecated [email protected]: Этот модуль не поддерживается и вызывает утечку памяти. Не используйте его. Ознакомьтесь с lru-cache, если хотите хороший и проверенный способ объединять асинхронные запросы по значению ключа, который гораздо более универсален и мощен.
npm WARN deprecated [email protected]: Этот пакет больше не поддерживается.
npm WARN deprecated [email protected]: Версии Rimraf до v4 больше не поддерживаются.
npm WARN deprecated [email protected]: Этот пакет больше не поддерживается.
npm WARN deprecated [email protected]: Версии Glob до v9 больше не поддерживаются.
npm WARN deprecated [email protected]: Этот пакет больше не поддерживается.
npm ERR! code 1
npm ERR! path /home/berryuki/items/Bot/salt-bot/node_modules/canvas
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build --update-binary
npm ERR! Не удалось выполнить '/usr/bin/node /usr/share/nodejs/node-gyp/bin/node-gyp.js configure --fallback-to-build --update-binary --module=/home/berryuki/items/Bot/salt-bot/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/home/berryuki/items/Bot/salt-bot/node_modules/canvas/build/Release --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v108' (1)
npm ERR! node-pre-gyp info удачно, если заканчивается на ok
npm ERR! node-pre-gyp info используя [email protected]
npm ERR! node-pre-gyp info используя [email protected] | linux | arm64
npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-linux-glibc-arm64.tar.gz
npm ERR! node-pre-gyp ERR! запрос установки к https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-linux-glibc-arm64.tar.gz не удался, причина: connect ETIMEDOUT 20.205.243.166:443
npm ERR! node-pre-gyp WARN Предварительно собранные двоичные файлы не могут быть установлены для [email protected] и [email protected] (node-v108 ABI, glibc) (переход к компиляции из источника)
По умолчанию я изменил реестр npm. После этого я заподозрил, что проблема может быть в реестре, поэтому вернулся к официальному реестру. Но это, похоже, не сработало.
ОС:
вставьте описание изображения здесь
версия node: 18.19.0
версия npm: 9.2.0
Ответ или решение
Установка модуля Canvas на Raspberry Pi: Решение проблемы
Разработка на платформе Raspberry Pi, особенно версия 5B, может вызвать некоторые сложности при установке определённых npm-пакетов, таких как Canvas. Ниже рассмотрим шаги, которые помогут устранить распространённые ошибки и успешно установить этот модуль.
Проблема с установкой
Как видно из вашего вывода, установка Canvas завершилась с ошибкой. Вы столкнулись с несколькими предупреждениями о неработающих зависимостях и, наконец, с ошибкой, связанной с node-pre-gyp
, которая не смогла скачать предварительно собранный файл по указанному пути:
npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v108-linux-glibc-arm64.tar.gz
npm ERR! node-pre-gyp ERR! install response status 404 Not Found
Это указывает на то, что для вашей конфигурации (архитектура arm64
, версия Node.js) не существует предварительно скомпилированного бинарного файла.
Шаги для устранения проблемы
-
Установка зависимостей: Убедитесь, что у вас установлены все необходимые библиотеки для компиляции Canvas. Для этого выполните:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Эти пакеты содержат библиотеки и заголовочные файлы, необходимые для сборки модуля Canvas.
-
Обновление NPM и Node.js: Убедитесь, что вы используете последнюю стабильную версию Node.js и npm. Вы можете установить Node Version Manager (NVM) для управления версиями Node.js:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash source ~/.bashrc nvm install node nvm use node # Использование последней версии
Замените
v0.39.5
на самую актуальную версию скрипта установки NVM. -
Очистка кэша npm: Иногда кэш может вызывать проблемы. Попробуйте очистить его:
npm cache clean --force
-
Установка Canvas: Теперь попробуйте снова установить модуль Canvas:
npm install canvas
-
Сборка из исходного кода: Если установка все еще завершается ошибкой, вы можете попробовать установить Canvas, указав флаг для принудительной компиляции из исходников:
npm install canvas --build-from-source
Завершение
Если после выполнения всех рекомендаций установка Canvas все еще не удалась, внимательно просмотрите сообщения об ошибках и найдите дополнительные зависимости, которые могут отсутствовать. Иногда конкретные версии библиотек или конфигурации операционной системы могут вводить системы в замешательство.
К сожалению, Raspberry Pi может ограничивать некоторые функции из-за своей архитектуры, поэтому иногда рекомендуется использовать более мощный компьютер для разработки с последующим переносом на Raspberry Pi.
В случае любых последующих вопросов или необходимости более детальной информации, не стесняйтесь обращаться. Удачи в разработке!