如何在 OSX 10.11 上安装 Jekyll?

How can I install Jekyll on OSX 10.11?

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

我在尝试安装 Jekyll 时遇到权限错误。我目前 运行 OSX 10.11 (El Capitan)。我也有 Xcode 7 并安装了开发者工具。是否有解决方法或者这是一个 OS 特定问题?

尝试:

 sudo su

输入您的密码,以 root 身份重试 gem install jekyll

这似乎是一个 OS 特定问题。我在这里发现了类似的问题,我在这里找到的答案有助于解决问题: Cannot install cocoa pods after uninstalling, results in error

我运行进入同样的错误信息。

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

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

Apple 添加了系统完整性保护 (SIP) 以提高安全性。这意味着 Jekyll 已受到影响,因为它使用默认的 Ruby 安装。 More details on 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
    

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

您可以尝试以下方法:

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

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

这是solution suggested by Jekyll's developers

OS X 的新 El Capitan 版本有一项名为 SIP that won't let users (even when using sudo) write to the /usr/bin folder. This breaks the install process. You can disable SIP 的新技术,但我更愿意继续使用它,因为它可以防止坏东西。

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

sudo brew install ruby

不要用 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 秒的视频教程,介绍如何在 github 上设置 jekyll 博客:https://vimeo.com/154566844

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

Cloud9 在云端提供完整的开发环境 (运行 Linux)。他们的 IDE 也很好,他们的环境也非常适合协作。设置 Git 非常简单(使用 'git clone' 命令)。使用 Cloud9,您将能够在任何带有浏览器的计算机上工作,而无需安装任何东西。

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

您的 index.md 文件的内容:

---
title: Home
---

Hello world!

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