node_modules/bcrypt:命令失败.node pre-gyp:权限被拒绝



故事

上周我重新安装了我的kubuntu,旁边我想处理存储在另一个硬盘上的项目。

当我使用Yarn Install时,我会出现以下错误(请参阅下面的§日志)。

在重新安装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->不起作用
  • 从包中卸载bcrypt&通过yarn install bcrypt->不起作用
  • 卸载nvm&纱线&重新安装和yarn install->不起作用
  • 我在项目文件中检查我的权限,每个文件都设置为我的用户drwxrwxr-x hadock hadock
  • 我做npm install -g node-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: 

不起作用或不相关

  • Bcrypt安装失败
  • https://github.com/kelektiv/node.bcrypt.js/issues/803
  • https://github.com/kelektiv/node.bcrypt.js/issues/848
  • npm安装bcrypt失败节点
  • https://github.com/kelektiv/node.bcrypt.js/issues/590
  • https://github.com/kelektiv/node.bcrypt.js/issues/514

编辑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

更具体(推荐用于图像)

相关内容

最新更新