Installation MacOS Gem::FilePermissionError

Lors de l’installation de Discourse (pour le développement) sur mon Mac, je rencontre cette erreur :

ERREUR :  Lors de l'exécution de gem ... (Gem::FilePermissionError)
    Vous n'avez pas les permissions d'écriture pour le répertoire /Library/Ruby/Gems/2.6.0.

Comment puis-je résoudre ce problème ?
Merci.

1 « J'aime »

Avez-vous suivi le script d’installation de Discourse ici ?

Utilisez-vous macOS Catalina ? Si c’est le cas, il semble que Discourse essaie d’utiliser la version système de Ruby. Vous devrez utiliser quelque chose comme rbenv pour définir votre version de Ruby et éviter cela.

1 « J'aime »

Je suis sous MacOS Catalina. J’ai bien exécuté ce script, mais il s’est arrêté à mi-chemin car, je pense, il était déjà installé.

Peux-tu coller la sortie de which rbenv ?

Et as-tu un fichier .bashrc ou .zshrc personnalisé ?

1 « J'aime »

/usr/local/bin/rbenv

Pas vraiment sûr. Je ne pense pas, mais peut-être.

Pouvez-vous exécuter cd dans votre répertoire Discourse et partager le résultat de which ruby ?

1 « J'aime »

Oups, je ne l’avais pas remarqué. Je l’ai fait et j’ai obtenu /usr/bin/ruby

D’accord, vous utilisez donc le Ruby système pour Discourse, ce qui explique ce problème.

Vérifiez la variable PATH en tapant echo $PATH. Vous devriez voir /Users/<votre nom d'utilisateur>/.rbenv/bin et /Users/<votre nom d'utilisateur>/.rbenv/shims répertoriés.

Sinon, ajoutez-les dans le fichier de configuration de votre shell, .bashrc ou .zshrc. Pour ZSH, vous pouvez les ajouter ainsi : export PATH=/chemin/numéro/1:/chemin/numéro/2:$PATH

Si vous les voyez, vérifiez leur ordre. S’ils apparaissent plus loin dans la chaîne, ils ne sont probablement pas chargés avant le Ruby système, ce qui signifie que Discourse utilise le Ruby système. Vous pouvez utiliser la même approche que ci-dessus pour déplacer ces chemins plus haut dans la chaîne.

3 « J'aime »

J’avais cru que @david avait ajouté une vérification de la version Ruby dans nos outils d’environnement de développement ? :thinking:

Je crois que c’était pour le CLI du thème.

2 « J'aime »

Y a-t-il un moyen d’ajouter une vérification équivalente ici ?

Je pense que nous vérifions déjà la compatibilité des versions de Ruby dans Discourse — le problème ici est que notre bundle Discourse ne peut pas écrire de gems pour la version système de Ruby incluse avec macOS. Je pourrais me tromper sur les détails spécifiques, mais je pense que cela est lié à un changement apporté par Apple avec macOS Catalina. J’ai rencontré ce même problème moi-même et il a fallu pas mal de dépannage pour le comprendre.

1 « J'aime »
  1. J’ai rencontré la même erreur que l’OP.

  2. Lisez ceci :

  1. J’ai pensé que ce n’était pas vraiment une erreur de permission de fichier, mais plutôt que l’installateur cherchait au mauvais endroit.

  2. Je savais que redémarrer le terminal rechargerait mon fichier .zshrc, j’ai donc fermé et rouvert le terminal.

  3. J’ai relancé le script d’installation et je n’ai plus rencontré cette erreur.

Ce problème pourrait-il être résolu par un rafraîchissement du terminal stratégiquement placé pendant le processus d’installation ? :thinking: