Глобальная установка ganache-cli для npm не удалась (из-за sudo / permissions) - PullRequest
0 голосов
/ 13 декабря 2018

У меня npm версии 6.5.0 и узел v10.10.0.Не было никаких предыдущих проблем с глобальными установками npm.

sudo npm install --global ganache-cli

npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b master https://github.com/ethereumjs/ethereumjs-abi.git /root/.npm/_cacache/tmp/git-clone-305900d8
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-305900d8': Permission denied
npm ERR!     
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-12-12T20_49_21_325Z-debug.log

1 Ответ

0 голосов
/ 14 декабря 2018

Основная проблема заключается в том, что глобальная установка пакетов с npm связывает их в каталоги под /usr/local/, которые обычно принадлежат пользователю root.

Node Version Manager (nvm) это один из способов обойти такие хитрые проблемы с разрешениями.Это позволяет глобально установленным пакетам связываться с каталогами в вашей домашней папке под ~/.nvm/versions/node/<version>

Используя мой менеджер пакетов, я удалил node и соответствующее программное обеспечение, такое как npm.

Iиспользовал find /usr/local/ -name 'node_modules' для поиска /usr/local/ для любых остатков пакетов, которые я ранее установил глобально с npm.Удалите их все.

Затем я установил nvm, используя последний установочный скрипт из https://github.com/creationix/nvm

В моем случае это было

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

Я должен был затем связатьnvm в моем окружении.В моем случае это означало ручное редактирование моего .bashrc профиля, чтобы включить это:

export NVM_DIR="/home/zack/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

Оттуда я был готов получить самую последнюю версию LTS узла через nvm

nvm install --lts

Теперь глобально установленные пакеты можно устанавливать без sudo, поскольку они хранятся в ~/.nvm/versions/node/v10.14.2/ и все работает отлично!

...