系统范围更新 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,gem 是按用户安装的(安装到~/.gem/ruby/),而不是按系统范围安装(安装到/usr/lib/ruby/gems/)。

这被认为是管理 Arch 上宝石的最佳方式,因为否则它们可能会干扰 Pacman 安装的宝石。

gem可以通过以 root 身份运行命令并附加标志来在系统范围内安装 Gems 。可以通过在(系统范围) 或(每个用户,覆盖系统范围)中--no-user-install替换 来将此标志设置为默认值。--user-install--no-user-install/etc/gemrc~/.gemrc

输入你的终端

sudo gem install sass --no-user-install

请参阅 arch wiki 中有关 ruby​​ gems 的内容。阅读按用户或系统范围安装 gems

答案2

您正在尝试使用 sudo 安装 gem,但是系统知道您的用户的路径,却不知道 sudo 用户的路径。

为了解决这个问题,请将以下行添加到您的~/.bashrc.~/zshrc文件中:

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

使用source命令更新您的配置文件或重新打开您的终端。

如果你使用 zsh:

source ~/.zshrc

或者使用 bash

source ~/.bashrc

通过这种方式,您无需 sudo 即可安装您的 gems,如下例所示:

gem install rspec 

相关内容