web-dev-qa-db-fra.com

Comment puis-je corriger définitivement l'erreur «jekyll: commande introuvable»?

J'ai installé Ruby, RVM et Jekyll en suivant ce tutoriel et tout fonctionne bien après avoir suivi ces étapes.

Mon problème est qu'à chaque fois que j'ouvre une nouvelle fenêtre de terminal et que Jekyll reconstruit le site avec jekyll build, J'obtiens l'erreur jekyll: command not found. La solution temporaire consiste à réexécuter les deux commandes suivantes à partir du didacticiel, puis Jekyll fonctionne:

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile"

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

En vérifiant ce fichier .profile, j'ai remarqué qu'il dit "Ce fichier n'est pas lu par bash, si ~/.bash_profile ou ~/.bash_login existe". J'ai de nouveau exécuté les deux premières commandes en remplaçant .bash_profile par .profile et cela n'a pas semblé avoir d'effet.

[[ -s "$HOME/.bash_profile" ]] && source "$HOME/.bash_profile"

J'obtiens toujours l'erreur Jekyll et mon fichier .bash_profile existe mais est complètement vide.

Existe-t-il un correctif plus permanent ou suis-je bloqué en exécutant les deux premières commandes chaque fois que j'ouvre un terminal pour reconstruire un site avec Jekyll?

1
Tom Brossman

~/.bashrc sera appelé pour interactif + non-loginshell

tandis que ~/profile sera appelé pour interactif + shell de connexion

La manière recommandée est de mettre

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

dans le ~/.profile lui-même mais dans .bash_profile mettre source "$HOME/.profile.

Et la deuxième façon serait d'ajouter

`[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" `

dans ton .bashrc.

Ici est la raison pour laquelle la deuxième méthode n'est pas très recommandée.

Plus d'informations.bashrc, .profile et bash_profile.

1
Stormvirux

Vous pouvez créer un alias pour les trois commandes ci-dessus.

alias jekyllb='[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" && [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" && jekyll build'

Par conséquent, chaque fois que vous exécutez jekyllb, les trois commandes sont exécutées de manière séquentielle.

1
Registered User