Lỗi: EACCES: quyền bị từ chối, truy cập '/ usr / local / lib / node_modules' phản ứng


298

Điều gì có thể gây ra lỗi Error: EACCES: permission denied, access '/usr/local/lib/node_modules'?

npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

9
Xem hướng dẫn chính thức của NPM về cách giải quyết vấn đề này: docs.npmjs.com/ Kẻ
Dzhuneyt

Câu trả lời:


486

thay đổi quyền tập tin của bạn .. như thế này

đầu tiên kiểm tra ai sở hữu thư mục

ls -la /usr/local/lib/node_modules

nó đang từ chối quyền truy cập vì thư mục node_module được sở hữu bởi root

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

Vì vậy, điều này cần phải được thay đổi bằng cách thay đổi root cho người dùng của bạn nhưng trước tiên hãy chạy lệnh bên dưới để kiểm tra người dùng hiện tại của bạn Làm cách nào để có được tên của người dùng đang hoạt động thông qua dòng lệnh trong OS X?

id -un

HOẶC LÀ

whoami

sau đó đổi chủ

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

HOẶC LÀ

sudo chown -R ownerName: /usr/local/lib/node_modules

HOẶC LÀ

sudo chown -R $USER /usr/local/lib/node_modules

3
Có trường hợp khi thêm sudo trong lệnh cũng không hoạt động. Điều này làm việc cho tôi và nên được chấp nhận câu trả lời.
Niroj Shr

1
Công ty của tôi sử dụng Microsoft Active Directory Đăng nhập một lần. Vì vậy, tên nhóm có dấu gạch chéo trong đó và một khoảng trắng trong đó. Điều này làm cho việc này khó hơn một chút để làm. Lệnh tôi đã sử dụng là sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules. Để liệt kê đúng tên nhóm tôi đã làm id -gn myuser.
Patrick

44
Điều này rất hữu ích nhưng khi tôi chạy lệnh để thay đổi chủ sở hữu, tôi đã nhận được illegal group name. Vì vậy, tôi đã thay đổi lệnh để sudo chown -R ownerName: /usr/local/lib/node_modulesvà nó hoạt động.
Midori

4
Mặc dù đó là câu trả lời đúng, tôi đã gặp phải vấn đề này nhiều lần và giải pháp tốt hơn là sử dụng nvm. bằng cách này, bạn sẽ không cần phải thay đổi chủ sở hữu tập tin bằng cách sử dụng chown. github.com/nvm-sh/nvm
Roee

1
Thay vì sử dụng quyền, khuyến nghị trong tài liệu nên cài đặt npm với nvm. Xem stackoverflow.com/a/59575266/2311074
Adam

105

Để giảm thiểu khả năng xảy ra lỗi quyền, bạn có thể định cấu hình npm để sử dụng một thư mục khác. Trong ví dụ này, bạn sẽ tạo và sử dụng một thư mục ẩn trong thư mục chính của bạn.

Sao lưu máy tính của bạn. Trên dòng lệnh, trong thư mục chính của bạn, tạo một thư mục để cài đặt toàn cầu:

mkdir ~/.npm-global

Cấu hình npm để sử dụng đường dẫn thư mục mới:

npm config set prefix '~/.npm-global'

Trong trình soạn thảo văn bản ưa thích của bạn, mở hoặc tạo

~/.profile

tập tin và thêm dòng này:

export PATH=~/.npm-global/bin:$PATH

Trên dòng lệnh, cập nhật các biến hệ thống của bạn:

source ~/.profile

Để kiểm tra cấu hình mới của bạn, hãy cài đặt gói trên toàn cầu mà không cần sử dụng sudo


18
Đây là lựa chọn ít phá hủy nhất theo ý kiến ​​của tôi. Nó cũng được đề xuất trong trang web npm .
17xande

Ngoài ra, nếu bạn không muốn làm npm config set prefix(đặc biệt nếu bạn đang viết trình cài đặt không root), bạn có thể muốn ghi đè PREFIXvar env hoặc cung cấp --prefixtùy chọn, cả hai đều tương đương npm config set prefix. (không chắc chắn ghi đè cái nào)
SOFe

Điều này làm việc hoàn hảo cho tôi. Theo tôi, câu trả lời này tạo ra ít chỗ nhất cho các lỗi phá hoại và rất đơn giản để hiểu và thực hiện.
clockelliptic

1
Đây là những gì đang tìm kiếm! Cảm ơn.
djangodude

Đây thực sự là giải pháp được đề xuất và là giải pháp tốt nhất trong dài hạn.
Al-Mothafar

49

Tất cả những gì bạn cần làm là thêm USER vào chủ sở hữu của / local / lib

sudo chown -R $USER /usr/local/lib

7
Nếu độc giả trong tương lai không hiểu quyền, thì vui lòng tham khảo tài liệu NPM chính thức và khắc phục sự cố. docs.npmjs.com/ . Cụ thể, độc giả tương lai có lẽ nên cài đặt lại npm với trình quản lý phiên bản nút (được khuyến nghị)
ordonezalex

1
Việc này thật thẳng thắn. Nó cũng có nghĩa là bạn không bao giờ cần phải lo lắng về bất cứ điều gì trong lib nữa; bạn sở hữu / usr / local / lib.
Obinna Nnenanya

4
Đây không phải là một giải pháp tốt cả. Bằng cách chạy ở trên, chownbạn có nguy cơ cao phá hủy cấu trúc cấp phép của toàn bộ hệ thống tệp của bạn.
Lars

3
Lệnh này đã phá hỏng tất cả các quyền của tôi. Cần phục hồi lại tất cả mọi thứ.
Azam Alvi

4
Nói chính xác, đây không phải là thêm chủ sở hữu. Đây là thay đổi các chủ sở hữu, đó là xa hơn phá hoại hơn là chỉ thêm , và gần như phá hoại như sudo chmod -R 777 /.
SOFe

29

hãy thử nối sudo trước bất cứ lệnh nào bạn đang thử.

như thế này: cài đặt sudo npm

Sử dụng sudo với một lệnh trong Linux / UNIX thường nâng quyền của bạn lên mức siêu người dùng. Trong Windows, tài khoản superuser thường được gọi là 'Quản trị viên'. Trong Linux / Unix, tài khoản superuser thường được đặt tên là 'root'.

Người dùng root có quyền truy cập, sửa đổi hoặc xóa hầu hết mọi tệp trên máy tính của bạn. Tài khoản người dùng bình thường có thể truy cập, sửa đổi hoặc xóa nhiều tệp ít hơn. Các hạn chế đối với tài khoản thông thường bảo vệ máy tính của bạn khỏi các chương trình hoặc người dùng trái phép hoặc có hại. Một số quy trình yêu cầu bạn thực hiện các hành động trên các tệp hoặc thư mục mà bạn thường không có quyền truy cập. Cài đặt chương trình mà mọi người đều có thể truy cập là một trong những hành động này.

Trong trường hợp của bạn, việc chạy lệnh cài đặt với sudo cung cấp cho bạn quyền của siêu người dùng và cho phép bạn sửa đổi các tệp mà người dùng bình thường của bạn không có quyền sửa đổi.


57
tránh sử dụng sudo trong khi cài đặt gói npm. Bạn càng đi sâu với con đường như vậy thì càng khó sửa nó sau đó. Chỉ cần thay đổi quyền vào thư mục npm như được chỉ ra trong một câu trả lời khác và sống một cuộc sống tốt hơn.
Lukas Liesis

2
Điều đó có thể làm việc nhưng nó sẽ gây ra vấn đề liên tục theo thời gian. Tránh điều này nếu bạn không muốn nhận được tất cả các loại lỗi bị từ chối. Giống như bị từ chối vào thư mục bộ nhớ cache npm, từ chối cài đặt và như vậy.
Lukas Liesis

1
Câu trả lời này nên được loại bỏ bằng cách sử dụng sudo trước khi cài đặt các gói đặt tiền lệ rất nguy hiểm nếu người dùng không hiểu quyền. Vui lòng tham khảo câu trả lời đầu tiên trong đó bạn thay đổi quyền sở hữu vị trí nút lõi một lần.
SeaWar Warrior404

19

Tôi đã thử giải pháp cho câu trả lời do @okanda đưa ra nhưng nó không hiệu quả với tôi.

Tuy nhiên, nó hoạt động hoàn hảo khi tôi thực hiện nó cho một số thư mục như được đề cập trong chủ đề này: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493

sudo chown -R $USER /usr/local/lib/node_modules/
sudo chown -R $USER /usr/local/bin/
sudo chown -R $USER /usr/local/share/

Cảm ơn, câu trả lời này đã giúp tôi. Ubuntu 18.04.3
bakhti_UZB

Tôi đã có các giải pháp khác hoạt động trước đây, nhưng vì một số lý do, lần này phải mất tất cả những giải pháp này để làm việc với các thư mục. Cảm ơn. Mac v 10.15.2
Amir5000

1
Có an toàn để chạy trong máy chủ sản xuất?
Cheezey

16

Trong khi cài đặt các gói toàn cầu trong Ubuntu , bạn cần có quyền ghi đặc biệt khi bạn đang ghi vào usr/binthư mục. Đó là vì lý do bảo mật. Vì vậy, mỗi khi bạn cài đặt gói toàn cầu, hãy sử dụng:

sudo npm install -g [package-name]

Đối với trường hợp cụ thể của bạn, nó sẽ là:

sudo npm install -g typescript

14

Có vẻ như bạn đang gặp vấn đề về sự cho phép. Nếu bạn đang cài đặt npm-packagesthì có thể bạn đang gặp EACCESlỗi khi cố gắng cài đặt một gói trên toàn cầu. Điều này có nghĩa là bạn không có quyền ghi vào các thư npmmục sử dụng để lưu trữ các gói và lệnh toàn cầu.

Hãy thử chạy các lệnh: sudo chmod u+x -R 775 ~/.npmsudo chown $USER -R ~/.npmhoặc bạn có thể chạy bất kỳ npmlệnh nào sudo, điều đó sẽ giải quyết vấn đề của bạn.

Nếu bạn đang cài đặt một npm-packagecục bộ, thì bạn nên ở trong thư mục dự án cục bộ của mình và có thể thử chạy sudo npm install <pkg-name>lệnh để cài đặt gói cần thiết. Mục đích của việc sử dụng sudolà nó sẽ thay đổi quyền sở hữu của bạn để bạn có thể khiến người dùng hiện tại của mình được phép chạy npmcác lệnh.

Tôi khuyên bạn nên xem https://docs.npmjs.com/getting-started/fixing-npm-permissions


10

Tôi đã cố gắng cài đặt expo phản ứng và ngoài sudo tôi phải thêm --unafe-perm

như thế này. Điều này giải quyết vấn đề của tôi

sudo npm install -g expo-cli --unsafe-perm

@Furquan, Cảm ơn bạn rất nhiều ... Nó đã làm việc cho tôi sau khi thử các giải pháp khác nhau.
AzeTech

@AzeTech, tôi rất vui vì nó đã giúp: D
Furquan

9

Nếu bạn đang phải đối mặt với vấn đề này trên máy Mac. Thực hiện theo các bước sau

Trước tiên hãy kiểm tra ai là chủ sở hữu của tệp này bằng cách sử dụng lệnh bên dưới

ls -la /usr/local/lib/node_modules

bạn sẽ tìm thấy một số tập tin như bên dưới một trong số họ ở bên dưới

drwxr-xr-x   3 root    wheel  768 May 29 02:21 node_modules

Bạn có để ý rằng tập tin bên trên là của riêng bạn, để thực hiện các thay đổi bên trong cho bạn cần thay đổi đường dẫn của chủ sở hữu.

bạn có thể sử dụng kiểm tra ai là người dùng hiện tại bằng lệnh này

id -un (in my case user is yamsol)

và sau đó bạn có thể thay đổi bằng cách gọi lệnh này (chỉ cần thay thế tên người dùng của bạn bằng ownName)

sudo chown -R ownerName: /usr/local/lib/node_modules

trong trường hợp của tôi như bạn biết người dùng là "yamsol" tôi sẽ gọi lệnh này theo cách này

sudo chown -R yamsol: /usr/local/lib/node_modules

đó là nó.


8

Hãy cẩn thận với tất cả các phản hồi thay đổi chủ sở hữu của tất cả các thư mục trong / usr / local Về cơ bản, đừng làm rối hệ thống linux !!!

Tôi nghĩ rằng cách tốt nhất là sử dụng thư mục của riêng bạn để định vị tất cả các gói toàn cầu: https://www.competa.com/blog/how-to-run-npm-without-sudo/


8

Bạn có thể cài đặt npm thông qua trình quản lý phiên bản Node hoặc trình cài đặt Node. Trong các tài liệu có ghi:

Chúng tôi không khuyên bạn nên sử dụng trình cài đặt Node, vì quá trình cài đặt Node cài đặt npm trong một thư mục có quyền cục bộ và có thể gây ra lỗi quyền khi bạn chạy các gói npm trên toàn cầu.

Vì bạn có lỗi quyền , có lẽ bạn đã cài đặt npm thông qua trình cài đặt Node và bây giờ bạn cần cài đặt lại nó bằng nvm (trình quản lý phiên bản nút).

May mắn thay, điều này rất đơn giản. Bạn thậm chí không cần xóa phiên bản hiện tại của npm hoặc Node.js.

Tất cả bạn cần làm là

  1. Cài đặt nvm. Đối với OSX hoặc Linux Node, hãy sử dụng:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

    Điều này tạo ra một thư mục nvm trong thư mục nhà của bạn.

Sau đó

  1. Cài đặt npm và node.js thông qua nvm. Để làm như vậy, chỉ cần gọi

    nvm install stable

Bây giờ bạn có thể cài đặt gói của mình trên toàn cầu mà không cần sử dụng sudohoặc thay đổi chủ sở hữu node_modulestrong usrthư mục.


cảm ơn vì câu trả lời Adam! chỉ tự hỏi điều gì có thể là một số biến chứng có thể xảy ra sau này trong quá trình thiết lập xây dựng / môi trường?
奇 - Archy Will He

cũng để xây dựng, đối với người trên fish, để làm việc đúng nhu cầu của nvm một cá-wrapper github.com/FabioAntunes/fish-nvm
吖奇说-何魏奇Archy Will Ông

@ 吖 奇 ARCHYSHUō Tôi chưa bao giờ nghe thấy bất kỳ biến chứng nào khi cài đặt nút với nvm. Và vì nó được đề xuất từ ​​các tài liệu chính thức, nên theo tôi đây là cách tốt nhất để đi :)
Adam

7

Sử dụng lệnh này để cài đặt npm như người dùng sudo:

sudo npm install -g create-react-app 

thay vì cài đặt npm -g tạo-Reac-a pp.


trích dẫn @ Lukas- sử dụng sudo trong khi cài đặt các gói npm. Bạn càng đi sâu với con đường như vậy thì càng khó sửa nó sau đó. Chỉ cần thay đổi quyền vào thư mục npm như được chỉ ra trong một câu trả lời khác và sống một cuộc sống tốt hơn.
सत यम व

6

Tôi đã có thể khắc phục vấn đề bằng cách sử dụng như sau trong mac.

sudo npm install -g @aws-amplify/cli --unsafe-perm=true

6

Dành cho người dùng nvm

sudo chown -R $USER /home/bereket/.nvm/versions/node/v8.9.1/lib/node_modules 

sudo chown -R $USER /usr/local/lib/node_modules/

thay thế v8.9.1bằng phiên bản nút của bạn mà bạn đang sử dụng.


Điều này không làm việc cho tôi! Vẫn nhận được lỗi: npm ERR! Lỗi: EACCES: quyền bị từ chối, đổi tên /home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules/.staging/npm-90fab7c7/node_modules/columnify/node_ododododododododododododododododododododododododod một cái gì đó với /.staging .. thư mục đó không tồn tại sau khi thử cài đặt. Bạn có thể giúp tôi với đó?
Samuel

@Samuel bạn đã chạy lệnh này? sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules
bereket gebredingle

5

Có vẻ như bạn đã cố gắng cài đặt gói npm trên toàn cầu thay vì cục bộ, như man npm installmô tả:

Đối số -g hoặc --global sẽ khiến npm cài đặt gói trên toàn cầu thay vì cục bộ.

Nói chung, khi bạn đang thiết lập một dự án npm (trong số nhiều dự án khác mà bạn có thể có), không nên cài đặt các gói trên các mô-đun toàn cầu của Node.js (/ usr / local / lib / node_modules), như nhật ký gỡ lỗi của bạn đề nghị.

Thay vì sử dụng -g, hãy sử dụng --save, nó sẽ tự động lưu gói dưới dạng phụ thuộc cho package.jsontệp của bạn :

Như thế này:

$ npm install express-generator --save

$ cat package.json 
{
  "name": "first_app_generator",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
  "author": "ivanleoncz",
  "license": "MIT",
  "dependencies": {
    "express-generator": "^4.16.0"
  }
}

Nhưng như các câu trả lời khác được đề cập, nếu bạn sẽ sử dụng -g, bạn phải sử dụng sudo( nếu người dùng của bạn có đặc quyền sudo: see / etc / sudoers ) khi thực hiện npm install express-generator -g, nhưng thực sự, đó không phải là ý tưởng hay, có thể gây ra sự cố về quyền.

ĐỂ Ý

Có các hướng dẫn để cài đặt express-generatorvới -gtùy chọn, để có express-cli.jssẵn tập lệnh trên đường dẫn hệ thống, nhưng bạn cũng có thể sử dụng tập lệnh được cài đặt cục bộ, nằm ở node_modulesdự án npm của bạn:

$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp

Nếu một thông báo như / usr / bin / env: 'node': Không có tệp hoặc thư mục nào như vậy xuất hiện, hãy cài đặt nodejs-legacy(Debian / Ubuntu)

IMHO, sử dụng -g(cũng sử dụng sudo) giống như hic sunt dracones , nếu bạn không chắc chắn về hậu quả.

Để biết thêm thông tin:


4

Điều này xảy ra do npmkhông thể truy cập node_modulesthư mục toàn cầu của bạn cục bộ, đang chạy

sudo chown -R Name: /usr/local/lib/node_modules

ví dụ

sudo chown -R developerayo: /usr/local/lib/node_modules

khắc phục sự cố, bây giờ bạn có thể chạy lệnh bạn đã chạy lại.


3

Đơn giản là bạn có thể thay đổi chủ sở hữu hoặc chỉ sử dụng sudo trước khi bạn ra lệnh như thế này

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules( đổi chủ )

hoặc là

sudo npm install -g json-server

đó là nó.


3

Đối với linux / ubfox nếu lệnh

npm install -g <package_name>

npm WARN deprecated superagent@4.1.0: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header).  This notice will go away with v5.0.2+ once it is released.

npm ERR! path ../lib/node_modules/<package_name>/bin/..

npm ERR! code EACCES

npm ERR! errno -13

npm ERR! syscall symlink

npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules
/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!  { [Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>']

npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!      errno: -13,

npm ERR!      code: 'EACCES',

npm ERR!      syscall: 'symlink',

npm ERR!      path: '../lib/node_modules/<package_name>/bin/..',
npm ERR!      dest: '/usr/local/bin/ionic' },

npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, symlink \'../lib/node_modules/ionic/bin/ionic\' -> \'/usr/local/bin/ionic\'',

npm ERR!   errno: -13,

npm ERR!   code: 'EACCES',

npm ERR!   syscall: 'symlink',

npm ERR!   path: '../lib/node_modules/<package-name>/bin/<package-name>',

npm ERR!   dest: '/usr/local/bin/<package-name>' }

npm ERR! 

npm ERR! The operation was rejected by your operating system.

npm ERR! It is likely you do not have the permissions to access this file as the current user

npm ERR! 

npm ERR! If you believe this might be a permissions issue, please double-check the

npm ERR! permissions of the file and its containing directories, or try running

npm ERR! the command again as root/Administrator (though this is not recommended).


npm ERR! A complete log of this run can be found in:

npm ERR!     /home/User/.npm/_logs/2019-07-29T01_20_10_566Z-debug.log

Khắc phục: Cài đặt với quyền root

sudo npm install <package_name> -g


3

Bạn cần có sự cho phép của các cấp siêu người dùng để cài đặt React. Trong Linux / Unix, tài khoản superuser thường được đặt tên là 'root'.

Để có được đặc quyền siêu người dùng, chỉ cần chạy lệnh sau trên thiết bị đầu cuối của bạn:

sudo -i

và sau đó chỉ cần chạy lệnh để cài đặt React:

npm install -g create-react-app

Tuy nhiên, nhóm Reacjs khuyến khích chúng ta sử dụng lệnh sau thay vì cài đặt gói toàn cầu.

npx create-react-app app_name

1
Sử dụng sudo là một đề xuất rủi ro, một số gói có thể an toàn nhưng những gói khác có thể bắt đầu làm việc khác và tận dụng các đặc quyền gốc mà bạn đang cấp. sudo chạy các lệnh tiếp theo dưới dạng superuser
rustyDev

Một số gói như create-react-appcần đặc quyền gốc để được cài đặt như gói toàn cầu; nếu không, bạn sẽ không thể cài đặt nó. Tuy nhiên, nhóm Reacjs khuyến khích chúng ta sử dụng lệnh sau npx create-react-app app_namethay vì cài đặt gói toàn cầu.
FHRa T. Zuhora



2

Sau thời gian dài nghiên cứu tôi hiểu rằng không có gì bắt buộc đối với mac OS để cài đặt cli góc, chỉ cần sử dụng sudo npm install -g @angular/clithiết bị đầu cuối của bạn sẽ nhắc mật khẩu nhập mật khẩu của bạn, nó sẽ tiến hành cài đặt cli. Nó làm việc cho tôi.



2

Nếu bạn đang chạy Linux (tức là: Arch)

# npm -g install packageName

Theo mặc định, lệnh này cài đặt gói dưới / usr / lib / node_modules / npm và yêu cầu quyền root để làm như vậy.

Để cho phép cài đặt trên toàn người dùng

Để cho phép cài đặt gói toàn cầu cho người dùng hiện tại, hãy đặt npm_config_prefixbiến môi trường. Điều này được sử dụng bởi cả npm và sợi.

~/.profile
PATH="$HOME/.node_modules/bin:$PATH"
export npm_config_prefix=~/.node_modules

Đăng nhập lại hoặc nguồn để cập nhật thay đổi.

Bạn cũng có thể chỉ định --prefixtham số cho npm install. Tuy nhiên, điều này không được khuyến khích, vì bạn sẽ cần thêm nó mỗi khi bạn cài đặt gói toàn cầu.

$ npm -g install packageName --prefix ~/.node_modules

Vì vậy, bạn không phải chown hoán vị thư mục


1

Tôi đã có thể thoát khỏi vấn đề này bằng cách cài đặt nvm, sau đó cài đặt nút thành phiên bản mới nhất.

  1. Cài đặt nvmbằng cách sử dụng curl(đối với phiên bản mới nhất, hãy truy cập nvm.sh )
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  1. Liệt kê các phiên bản nút có sẵn
nvm ls

v10.12.0
mặc định - -> v10.12 (> v10.12.0)
nút -> ổn định (-> v10.12.0) (mặc định)
ổn định -> 10,12 (-> v10.12.0)
...

  1. Chọn phiên bản nào của nút để sử dụng
nvm use v10.12

nvm không tương thích với tùy chọn "tiền tố" cấu hình npm: hiện được đặt thành ""

  1. Chạy cái này để bỏ đặt tùy chọn:
nvm use --delete-prefix v10.12.0

Sau khi làm theo các lệnh trên, bạn sẽ có thể cài đặt Reac / angular trong Ubuntu.


1

Sử dụng 'sudo npm install xyz' nó sẽ hoạt động.



0

Tôi đã sử dụng sudo, nhưng nó không giải quyết được vấn đề, tôi đã khắc phục vấn đề bằng cách thay đổi quyền của thư mục node_modules,

sudo chmod -R 777 node_modules

Nếu bạn muốn, bạn có thể thay thế 777 bằng bất kỳ mã nào khác nếu bạn không đặt quyền cho tất cả người dùng / nhóm.


0

Đối với những bạn vẫn không thể khắc phục vấn đề sau khi sử dụng các giải pháp được đề cập ở trên. Thử cái này

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Điều đó nên làm các mẹo, chúc mừng!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.