如何在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,您可以在任何带有浏览器的计算机上工作,无需安装任何东西。
- 在Cloud9上创建一个免费帐户( https://c9.io )
- 创建一个空项目(Ubuntu)并按照下列步骤操作:
- 在命令行输入:gem install jekyll
- 在根目录中创建一个空的_config.yml文件
- 在根目录中创建一个index.md文件
- 在命令行输入:jekyll serve –host $ IP –port $ PORT –baseurl”
- 您的网站现在在Cloud9上“本地”运行
index.md文件的内容:
--- title: Home --- Hello world!
使用Cloud9,您可以在Linux上进行开发,感觉像专业人士。 试试吧! 你会喜欢的。
试试:
sudo su
输入您的密码,再次尝试root gem install jekyll