Ошибка: EACCES: разрешение отклонено, доступ к '/usr/lib/node_modules'

Я пытаюсь установить typescript с помощью команды npm install -g typescript и возвращает эту ошибку:

    npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'access',
    npm ERR!   path: '/usr/lib/node_modules' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "typescript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.1024969454
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.1024969454' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.

    npm ERR! Please include the following file with any support request:
    npm ERR!     /npm-debug.log
    [email protected]:/$ ^C
    [email protected]:/$ npm install typescript
    npm WARN checkPermissions Missing write access to /
    /
    └── [email protected] 

    npm WARN enoent ENOENT: no such file or directory, open '/package.json'
    npm WARN !invalid#1 No description
    npm WARN !invalid#1 No repository field.
    npm WARN !invalid#1 No README data
    npm WARN !invalid#1 No license field.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path /
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall access

    npm ERR! Error: EACCES: permission denied, access '/'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/'
    npm ERR!     at Error (native) errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.2387664261
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.2387664261' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.

    npm ERR! Please include the following file with any support request:
    npm ERR!     /npm-debug.log

Дополнительно я запускаю также npm install typescript (без -g), но не работает или не существует другого способа установки typescript? Моя ОС - Linux Ubuntu 16.04. Я редко использую node и не знаю, как исправить эту проблему.

Мой вопрос: точно, какие каталоги нуждаются в этих permmisions?

Ответ 1

Не рекомендуется использовать sudo с установкой npm, следуйте инструкциям из официальных документов npmjs :)

Создайте каталог для глобальных установок:

mkdir ~/.npm-global

Настройте npm для использования нового пути к каталогу:

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

Откройте или создайте файл ~/.profile и добавьте следующую строку:

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

Вернитесь в командную строку и обновите системные переменные:

source ~/.profile

Тест: Загрузите пакет глобально без использования sudo.

npm install -g typescript

Источник: https://docs.npmjs.com/getting-started/fixing-npm-permissions

Ответ 2

При установке глобальных пакетов в ubuntu вам нужны специальные права на запись при записи в папку usr/bin. Это по соображениям безопасности.

Итак, каждый раз, когда вы устанавливаете глобальный пакет, используйте:

sudo npm install -g [package-name]

для вашего конкретного случая:

sudo npm install -g typescript

При попытке без -g все, что вы делаете, устанавливается локально в любой папке, в которой вы находитесь:

так: npm install typescript создаст папку node_modules в папке, в которой вы находитесь.

Ответ 3

У меня та же проблема с установкой сервера Webpack в глобальном масштабе, используйте шаги Решил мою проблему, моя работа для вас.

Шаги, упомянутые выше. Сделайте резервную копию вашего компьютера перед началом работы.

Создайте каталог для глобальных установок:

1. mkdir ~/.npm-global

Настройте npm для использования нового пути к каталогу:

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

Откройте или создайте файл ~/.profile и добавьте следующую строку:

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

Вернитесь в командную строку и обновите системные переменные:

4. source ~/.profile

Тест: Загрузите пакет глобально без использования sudo.

npm install -g jshint

Вместо шагов 2-4 вы можете использовать соответствующую переменную ENV (например, если вы не хотите изменять ~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global

Ответ 4

1) Перейдите в каталог "/usr/local/lib/node_modules"

2) Нажмите на папку и щелкните правой кнопкой мыши Получить информацию

3) Нажмите на замок внизу справа

4) Введите пароль окна, чтобы разблокировать

5) Проверьте значение колеса и каждого, чтобы читать и писать

6) Вернитесь к своему терминалу и попробуйте снова установить Typescript.

Ответ 5

это сработало для меня.

sudo npm install -g coffee-script

затем

sudo npm install -g typescript