更新系統範圍更新 Arch Linux 後 Gem 安裝未執行

更新系統範圍更新 Arch Linux 後 Gem 安裝未執行

當嘗試在目標資料夾內執行時sass --watch scss:css,我收到返回的訊息command not found

我知道我安裝了 sass。gem list不再顯示它已安裝。

我運行sudo gem install sass並收到以下訊息:

WARNING: You don't have /root/.gem/ruby/2.3.0/bin in your PATH
         gem executables will not run.

我去查看我的.bashrc檔案。我有PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

我也把它放進去/etc/bash.bashrc以防萬一。沒有什麼變化。

我轉到 /etc/profile 並插入:

#Setting the GEM_PATH and GEM_HOME variables may not be necessary, check 'gem env' output to verify whether both variables already exist 
 GEM_HOME=$(ls -t -U | ruby -e 'puts Gem.user_dir')
 GEM_PATH=$GEM_HOME
 export PATH=$PATH:$GEM_HOME/bin

我重新加載配置文件. /etc/profile

我嘗試重新安裝 sasssudo gem install sass

還是一樣的錯誤訊息。gem list還是沒有顯示sass

現在怎麼辦?

答案1

預設情況下,在 Arch Linux 中,運行時gem,gems 會按使用者安裝(到~/.gem/ruby/),而不是系統範圍(到/usr/lib/ruby/gems/)。

這被認為是在 Arch 上管理寶石的最佳方式,因為否則它們可能會幹擾 Pacman 安裝的寶石。

gem可以透過以 root 身分執行命令並附加標誌來在系統範圍內安裝 Gems --no-user-install。此標誌可以透過替換--user-install--no-user-installin /etc/gemrc(系統範圍)或~/.gemrc(每個用戶,覆蓋系統範圍)來設定為預設值。

輸入你的終端

sudo gem install sass --no-user-install

請參閱有關紅寶石的 arch wiki。閱讀為每個使用者或系統範圍安裝 gem

答案2

您嘗試使用 sudo 安裝 gem,但係統知道您的使用者的路徑,但不知道 sudo 使用者的路徑。

若要解決此問題,請將以下行新增至您的~/.bashrc.~/zshrc檔案:

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

使用該source命令更新您的設定檔或重新開啟終端。

如果您使用 zsh:

source ~/.zshrc

或使用 bash

source ~/.bashrc

這樣,您將無需 sudo 即可安裝 gem,如下例所示:

gem install rspec 

相關內容