尝试在 Ubuntu 中安装 opencv4nodejs 时权限被拒绝

Permission denied while trying to install opencv4nodejs in Ubuntu

我尝试使用以下命令在 Ubuntu-20.04 中安装 opencv4nodejs,我的节点版本是 v12.19.0

sudo npm i -g opencv4nodejs

但是出现这些错误

info install installing opencv version 3.4.6 into directory: /usr/lib/node_modules/opencv4nodejs/node_modules/opencv-build/opencv
ERR! Error: Command failed: mkdir -p opencv
mkdir: cannot create directory ‘opencv’: Permission denied
 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! opencv-build@0.1.9 install: `node ./install.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the opencv-build@0.1.9 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-10-28T06_33_21_090Z-debug.log
  1. 运行 使用 sudo 进行 NPM 安装可能会导致权限问题。您可以尝试完全删除 node_modules 目录并 re-running NPM 在不使用 sudo 的情况下安装它。

  2. 还要确保您有权写入正在安装的目录?

  3. 如果还是不行请按此操作:

    sudo npm install -g opencv4nodejs --unsafe-perm=true --allow-root
    

这是将 opencv4nodejs 安装到 Linux OS 或 Raspberry pi (Raspberry Pi OS )

的完整指南

配置

   01- sudo raspi-config  expand file system  // this is for raspberry pi 
   After Reboot (sudo reboot now)
   02- df -h (To check expand file system)
   03- sudo apt-get update && sudo apt-get upgrade -y
   04- sudo passwd root  // set up your root password
   Reboot

安装 NodeJS

   01- sudo apt-get install git -y
   02- curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -  // replase 12 with latest nodejs (LTS) version
   03- sudo apt-get install nodejs -y
   04- sudo apt-get install gcc g++ make

安装opencv4nodejs

01. sudo apt-get install cmake -y
02. sudo npm install -g node-gyp

I am using this steps for raspberry pi os
03. sudo nano /etc/dphys-swapfile
    (Increase the CONF_SWAPSIZE from 100 to 1024)
        sudo /etc/init.d/dphys-swapfile stop
        sudo /etc/init.d/dphys-swapfile start

cd to home dir..
04. mkdir opencv
05. cd opencv
06. sudo npm init -y

07. su  
    // Enter your setup root password

08. sudo npm install --save opencv4nodejs

09. sudo nano /etc/dphys-swapfile
    (Set the CONF_SWAPSIZE back to 100)

在 index.js 和 node_modules 同一文件夹中

const cv = require("opencv4nodejs");

在 index.js 和 node_modules 中不在同一文件夹中

const cv = require("path/opencv/node_modules/opencv4nodejs");

!你不需要为每个文件夹安装 opencv4nodejs 你可以简单地用上面的方式调用它

希望大家能看懂... 有什么问题随时问...

谢谢