@ tekwalk.blogspot.in [12/Aug/2013]
The way Fabric works is whatever you ask it to “run(<cmd>)” over remote nodes, it runs that command by passing it to ” bash -l -c ‘<cmd>’ “.
Now as the issue was with my FreeBSD machine is it didn’t had “bash” in the first place. So, it was failing.
It can be fixed in 2 ways
add a line like following to make Fabric use the SHELL present on the remote node, as FreeBSD node had ‘C Shell’… so
env.shell = ‘/bin/csh -c’
install ‘bash’ on the remote nodes and make sure it’s reachable via path “/bin/bash”
pkg_add -r bash
ln -sf /usr/local/bin/bash /bin/bash