Jekyll:尽管安装了最新版本,但未发现命令问题

时间:2019-07-02 01:34:25

标签: ruby rubygems jekyll homebrew

我在安装Jekyll时遇到问题。 Ruby,Homebrew和Gems一切都是最新的:

Quocs-MacBook-Air:~ quochoantrinh$ brew -v
Homebrew 2.1.6
Homebrew/homebrew-core (git revision 2796; last commit 2019-07-01)
Quocs-MacBook-Air:~ quochoantrinh$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin16]
Quocs-MacBook-Air:~ quochoantrinh$ gem -v
3.0.3

然后我在官方网站(https://jekyllrb.com/docs/installation/macos/)的macOS设置上从Jekyll中运行了以下内容

export PATH=/usr/local/opt/ruby/bin:$PATH

然后我执行了以下命令:

gem install --user-install bundler jekyll
export PATH=$HOME/.gem/ruby/2.6.3/bin:$PATH

但是,当我在终端中运行jekyll时,它会提示我“找不到命令”。

这是我的宝石环境

Quocs-MacBook-Air:~ quochoantrinh$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.3
  - RUBY VERSION: 2.6.3 (2019-04-16 patchlevel 62) [x86_64-darwin16]
  - INSTALLATION DIRECTORY: /Users/quochoantrinh/.rvm/gems/ruby-2.6.3
  - USER INSTALLATION DIRECTORY: /Users/quochoantrinh/.gem/ruby/2.6.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /Users/quochoantrinh/.rvm/gems/ruby-2.6.3/bin
  - SPEC CACHE DIRECTORY: /Users/quochoantrinh/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/2.6.3/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-16
  - GEM PATHS:
     - /Users/quochoantrinh/.rvm/gems/ruby-2.6.3
     - /Users/quochoantrinh/.rvm/rubies/ruby-2.6.3/lib/ruby/gems/2.6.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/opt/ruby/bin
     - /Users/quochoantrinh/.yarn/bin
     - /Users/quochoantrinh/.config/yarn/global/node_modules/.bin
     - /Users/quochoantrinh/anaconda3/bin
     - /Users/quochoantrinh/anaconda3/bin
     - /Users/quochoantrinh/anaconda/bin
     - /Users/quochoantrinh/.gem/ruby/2.6.3/bin
     - /Users/quochoantrinh/.rvm/gems/ruby-2.6.3/bin
     - /Users/quochoantrinh/.rvm/gems/ruby-2.6.3@global/bin
     - /Users/quochoantrinh/.rvm/rubies/ruby-2.6.3/bin
     - /Users/quochoantrinh/.yarn/bin
     - /Users/quochoantrinh/.config/yarn/global/node_modules/.bin
     - /Users/quochoantrinh/anaconda3/bin
     - /Users/quochoantrinh/anaconda3/bin
     - /Users/quochoantrinh/anaconda/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Library/Frameworks/Mono.framework/Versions/Current/Commands
     - /Users/quochoantrinh/.rvm/bin

1 个答案:

答案 0 :(得分:0)

这里发生了一些事情,但是要解决您当前的问题,我认为应该这样做:

export PATH="$HOME/.gem/ruby/2.6.0/bin:$PATH"

使用--user-install标志时,它将在运行USER_INSTALLATION_DIRECTORY时提到的gem env中安装宝石,在您的情况下为/Users/quochoantrinh/.gem/ruby/2.6.0,将/bin添加到PATH时添加。并不是要更改USER_INSTALLATION_DIRECTORY,而是需要将PATH设置为指向USER_INSTALLATION_DIRECTORY。我知道它不是很直观,因为您认为您想使用与当前Ruby版本(2.6.3)相对应的路径,但是USER_INSTALLATION_DIRECTORY始终以0结尾。它仅使用前两位数字Ruby版本。如果您要升级到今天的最新版本2.7.2,则PATH必须指向2.7.0

请注意,仅在您当前的会话期间运行上面的export PATH命令。如果希望每次退出并重新启动Terminal或打开新选项卡时都可以使用jekyll,则需要将该export PATH命令添加到Shell启动文件中,通常为{{1} }或~/.bash_profile。如果不确定使用的是哪个Shell,请阅读以下内容:https://www.moncefbelyamani.com/which-shell-am-i-using-how-can-i-switch/

我还注意到您似乎已经在Homebrew和RVM上安装了Ruby。这可能会引起问题。我总是建议人们使用Ruby管理器(例如RVM,rbenv和chruby)安装Ruby,因为他们中的大多数会自动为您设置一切。您不必担心手动设置~/.zshrc并考虑是否要添加PATH。我首选的管理器是chruby,因为它最轻巧,最易于使用。

根据您的--user-install,您当前使用的是Homebrew版本的Ruby,因此我想让您知道您可能遇到的另一个问题。 (通过查看gem env可以知道它是Homebrew,而且我从经验中知道Homebrew在RUBY_EXECUTABLE中安装了东西,并且我认为该路径是Homebrew Ruby。)

假设您要从现在开始安装/usr/local个月,然后键入rails(不带gem install rails标志)。安装完成后,如果尝试使用--user-install命令,则会得到“找不到命令”,因为使用Ruby的Homebrew版本并且不使用rails时,gem将安装在由Homebrew管理的目录中,而不是安装在您的--user-install中。 Jekyll文档忘记指出您需要将Homebrew gems位置添加到USER_INSTALLATION_DIRECTORY中。我的definitive guide to installing Ruby gems on a Macpull request I opened to fix the Jekyll documentation中都包含此修复程序。

要详细了解PATH的工作方式以及为什么会出现“找不到命令”错误的信息,建议您阅读以下文章: https://www.moncefbelyamani.com/troubleshooting-command-not-found-in-the-terminal/