A big problem I have with this site is that there always seems to be Windows downloads. This makes the site useless to me.

Good luck finding actually portable linux software, unless it bakes in every dependency.

You can just put the dependencies in the same folder in most cases.

...and then compile it.

This site provides binaries.

Dependencies as in .so files. I'm not sure what your point was.

It isn't nearly as trivial as you imply. First you have to track down every shared lib and every shared lib that lib depends on, then you have to create a launcher script that specifies LD_LIBRARY_PATH and possibly also launches with a particular ld.so to ensure compatibility. If the application dynamically loads any libraries via API instead of the ELF you might need something like seccomp to intercept and rewrite paths in syscalls or screw around with user namepsacing. And that's just the tip of the iceberg when it comes to portablizing Linux applications.

You can link with the -rpath flag to hardcode an RPATH into the executable, which is essentially an LD_LIBRARY_PATH specified by the executable itself. It can be a relative path too, if you want to put the binary and its required .so’s in the same prefix.

But yeah, this isn’t common to do in the Linux world, unfortunately, because it’s expected that binaries and libraries live in distinct places on the filesystem, rather than bundling them together into an app bundle like on macOS.

Yeah, and thanks to Nix you can use PatchELF[0] to change the rpath on a binary too. Point being that for users it is not a straight-forward process to make a Linux application portable. Thanks to Linux Desktop's lackadaisical approach to userspace ABI compatibility it isn't necessarily that easy for developers either.

[0] https://github.com/NixOS/patchelf