ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/jekyll
J'obtiens une erreur de permission en essayant d'installer Jekyll. Je suis actuellement sous OSX 10.11 (El Capitan). J'ai aussi Xcode 7 et ai installé les outils de développement. Existe-t-il une solution de contournement ou s'agit-il d'un problème spécifique au système d'exploitation?
Il s’agit d’un effet secondaire de la nouvelle fonctionnalité sans racine d’Apple (également appelée Protection de l’intégrité du système ou SIP) d’OS X El Capitan, mais elle n’affecte pas/usr/local/bin .
Vous pourriez essayer ce qui suit:
Sudo gem install -n /usr/local/bin/ jekyll
Cela indique à gem d'installer Jekyll dans un dossier non protégé par SIP, plutôt que l'emplacement protégé par défaut sous /Library/Ruby/Gems
.
C'est la solution suggérée par les développeurs de Jekyll }.
Apple a ajouté la protection de l'intégrité du système (SIP) pour renforcer la sécurité. Cela signifie que Jekyll a été affecté car il utilise l’installation par défaut de Ruby. Plus de détails sur SIP .
Pour contourner ce problème, d'autres utilisateurs ont installé la version Homebrew. Il est également probable que Jekyll v3.0 commence également à utiliser cette version.
Installez les utilitaires de ligne de commande Xcode:
xcode-select --install
Installez Homebrew (instructions à http://brew.sh )
Modifiez $PATH
pour utiliser Homebrew:
export PATH=/usr/local/bin:$PATH
Modifiez $PATH
pour les applications graphiques:
launchctl setenv PATH "/usr/local/bin:$PATH"
Installez le dernier Ruby:
brew install Ruby
Installez le dernier Jekyll:
gem install jekyll
N'installez pas Jekyll avec Homebrew, la sécurité de Homebrew est inconnue: https://security.stackexchange.com/questions/105088/osx-homebrew-security-risks
Voici comment l'installer sans homeBrew: avec un capuchon Vanilla OSX: http://digitalshore.io/how-to-install-jekyll-mac-os-x-el-capitan/
Le seul inconvénient est que vous devez taper votre mot de passe chaque fois que vous utilisez Sudo, ce qui n’est pas une grosse affaire. Je préfère faire cela plutôt que d’installer plus de dépendances. De toute façon, vous devriez héberger votre configuration Jekyll sur github, de cette manière, vous n’auriez pas à vous occuper de la ligne de commande. Voici mon article sur la façon de configurer Jekyll avec github: http://stylekit.org/blog/2016/01/06/The-Jekyll-Setup/
Depuis lors, j'ai créé un didacticiel vidéo de 30 secondes sur la configuration d'un blog jekyll sur github: https://vimeo.com/154566844
Si vous ne pouvez pas le faire fonctionner, vous pouvez toujours essayer Cloud9.
Cloud9 offre un environnement de développement complet dans le cloud (sous Linux). Leur IDE est également très bon et leurs environnements sont également très utiles pour la collaboration. Configurer Git est vraiment simple (en utilisant la commande 'git clone'). Avec Cloud9, vous pourrez travailler depuis n'importe quel ordinateur avec un navigateur, sans rien installer.
Le contenu de votre fichier index.md:
---
title: Home
---
Hello world!
Avec Cloud9, vous pouvez développer sur Linux et vous sentir comme un pro. Essayez le! Vous allez l'adorer.
Il semble que ce soit un problème spécifique à l'OS. J'ai trouvé un problème similaire ici, et la réponse que j'ai trouvée ici a aidé à résoudre le problème: Impossible d'installer des cabochons après la désinstallation, ce qui entraîne une erreur
J'ai rencontré le même message d'erreur.
Résolu pour moi en installant Ruby de Brew.
Sudo nvram boot-args="rootless=0"; Sudo reboot
reboot
Sudo gem install jekyll -V
cd into directory
jekyll serve --watch
La nouvelle version El Capitan d’OS X dispose d’une nouvelle technologie appelée SIP qui ne permet pas aux utilisateurs (même lorsque vous utilisez Sudo
) d’écrire dans le dossier /usr/bin
. Cela rompt le processus d'installation. Vous pouvez désactiver SIP , mais je préférerais le garder car il offre une protection contre les mauvaises choses.
SIP autorise l’écriture dans le dossier /usr/local
, c’est pourquoi j’ai installé manuellement Ruby à l’aide de brew, puis d’installer jekyll. Cela a bien fonctionné.
Sudo brew install Ruby