rvm or the Ruby Version Manager, works perfectly fine when there is a single version of Ruby to be run on the system (among multiple versions installed, of course) around the entire system. In a production scenario, updating ruby itself is a task which is not taken lightly!
This worked perfectly until I encountered two quite different situations –
One scenario was where I wanted to execute a command via ssh
into the server. So something like –
ssh user1@server1 'ruby ~/program.rb'
The other being when I wanted to run a ruby program via cron
In both these cases, I kept getting the error rvm not found
. Initially, I couldn’t understand this at all, because every time I logged in and ran the program or the command it would run prefectly.
And then I learnt about the difference between a login and a non-login shell.
Continue reading