You may see errors in your Capistrano Ruby deployments such as:
node: /opt/bitnami/common/lib/libssl.so.1.0.0: no version information available (required by node)
The error is a bit misleading. It really means the versions don't match what is expected by the executable.
This error occurs because you've probably installed some software (in this case nodejs
) that is installed outside of the stack, such as with "apt-get install nodejs
". Continuing, the problem is that capistrano was executing a rake assets:precompile
which is executed by functions in the stack and thereby with an LD_LIBRARY_PATH
that contains /opt/binami/common/lib
upfront. So, the executable, (in this case 'node
'), picks up the stack library, which is different than the /lib/x86...../libssl.so.1.0.0
in the distro.
A suitable solution is to create a wrapper that zeros out the LD_LIBRARY_PATH, as follows:
# mv /usr/bin/node /usr/bin/node.bin
# cat > /usr/bin/node <<EOF
#!/bin/sh
export LD_LIBRARY_PATH=""
/usr/bin/node.bin $*
EOF
# chmod +x /usr/bin/node
#
This method creates a wrapper that zero outs the LD_LIBRARY_PATH
to the default before executing the actual binary allowing that binary to dynamically load the matched library.
Of course, your mileage may vary. I just thought I'd put this out there, in case people see this more often. I believe somebody had this same problem with git
calling ssh
.
Cheers, -Polar