杰基尔 – 没找到命令
我想让Jekyll运行但我没有使用Ruby的经验。
据我所知,Jekyll的安装成功了。
然而:
$ jekyll
给出错误:
-bash: jekyll: command not found
这是gem env
结果:
- RUBYGEMS VERSION: 1.3.4 - RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin10.0] - INSTALLATION DIRECTORY: /Volumes/HDD/DADU/gems - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby - EXECUTABLE DIRECTORY: /Volumes/HDD/DADU/gems/bin - RUBYGEMS PLATFORMS: - ruby - universal-darwin-10 - GEM PATHS: - /Volumes/HDD/DADU/gems - /Volumes/HDD/DADU/.gem/ruby/1.8 - /Library/Ruby/Gems/1.8 - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://gems.rubyforge.org/
我发现以下路径导致了“某事”Jekyll:
-
~.gem/ruby/1.8/gems/jekyll-0.11.0/lib/jekyll.rb
-
~.gem/ruby/1.8/gems/bin/jekyll
(exec文件)
最简单的方法是使用RVM。 它为您管理Ruby及其所有gem,并且易于使用。 请参阅此链接以使用它。
如果你不想使用它,你需要修改你的PATH变量,以便它可以找到你的gem。 我发现这很乏味并且还原到RVM,但这里是一般步骤。
您需要找出安装gem的位置。 如果你做了gem install ...
gem将在~/.gem/ruby/1.8/gems/bin
,如果你使用sudo gem install ...
gem将在/System/Library/Frameworks/Ruby.framework/Versions/1.8/Resources
某个地方/System/Library/Frameworks/Ruby.framework/Versions/1.8/Resources
您必须将此路径添加到PATH变量。 最简单的方法是运行: echo 'PATH=$PATH:above/path/to/gems' >> ~/.bash_profile
对于其他来这里设置的人:
OS X + brew install安装ruby +(可能) zsh
我认为问题在于按照他们的指示安装jekyll之后,gem会在brew地窖中安装jekyll gem,而不是操作系统通常期望的地方(有些是ruby的gem目录)。
所以,这里需要的是找出ruby安装gem的地方,找到jekyll二进制文件,并在/usr/bin
创建一个符号链接。
以下是我修复它的步骤:
-
输入
gem env
并查找GEM PATHS 。 对我来说是:/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1
。 -
确保您可以在上面的1中看到目录中的
jekyll
二进制文件并复制其路径(如果不能,请搜索GEM PATHS中列出的任何其他路径)。 对我来说是:/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/bin/jekyll
-
使用上面步骤2中的路径创建符号链接到
/usr/bin/jekyll
。 我通过键入它来做到这一点( 你可能需要sudo
来创建符号链接 ):cd /usr/bin && ln -s /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/bin/jekyll jekyll
如果你输入jekyll
现在一切都应该是快乐的。
如果您使用RBENV而不是RVM,则只需在安装jekyll后在命令行中运行rehash
:
rbenv rehash
也许有点晚了,但是……我在Ubuntu上安装Jekyll时遇到了一些麻烦,并尝试了人们在这个post中回答的所有内容 – 遗憾的是没有任何效果。
然后,我在Jekyll的网站上观看了一段video,并在再次安装整个ruby包之后, sudo gem install jekyll
工作了。
先尝试一下:
sudo apt-get update sudo apt-get install ruby-full sudo gem install jekyll jekyll -v
看起来很简单,但它适用于Ubuntu。
一种解决方案是编辑~/.bashrc
文件并添加以下行:
PATH=$PATH:~/.gem/ruby/1.8/gems/bin
这将在Bash的查找路径中添加~/.gem/ruby/1.8/gems/bin
。
重新打开终端,它应该工作。 或者您可以使用以下命令:
. ~/.bashrc
以下步骤解决了我的问题
gem uninstall jekyll sudo gem install jekyll
打开〜/ .bash_profile并在最后一行添加此代码,
export PATH=$PATH:/usr/local/lib/ruby/gems/1.9.1/gems/jekyll-2.5.2/bin
保存并关闭.bash_profile
关闭并重新打开mac终端,尝试现在运行jekyll
,它应该工作
Jekyll是一个ruby的gem:例如,linux中的Rubygem在/var/lib/gems/1.8中,可以在“ruby env”输出中看到。
因此,您需要将此目录中的可执行文件添加到路径中。
一般情况下,如果您的操作系统“找不到”rubygem,它只会表明这一点
1)您没有安装gem或
2)您没有在路径上的目录中安装gem。
我发现在linux上安装ruby和ruby gems存在一些问题(我发现在Ubuntu v10上它可能很棘手,并且已经在IRC上的Ruby人员中证实了这一点)。 因此,像RVM或rbenv这样的工具可能是建立稳定,可维护的ruby环境的最佳方法。
@ jayunit100,
我和Jekyll博客遇到了同样的问题。 我已经通过RVM在’博客目录中安装了gem,而_config.yml文件说它应生成Blog / _site。 是否像添加博客到PATH一样简单,还是有其他我缺少的东西?
更新:我的不好,我没有安装gem。 获得的经验: rvm requirements
和brew doctor
是有原因的 – 在你安装东西之前使用它们
比创建符号链接更容易,只需正确安装即可。 如果您获得许可错误,就像许多人在尝试使用时一样
gem install jekyll
改为使用
sudo gem install jekyll
在我的情况下,我不得不运行bundle install --force
然后bundle exec jekyll serve
工作,但jekyll serve
仍然没有。 从现在开始,我似乎不得不与前者合作……
如果您使用的是MacOS,请参阅故障排除指南 :
Jekyll和Mac OS X 10.11Permalink
随着系统完整性保护的引入,以前可写的多个目录现在被视为系统位置,不再可用。 鉴于这些变化,有几种简单的方法可以启动和运行。 一种选择是更改gem的安装位置(同样,仅在必要时使用sudo):
$ gem install -n /usr/local/bin jekyll