1

I've installed Ruby, RVM, and Jekyll following this tutorial and everything works fine after following those steps.

My issue is that each time I open a new terminal window and want Jekyll to rebuild the site with jekyll build, I get the error jekyll: command not found. The temporary solution is to re-run the following two commands from the tutorial then Jekyll works:

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

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

Checking that .profile file I noticed it says 'This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists'. I ran the first two commands again substituting .bash_profile for .profile and this didn't seem to have any effect.

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

I still get the Jekyll error and my .bash_profile file exists but is completely empty.

Is there a more permanent fix or am I stuck running the first two commands every single time I open a terminal to rebuild a site with Jekyll?

Tom Brossman
  • 13,297

2 Answers2

1

You can create alias for the above three commands.

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

Hence forth, whenever you would run jekyllb all the three commands would be run sequentially.

1

~/.bashrc will be called for interactive + non-loginshell

whereas ~/profile will be called for interactive + login shell

The recommended way is putting

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

in the ~/.profile itself but in .bash_profile put source "$HOME/.profile.

And the second way way would be to add

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

in your .bashrc.

Here is why the second way is not much recommended.

More on .bashrc,.profile and bash_profile.

Stormvirux
  • 4,536