如何在OSX 10.11上安装Jekyll?

ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/jekyll 

我试图安装Jekyll时收到权限错误。 我目前正在运行OSX 10.11(El Capitan)。 我也有Xcode 7并安装了开发人员工具。 有解决方法还是这是特定于操作系统的问题?

这是Apple在OS X El Capitan中新的无根(又称系统完整性保护或SIP)function的副作用,但它不会影响/ usr / local / bin

您可以尝试以下方法:

 sudo gem install -n /usr/local/bin/ jekyll 

这告诉gem将Jekyll安装到不受SIP保护的文件夹中,而不是/Library/Ruby/Gems下的默认受保护位置。

这是Jekyll开发人员提出的解决方案 。

Apple已添加系统完整性保护(SIP)以提高安全性。 这意味着Jekyll在使用默认的Ruby安装时受到了影响。 关于SIP的更多细节 。

为了解决这个问题,其他用户一直在安装Homebrew版本。 Jekyll v3.0也可能会开始使用这个版本。

  • 安装Xcode命令行实用程序:

     xcode-select --install 
  • 安装Homebrew( http://brew.sh上的说明)

  • 修改$PATH以使用Homebrew:

     export PATH=/usr/local/bin:$PATH 
  • 修改GUI应用程序的$PATH

     launchctl setenv PATH "/usr/local/bin:$PATH" 
  • 安装最新的Ruby:

     brew install ruby 
  • 安装最新的Jekyll:

     gem install jekyll 

不要用Homebrew安装Jekyll,Homebrew的安全性未知: https : //security.stackexchange.com/questions/105088/osx-homebrew-security-risks

以下是如何在没有homeBrew的情况下安装它:使用vanilla OSX el cap: http ://digitalshore.io/how-to-install-jekyll-mac-os-x-el-capitan/

更新1:

唯一的缺点是每次使用sudo时都必须输入密码,这不是什么大问题。 我宁愿这样做而不是安装更多的依赖项。 无论如何你应该在github上托管你的Jekyll配置,这样你根本不需要处理命令行。 这是我关于如何使用github设置Jekyll的文章: http : //stylekit.org/blog/2016/01/06/The-Jekyll-Setup/

更新2:

从那时起,我已经制作了一个30秒的video教程,介绍如何在github上设置jekyll博客: https : //vimeo.com/154566844

这似乎是一个特定于操作系统的问题。 我在这里发现了一个类似的问题,我在这里找到的答案有助于解决问题: 卸载后无法安装cocoa豆荚,导致错误

我遇到了同样的错误消息。

通过从brew安装ruby解决了我。

新的El Capitan OS X版本有一项名为SIP的新技术,它不允许用户(即使使用sudo )写入/usr/bin文件夹。 这会破坏安装过程。 你可以禁用SIP ,但我更喜欢保持它,因为它可以防止坏事。

SIP确实允许在/usr/local文件夹中写入,所以我所做的是使用brew手动安装ruby然后安装jekyll。 这工作得很好。

 sudo brew install ruby 
 sudo nvram boot-args="rootless=0"; sudo reboot reboot sudo gem install jekyll -V cd into directory jekyll serve --watch 

如果你无法让它工作,你可以随时尝试Cloud9。

Cloud9在云中提供完整的开发环境(运行Linux)。 他们的IDE也非常好,他们的环境对于协作也非常有用。 设置Git非常简单(使用’git clone’命令)。 使用Cloud9,您可以在任何带有浏览器的计算机上工作,无需安装任何东西。

  1. 在Cloud9上创建一个免费帐户( https://c9.io
  2. 创建一个空项目(Ubuntu)并按照下列步骤操作:
  3. 在命令行输入:gem install jekyll
  4. 在根目录中创建一个空的_config.yml文件
  5. 在根目录中创建一个index.md文件
  6. 在命令行输入:jekyll serve –host $ IP –port $ PORT –baseurl”
  7. 您的网站现在在Cloud9上“本地”运行

index.md文件的内容:

 --- title: Home --- Hello world! 

使用Cloud9,您可以在Linux上进行开发,感觉像专业人士。 试试吧! 你会喜欢的。

试试:

  sudo su 

输入您的密码,再次尝试root gem install jekyll