簡體   English   中英

node_modules/bcrypt:命令失敗。 node-pre-gyp:權限被拒絕

[英]node_modules/bcrypt: Command failed. node-pre-gyp: Permission denied

故事

上周我重新安裝了我的 kubuntu,接下來我想處理存儲在另一個硬盤上的項目。

當我使用 Yarn Install 時,出現以下錯誤(請參閱下面的 §log)。

在重新安裝 kubuntu 之前一切正常。

規格

hadock in ~ 
➜ nvm -v  
0.37.2

hadock in ~ 
➜ node -v
v15.8.0

hadock in ~ 
➜ npm -v 
7.5.1

hadock in ~ 
➜ yarn -v
1.22.10

hadock in ~ 
➜ git --version
git version 2.27.0

我的package.json

{
  "name": "api",
  "private": true,
  "version": "1.0.0",
  "scripts": {
    "prebuild": "rimraf dist",
    "build": "nest build",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "nest start",
    "dev": "NODE_ENV=development nest start --watch",
    "dev:win": "SET NODE_ENV=development&& nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "node dist/src/main",
    "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:cov": "jest --coverage",
    "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
    "test:e2e": "jest --config ./test/jest-e2e.json",
    "generate-data": "node scripts/generate-dev-data-index.js"
  },
  "dependencies": {
    "@nestjs/common": "^7.4.4",
    "@nestjs/core": "^7.4.4",
    "@nestjs/jwt": "^7.1.0",
    "@nestjs/mongoose": "^7.0.2",
    "@nestjs/passport": "^7.1.0",
    "@nestjs/platform-express": "^7.4.4",
    "@nestjs/swagger": "^4.6.1",
    "@nestjs/testing": "^7.4.4",
    "@vonage/server-sdk": "^2.10.4",
    "aws-sdk": "^2.790.0",
    "bcrypt": "^5.0.0",
    "body-parser": "^1.19.0",
    "class-transformer": "^0.3.1",
    "class-validator": "^0.12.2",
    "dotenv": "^8.2.0",
    "exifreader": "^3.12.6",
    "express": "^4.17.1",
    "faker": "^5.1.0",
    "google-libphonenumber": "^3.2.15",
    "jsonapi-serializer": "^3.6.6",
    "jwt-decode": "^3.1.2",
    "mongodb": "^3.6.2",
    "mongoose": "^5.11.15",
    "multer": "^1.4.2",
    "nestjs-pino": "^1.2.0",
    "passport": "^0.4.1",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^6.6.3",
    "sharp": "^0.26.2",
    "sib-api-v3-typescript": "^2.0.2",
    "swagger-ui-express": "^4.1.4"
  },
  "devDependencies": {
    "@nestjs/cli": "^7.5.1",
    "@nestjs/schematics": "^7.1.2",
    "@shelf/jest-mongodb": "^1.2.3",
    "@types/aws-sdk": "^2.7.0",
    "@types/bcrypt": "^3.0.0",
    "@types/body-parser": "^1.19.0",
    "@types/dotenv": "^8.2.0",
    "@types/express": "^4.17.8",
    "@types/faker": "^5.1.2",
    "@types/google-libphonenumber": "^7.4.19",
    "@types/jest": "^26.0.14",
    "@types/jsonapi-serializer": "^3.6.3",
    "@types/node": "^14.11.8",
    "@types/passport": "^1.0.4",
    "@types/passport-jwt": "^3.0.3",
    "@types/sharp": "^0.26.1",
    "@types/supertest": "^2.0.10",
    "@typescript-eslint/eslint-plugin": "^4.4.0",
    "@typescript-eslint/parser": "^4.4.0",
    "eslint": "^7.11.0",
    "eslint-config-airbnb-base": "^14.2.0",
    "eslint-config-prettier": "^6.12.0",
    "eslint-plugin-import": "^2.22.1",
    "jest": "^26.5.3",
    "jest-serial-runner": "^1.1.0",
    "pino-pretty": "^4.3.0",
    "prettier": "^2.1.2",
    "supertest": "^5.0.0",
    "ts-jest": "^26.4.1",
    "ts-loader": "^8.0.4",
    "ts-node": "^9.0.0",
    "tsconfig-paths": "^3.9.0",
    "typescript": "^4.0.3"
  },
  "jest": {
    "displayName": {
      "name": "API",
      "color": "blue"
    },
    "verbose": true,
    "runner": "jest-serial-runner",
    "testSequencer": "../src/_test/config/sequencer.jest.js",
    "setupFiles": [
      "../src/_test/config/dotenv.module.ts"
    ],
    "moduleFileExtensions": [
      "js",
      "json",
      "ts"
    ],
    "rootDir": "src",
    "testRegex": ".spec.ts$",
    "transform": {
      "^.+\\.(t|j)s$": "ts-jest"
    },
    "collectCoverageFrom": [
      "**/*.(t|j)s"
    ],
    "coverageDirectory": "../coverage",
    "testEnvironment": "node",
    "preset": "@shelf/jest-mongodb",
    "testTimeout": 30000
  }
}

日志

[4/4] Building fresh packages...
⠁ 
[6/6] ⠂ mongodb-memory-server
[2/6] ⠂ bcrypt
[3/6] ⠂ exifreader
[4/6] ⠂ sharp
verbose 24.479452317 
verbose 24.558439202 Error: /home/hadock/samus/Projects/rm/rm-api/node_modules/bcrypt: Command failed.
Exit code: 126
Command: node-pre-gyp install --fallback-to-build
Arguments: 
Directory: /home/hadock/samus/Projects/rm/rm-api/node_modules/bcrypt
Output:
/bin/sh: 1: node-pre-gyp: Permission denied
    at ProcessTermError.ExtendableBuiltin (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:721:66)
    at ProcessTermError.MessageError (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:750:123)
    at new ProcessTermError (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:790:113)
    at ChildProcess.<anonymous> (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:25884:17)
    at ChildProcess.emit (node:events:378:20)
    at maybeClose (node:internal/child_process:1067:16)
    at Socket.<anonymous> (node:internal/child_process:453:11)
    at Socket.emit (node:events:378:20)
    at Pipe.<anonymous> (node:net:665:12)
error /home/hadock/samus/Projects/rm/rm-api/node_modules/bcrypt: Command failed.
Exit code: 126
Command: node-pre-gyp install --fallback-to-build
Arguments: 



我的測試

  • git 克隆項目,yarn -> 不起作用
  • 從 package 卸載 bcrypt 並通過yarn install bcrypt重新安裝 -> 不起作用
  • 卸載 nvm & yarn & reinstall 和yarn install -> 不起作用
  • 我檢查我對項目文件的權限,每個文件都設置為我的用戶drwxrwxr-x hadock hadock
  • 我做npm install -g node-gyp gyp & rm -rf node_modules & yarn修復了錯誤但得到了一個新錯誤( opencollective: Permission denied
[4/4] Building fresh packages...
[1/6] ⠂ @nestjs/core
[2/6] ⠂ bcrypt
[3/6] ⠂ exifreader
[4/6] ⠂ sharp
verbose 35.698648389 /bin/sh: 1: opencollective: Permission denied
verbose 35.744661021 Error: /home/hadock/samus/Projects/rm/rm-api/node_modules/bcrypt: Command failed.
Exit code: 126
Command: node-pre-gyp install --fallback-to-build
Arguments: 
Directory: /home/hadock/samus/Projects/rm/rm-api/node_modules/bcrypt
Output:
/bin/sh: 1: node-pre-gyp: Permission denied
    at ProcessTermError.ExtendableBuiltin (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:721:66)
    at ProcessTermError.MessageError (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:750:123)
    at new ProcessTermError (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:790:113)
    at ChildProcess.<anonymous> (/home/hadock/.nvm/versions/node/v15.8.0/lib/node_modules/yarn/lib/cli.js:25884:17)
    at ChildProcess.emit (node:events:378:20)
    at maybeClose (node:internal/child_process:1067:16)
    at Socket.<anonymous> (node:internal/child_process:453:11)
    at Socket.emit (node:events:378:20)
    at Pipe.<anonymous> (node:net:665:12)
error /home/hadock/samus/Projects/rm/rm-api/node_modules/bcrypt: Command failed.
Exit code: 126
Command: node-pre-gyp install --fallback-to-build
Arguments: 

不起作用或不相關

編輯 2021 年 2 月 15 日 - 1

我已經在我的操作系統驅動器中克隆了該項目,並且一切正常。

所以我運行chmod -R ug+rwx XXXX其中XXXX是我的項目驅動器。

但是yarn install不起作用。

我一直在尋找。

編輯 2021 年 2 月 15 日 - 2

問題是權利問題。

我必須在fstab文件(掛載選項部分)中更改我的第二個驅動器在引導時掛載的方式:

+ UUID="12345" /home/hadock/samus ext4 defaults 0 1

我的一個容器中的一張 ubuntu 圖像遇到了同樣的問題:

您可以在您的計算機上嘗試sudo apt-get install build-essential

apk add --no-cache --virtual .gyp \
        python \
        make \
        g++ \
    && apk del .gyp

更具體(推薦用於圖像)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM