I think there should be a term for linux software that is advertised as self-containment or statically linked, when it very much isn't.
I suggest "statistically linked", because statistically, it appears to be statically linked on about 50% of all systems it will be run on.

  • 1
    "Java" 😘
  • 1

    I'm a bit tipsy ...

    But could you elaborate?

    Cause right now I'm confused as hell
  • 2
    Statically linked = single file executable

    Many applications that claim to be statically linked still have some external deps. Others have incompatible internalized deps that work on some distros, and not on others.
  • 3
    Some linux software, often proprietary, that is distributed as tar.gz claims it's statically linked, self-containment, distro independent and what not.
    More often then not, that's completely false.
    Most of the time, they are, at least, dynamically linked against Glibc, so fuck everyone who uses a musl based system.
    They are usually developed to appear statically linked on Ubuntu, because that's the only distro that comes prebloated with all actually required libraries.
  • 3
    @SortOfTested That's the thing that confuses me... But now I know that we mean the same thing.

    My nitpicky brain goes wrrooom.

    Statically build usually means it has no shared libraries and no runtime libraries.

    Statically linked means that the libraries do not contain shared objects - but a plugin system might load during runtime additional stuff.

    Self contained is either fully static (as in no shared code and no runtime dependency) or (eg SNAP / Flatpak / ...) all dynamic libraries are provided and executable in a "containerized" way.

    And yes. The author is right.

    This is mostly done in the wrong way with annoying consequences...


    As a packager you reaaaally hate it when some builds have runtime dependencies which are not visible in the build system AT ALL.

    (If I made mistakes I'm sorry - brain is flatlining and beer is flowing)
Add Comment