Как установить Jekyll на OSX 10.11?
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/jekyll
Я получаю ошибку разрешения при попытке установить Jekyll. В настоящее время я запускаю OSX 10.11 (El Capitan). У меня также есть Xcode 7 и установлены инструменты разработчика. Есть ли обходной путь или это проблема конкретной ОС?
Ответы
Ответ 1
Это побочный эффект новой функции без использования rootless (aka System Integrity Protection или SIP) от Apple OS X El Capitan, но она не влияет на /usr/local/bin.
Вы можете попробовать следующее:
sudo gem install -n /usr/local/bin/ jekyll
Это указывает gem, чтобы установить Jekyll в папку, которая не защищена SIP, а не защищенное по умолчанию местоположение в /Library/Ruby/Gems
.
Это решение, предлагаемое разработчиками Jekyll.
Ответ 2
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
-
Измените $PATH
для приложений с графическим интерфейсом:
launchctl setenv PATH "/usr/local/bin:$PATH"
-
Установите последнюю версию Ruby:
brew install ruby
-
Установите последнюю версию Jekyll:
gem install jekyll
Ответ 3
Не устанавливайте Jekyll с Homebrew, безопасность Homebrew неизвестна: https://security.stackexchange.com/questions/105088/osx-homebrew-security-risks
Вот как вы устанавливаете его без homeBrew: с ванильной крышкой OSX el: http://digitalshore.io/how-to-install-jekyll-mac-os-x-el-capitan/
Обновление 1:
Единственным недостатком является то, что вы должны вводить пароль каждый раз, когда используете sudo, что не является большой проблемой. Я скорее сделаю это, чем установлю больше зависимостей. Вы все равно должны размещать конфигурацию Jekyll на github, так что вам вообще не придется иметь дело с командной строкой. Вот моя статья о том, как установить Jekyll с помощью github: http://stylekit.org/blog/2016/01/06/The-Jekyll-Setup/
Обновление 2:
С тех пор я сделал 30-секундный видеоурок о том, как вы можете настроить блог jekyll на github: https://vimeo.com/154566844
Ответ 4
Кажется, это была проблема с ОС. Здесь я нашел аналогичную проблему, и ответ, который я нашел здесь, помог решить проблему:
Не удается установить cocoa pods после удаления, приводит к ошибке
Ответ 5
Я столкнулся с тем же сообщением об ошибке.
Решено для меня, установив ruby из brew.
Ответ 6
sudo nvram boot-args="rootless=0"; sudo reboot
reboot
sudo gem install jekyll -V
cd into directory
jekyll serve --watch
Ответ 7
В новой версии El Capitan OS X появилась новая технология SIP, которая не позволит пользователям (даже при использовании sudo
) пишите в папку /usr/bin
. Это нарушает процесс установки. Вы можете отключить SIP, но я бы предпочел сохранить его, поскольку он обеспечивает защиту от плохих вещей.
SIP позволяет записывать в папку /usr/local
, поэтому я вручную установил ruby там, используя brew, а затем установил jekyll. Это сработало хорошо.
sudo brew install ruby
Ответ 8
Если вы не можете заставить его работать, вы всегда можете попробовать 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 и чувствовать себя профессионалом. Попробуй! Вам понравится.
Ответ 9
Попробуйте:
sudo su
Введите свой пароль, повторите попытку через root gem install jekyll