• 0 Posts
  • 84 Comments
Joined 2 years ago
cake
Cake day: July 8th, 2023

help-circle







  • SwingingTheLamp@midwest.socialtolinuxmemes@lemmy.worldSnap bad
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    2 months ago

    Has it? My complaints are: I have to use VPN software for work that replaces /etc/resolve.conf with a symlink to another location, one that sandboxed snaps can’t access. There’s no way to grant them access; the “slots” that you can connect are fixed and pre-defined. You can’t even configure the file path; it’s defined right in the source code. Not even as a #define, but the string literal “/etc/resolve.conf”. That seems like poor practice, but I guess they’re not going for portability.

    Also, I have /usr and /var on different media, chosen for suitability of purpose, and sized appropriately. Then, along comes snap, violating the File Hierarchy Standard by filling up /var with application software.

    Minor annoyances are the ~/snap folder, and all of the mounted loopback filesystems which make reading the mtab difficult.


  • It depends how you define it. I first installed Slackware at work on a retired IBM PS/2 in '94 or '95, because somebody was working on MicroChannel bus support. (That never materialized.) Later, we checked out Novell Linux Desktop, maybe Debian, too. At a later job, we had some Red Hat workstations, version 5 or 6, and I had Yellow Dog Linux on an old Power Mac.

    At home, I didn’t switch to Linux until Ubuntu Breezy Badger. It was glorious to install it on a laptop, and have all of the ACPI features just work. I had been running FreeBSD for several years, NetBSD on an old workstation before that, and Geek Gadgets (a library for compiling Unix programs on Amiga OS) before that.









  • One that Linux should’ve had 30 years ago is a standard, fully-featured dynamic library system. Its shared libraries are more akin to static libraries, just linked at runtime by ld.so instead of ld. That means that executables are tied to particular versions of shared libraries, and all of them must be present for the executable to load, leading to the dependecy hell that package managers were developed, in part, to address. The dynamically-loaded libraries that exist are generally non-standard plug-in systems.

    A proper dynamic library system (like in Darwin) would allow libraries to declare what API level they’re backwards-compatible with, so new versions don’t necessarily break old executables. (It would ensure ABI compatibility, of course.) It would also allow processes to start running even if libraries declared by the program as optional weren’t present, allowing programs to drop certain features gracefully, so we wouldn’t need different executable versions of the same programs with different library support compiled in. If it were standard, compilers could more easily provide integrated language support for the system, too.

    Dependency hell was one of the main obstacles to packaging Linux applications for years, until Flatpak, Snap, etc. came along to brute-force away the issue by just piling everything the application needs into a giant blob.