执行npm install时mozjpeg报错:权限被拒绝与预构建测试失败
解决mozjpeg安装失败的问题
我之前在执行npm install时也碰到过一模一样的mozjpeg报错——预构建二进制跑不起来、源码编译又失败,给你几个亲测有效的解决办法:
1. 安装源码编译所需的依赖工具
mozjpeg从源码编译需要autoreconf、汇编器这类基础工具,先把它们补上:
- 如果你用Debian/Ubuntu系系统,执行:
sudo apt-get update && sudo apt-get install build-essential autoconf libtool nasm - 要是CentOS/RHEL系,用:
sudo yum groupinstall "Development Tools" && sudo yum install autoconf libtool nasm
装完之后重新跑npm install试试。
2. 清除npm缓存并重新安装
有时候缓存里的损坏文件会拖后腿,试试重置一下本地安装环境:
- 强制清除npm缓存:
npm cache clean --force - 删除本地的
node_modules目录和package-lock.json文件:rm -rf node_modules package-lock.json - 重新执行
npm install
3. 降级mozjpeg到稳定版本
新版本的mozjpeg可能和你的系统环境兼容性不佳,我之前降级到4.x版本就顺利解决了问题:
- 打开你的
package.json,把mozjpeg的版本改成"mozjpeg": "^4.1.1" - 然后执行
npm install
4. 检查npm权限问题
如果是用户目录下的npm权限不足导致编译失败,可以调整权限:
- 给当前用户赋予npm目录的所有权:
sudo chown -R $USER:$GROUP ~/.npm - 或者用
npx直接指定版本安装:npx mozjpeg@4.1.1 install
简单说下原因:mozjpeg的预构建二进制文件可能和你的系统架构、glibc版本不匹配,所以会触发源码编译流程,但如果缺少必要的编译工具链,就会出现你看到的autoreconf相关错误。
内容的提问来源于stack exchange,提问作者Miguel Mesquita Alfaiate
相关产品推荐
相关产品推荐

