杰基尔 – 没找到命令

我想让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创建一个符号链接。

以下是我修复它的步骤:

  1. 输入gem env并查找GEM PATHS 。 对我来说是:

    /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1

  2. 确保您可以在上面的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

  3. 使用上面步骤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 requirementsbrew 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