Как установить 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

Ответ 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