Capistrano and your shell
I’ve just started to use Capistrano to deploy my non-rails sites and ran into a bit of trouble. My web host for these sites is pair.com, and I’d already installed the subversion client there.
When trying to deploy using capistrano, I was getting a command failed RuntimeError as well as this odd line in my cap output:
** [out :: chi.pair.com] if: Expression Syntax.
I spent a bunch of time chasing down whether something about the command was wrong, perhaps the way it was calling date with the format. But it turns out that the problem was occuring becaue to my pair account user shell was set to csh
and not bash
. You can check this by running this command within a session on your pair account:
cat /etc/passwd | grep $USER
To set the shell, run the following (also on your pair account):
chsh -s bash
That was the only major issue I ran into. Deployment with capistrano is a beautiful thing!
Wow, thanks for posting this! I just found this entry while Googling about the exact same problem. Now I’ve switched my shell to bash–something I’d been vaguely wondering how to do for years–and Capistrano works great.
October 31st, 2006 at 4:57 pm
A bit late, but “echo $SHELL” is probably more reliable than grepping /etc/passwd, especially if they’re using a distributed auth backend (a’la NIS) – though if they are ‘getent passwd ‘ should still tell you what you want to know.
November 20th, 2006 at 10:02 pm