我在安装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
答案 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 Mac和pull request I opened to fix the Jekyll documentation中都包含此修复程序。
要详细了解PATH
的工作方式以及为什么会出现“找不到命令”错误的信息,建议您阅读以下文章:
https://www.moncefbelyamani.com/troubleshooting-command-not-found-in-the-terminal/