I’m running ubuntu-14.04 (yep, quite old). Architecture is aarch64:
$ uname -m
aarch64
I downloaded the binary installer script cmake-3.23.0-rc1-linux-aarch64.sh from the downloads page, and run that script. I can see that it’s installed binaries, but when I cd to the bin/ directory and try to run cmake, bash cannot find the executable:
$ cd cmake-3.22.2-linux-aarch64/bin
smc@smc-2:~/cmake-3.22.2-linux-aarch64/bin$ ls -l
total 81864
-rwx------ 1 smc smc 13337496 Jan 25 14:03 ccmake
-rwx--x--x 1 smc smc 13336832 Jan 25 14:03 cmake
-rwx------ 1 smc smc 28696776 Jan 25 14:03 cmake-gui
-rwx------ 1 smc smc 13729520 Jan 25 14:03 cpack
-rwx------ 1 smc smc 14714992 Jan 25 14:03 ctest
smc@smc-2:~/cmake-3.22.2-linux-aarch64/bin$ ./cmake --version
-bash: ./cmake: No such file or directory
Why would this be? I see the same error when trying to execute any of the binaries in the bin/ directory. Have I somehow installed the wrong architecture?
Thanks!
Your permissions look very odd. Can you try chmod 644 bin/* and chmod 755 bin/ (both from the top-level extracted directory)? I suspect other directories may need some help here.
Ah, sorry about the 644/755 thing. Hmm. I am starting to think that the “No such file or directory” is for the ELF interpreter. What is the output of readelf -l bin/cmake?
It would seem that our binaries assume some newer environment than is available in Ubuntu 14.04. Out of curiosity, what interpreter is /usr/bin/ls using?
OK, so there’s a subtle difference between armhf and aarch64. This blog post covers the details (and more). It seems you have an aarch64 kernel with armhf userspace. This will not work, so you’ll need to get an aarch64 userspace somehow. It also looks like this predates Debian’s multiarch effort, so I don’t know if they are co-installable.
You can also just build CMake from source; this is probably the best option in this case.