▲ 5 ▼ What to do when Go itself will not run nor install from source
This morning it was time to consider deploying a project to production... but alas, programs which worked normally on an Ubuntu development workstation failed to run on the target server, running Debian. Both of them were running Linux kernels 3.2.x for x86_64, and the binary worked on one, but not the other:
ls -l myapp -rwxrwxr-x 1 root root 3522952 Jun 6 11:32 myapp $ ./myapp bash: ./myapp: no such file or directory $ strace -f -e open ./myapp exec: no such file or directory $ file myapp ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped $ ldd myapp
not a dynamic executable
So, for "file", this is an dynamically linked executable, but not for ldd ? And, even more surprising, a trivial
helloworld.go compiled the same way worked on both machines. What could be going wrong ? Anyway, let's just compile... but then the Go 1.0 package for Debian itself fails with the same symptoms. Let's find out how to fix this...