2014-10-28 82 views
40

「請嘗試以Root/Administrator身份再次運行此命令」錯誤我試圖在我的機器上安裝LESS並已安裝節點。但是,當我輸入「node install -g less」時,出現以下錯誤,我不知道該怎麼辦?試圖安裝LESS

FPaulMAC:bin paul$ npm install -g less 
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less' 
npm ERR! { [Error: EACCES, unlink '/usr/local/lib/node_modules/less'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/usr/local/lib/node_modules/less' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 13.3.0 
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less" 
npm ERR! cwd /usr/local/bin 
npm ERR! node -v v0.10.33 
npm ERR! npm -v 1.4.28 
npm ERR! path /usr/local/lib/node_modules/less 
npm ERR! code EACCES 
npm ERR! errno 3 
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less' 
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less' 
npm ERR! error rolling back { [Error: EACCES, unlink '/usr/local/lib/node_modules/less'] 
npm ERR! error rolling back errno: 3, 
npm ERR! error rolling back code: 'EACCES', 
npm ERR! error rolling back path: '/usr/local/lib/node_modules/less' } 
npm ERR! not ok code 0 
+1

的[NPM拋出錯誤沒有sudo(http://stackoverflow.com/questions/16151018/npm-throws-error-without-sudo) – KyleMit 2015-07-08 02:41:19

回答

28

老實說這是來自npm的壞建議。一個安裝程序可以運行任意腳本並且運行它可以是極其危險的!你可以做sudo npm install -g less在全球範圍內安裝它,而是我會建議您更新NPM設置:

#~/.npmrc 
prefix=~/.npm_modules 

然後你就可以更新您的路徑:

#~/.bashrc or ~/.zshrc, etc. 
export PATH=$PATH:$HOME/.npm_modules/bin 

那麼你不需要root權限執行安裝,你仍然可以使用二進制。

但是,這隻適用於您的用戶。如果你希望整個系統能夠使用模塊,你必須告訴每個人添加你的路徑。更復雜和強大的解決方案將包括添加一個文件夾,其中包含一個組可以安裝到的節點模塊/二進制文件,並將添加到每個人的路徑。

+0

我不是真的什麼明確的可能重複我應該在你提供的代碼片段中做。你想讓我重命名一個文件? – 2014-10-28 16:05:17

+0

@StackOverflow我在說你在'.npmrc'和'.bashrc' /'.zshrc'配置文件中應該做這些更新。 '#'是表示註釋並顯示文件名 – 2014-10-28 16:07:09

+0

難題!對不起,我顯然是新的。我如何找到這些配置文件的位置? – 2014-10-28 16:11:39

55

Re Explosion Pills「安裝可以運行任意腳本並使用sudo運行它可能非常危險!」

似乎使用sudo是做錯的方法。

「更改文件的所有者在你的/ usr /本地文件夾到當前用戶:」

sudo chown -R $USER /usr/local 

然後運行安裝

node install -g less 

退房:

+0

術語'sudo'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。 – shuklendu 2016-07-21 06:00:06

+2

僅供參考,在OSX High Sierra中,由於受到限制,因此不能再chown/usr/local。 – Benjamin 2017-11-15 09:06:01

8

只是在前面加上sudo到命令的開始。 如前所述,安裝運行一些可能很危險的腳本,但我看到安裝在全球範圍內幫助很大,並且更簡單。

運行sudo npm install -g less

+1

已經提到過幾次 – Amit 2015-12-15 08:34:25

+0

幫我出去了+1 – cptstarling 2015-12-28 16:17:38

+0

你可能意思是「prepend」,而不是「追加」,即使如此,這也不是最好的解決方案。 – 2016-06-27 22:18:59

0

這是我必須做的開始使用一個都不能少編譯器,以避免問題作爲OP mentionned:

  1. 安裝node.js
  2. 與終端安裝NPM:sudo npm install npm -g
  3. 在終端上安裝少量編譯器:sudo npm install -g less(sudo使所有差異)
  4. 如果你正在使用PHPstorm:轉到「首選項...>插件」並安裝 NodeJS -plugin(可能需要「瀏覽存儲庫」以找到它)並重新啓動PHPstorm(根據提示)
  5. 之後,插件再次:安裝少編譯(可能 需要「瀏覽資源庫」找到它),然後重新啓動PHPstorm(如 提示)
  6. 一旦你建立了項目,進入「設置>工具> Filewatchers 「並添加」少「。 (以下簡稱「計劃」)的路徑應該象 這樣的東西:/usr/local/bin/lessc
  7. 確保軌道只有root文件在6
1

NPM的設置,檢查有官方網頁約fixing npm permissions時您會收到EACCES(錯誤:訪問)錯誤。該網頁甚至有一個視頻。

You can fix this problem using one of two options:

  1. Change the permission to npm's default directory.
  2. Change npm's default directory to another directory.
0

在我的情況下,我需要從5.3.0→5.4.2更新npm版本。

在我可以使用這個-- npm i -g npm ..我需要運行兩個命令完全解決了我的問題。它甚至很可能會解決你的問題。

第1步:sudo chown -R $USER /usr/local

第2步:npm install -g cordova ionic

這之後,您應該更新您的NPM到最新版本

第3步:npm i -g npm

那麼你是好去。希望這可以解決你的問題。 乾杯!

0

我也遇到了問題。這是我做過什麼:

  1. 卸載從控制面板的NodeJS>卸載程序
  2. 有在用戶//應用程序數據/漫遊2個文件夾 - >文件夾NPM和NPM-緩存文件夾。刪除這兩個。

現在,轉到nodeJS站點,然後重新安裝。選擇安裝選項中的第二個選項(即npm包)。安裝它。你的問題現在必須解決。

1

這一定會有所幫助。通過npm本身。 https://docs.npmjs.com/getting-started/fixing-npm-permissions

以下摘錄自URL以方便您閱讀。


方法1:將權限更改NPM的默認目錄

  1. 找到路徑,以故宮的目錄:

    npm config get prefix

對於許多系統,這將會是/ usr/local。

WARNING: If the displayed path is just /usr, switch to Option 2 or you will mess up your permissions.

  • 改變故宮的目錄的所有者爲當前用戶的名稱(您的用戶名!):

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

  • 這種變化npm和一些其他工具(lib/node_modules,bin和share)使用的子文件夾的權限。


    選項2:更改NPM的默認目錄到另一個目錄

    1. 讓全球的安裝目錄:

      mkdir ~/.npm-global

    2. 配置NPM使用新目錄路徑:

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

    3. 打開或創建〜/ .profile文件,加入這一行:

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

    4. 回到命令行上,更新系統變量:

      source ~/.profile

    測試:向下在不使用sudo的情況下全局加載軟件包。

    `npm install -g jshint` 
    

    而不是步驟2-4,您可以使用相應的ENV變量(例如,如果你不希望修改~/.profile):

    NPM_CONFIG_PREFIX=~/.npm-global


    選項3:使用需要照顧這對你

    如果你正在做一個新的軟件包管理器在Mac OS上安裝Node,您可以通過使用Homebrew軟件包管理器完全避免此問題。 Homebrew以正確的權限開箱即用。

    brew install node

    4

    我一直有這個問題,因爲Windows是我node_modules文件夾設置爲只讀。確保您取消選中此項。

    enter image description here