Como corrijo o erro 'jekyll: command not found' permanentemente?

1

Instalei Ruby, RVM e Jekyll seguindo este tutorial e tudo funciona bem depois de seguir esses passos.

Meu problema é que toda vez que eu abro uma nova janela de terminal e quero que Jekyll reconstrua o site com jekyll build , recebo o erro jekyll: command not found . A solução temporária é executar novamente os dois comandos a seguir no tutorial e, em seguida, o Jekyll funciona:

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

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

Verificando esse arquivo .profile eu notei que ele diz 'Este arquivo não é lido pelo bash, se ~ / .bash_profile ou ~ / .bash_login existe'. Eu executei os dois primeiros comandos novamente substituindo .bash_profile por .profile e isso não pareceu ter nenhum efeito.

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

Eu ainda recebo o erro Jekyll e meu arquivo .bash_profile existe, mas está completamente vazio.

Existe uma correção mais permanente ou estou preso executando os dois primeiros comandos toda vez que abro um terminal para reconstruir um site com o Jekyll?

    
por Tom Brossman 03.04.2014 / 09:50

2 respostas

1

~/.bashrc será chamado para interativa + não-loginshell

considerando que ~/profile será chamado para interativo + shell de login

A maneira recomendada é colocar

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

no ~/.profile em si, mas em .bash_profile put source "$HOME/.profile .

E o segundo caminho seria adicionar

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

no seu .bashrc .

Aqui é por isso que o segundo caminho não é muito recomendado.

Mais sobre .bashrc , .profile e bash_profile .

    
por Stormvirux 03.04.2014 / 10:14
1

Você pode criar alias para os três comandos acima.

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

Daí em diante, sempre que você executasse jekyllb , todos os três comandos seriam executados sequencialmente.

    
por Registered User 03.04.2014 / 10:05