7 ms·
> So I'd love an ecosystem where things tend to be statically linked unless there is a good reason not to. Well, every time there is a bug fix in one of your d
by arendtio 6y ago
> So I'd love an ecosystem where things tend to be statically linked unless there is a good reason not to.
Well, every time there is a bug fix in one of your dependencies you/your distribution would have to recompile everything that depends on it. Which will use quite some resources.
So to actually use this you would have to reinstall (nearly) all programs once a week or so (no matter if source or binary distribution). While that is quite possible with modern internet connections, I am not sure if it solves all the problems you might think it solves. After all, even nowadays application authors could provide static packages, but many don't do it.
After using quite a few distributions over the years, I like Arch Linux best at the moment, as the combination of binary distribution, with frequent updates, and the source based AUR, with the very large amount of packages, suits my needs very good.
- gameswithgo 6y ago>Well, every time there is a bug fix in one of your dependencies you/your distribution would have to recompile everything that depends on it Well no, I could opt not to apply the bug fix if it isn't affecting me. This again is sort of serve mentality, where of course you want to get a bug fix in as quick as possible in case it is a security issue. A desktop user, maybe you don't. >After all, even nowadays application authors could provide static packages, but many don't do it. Right, and really what I would like is for application authors to just static link more, more often, on linux. Or at the least ship their programs with installers that apply the needed deps if they are not already there! That the OS itself is statically linked doesn't really matter, but perhaps it would inspire an ecosystem that does this. > I like Arch Linux best at the moment Probably suggest arch linux to someone complaining about having to track down dependencies does not make sense, since such a person is more interested in the OS just working rather than making the OS a bit of a hobby that that they want to customize. Which, is why I mostly use windows.
- jcelerier 6y ago> Probably suggest arch linux to someone complaining about having to track down dependencies does not make sense, since such a person is more interested in the OS just working rather than making the OS a bit of a hobby that that they want to customize. having used Red Hat, Mandrake, Ubuntu, Debian... Arch Linuxis by far the most "just works" distro I've used
- thekyle 6y agoDo you really mean Arch Linux or something based on it like Manjaro? Pretty sure Arch Linux doesn't even come with an installer.
- jcelerier 6y agothere are plenty of installers of archlinux - I use https://anarchyinstaller.org/ https://anarchyinstaller.org/ for instance
- thekyle 6y agoBut do any of those come with the ISO available at https://www.archlinux.org/download/ https://www.archlinux.org/download/? I don't see how you can say something "just works" if you have to go out of your way to choose an installer for it.
- jcelerier 6y agoArchLinux is not defined by the ArchLinux ISO ? it will be arch as long as it installs packages from the arch repos, which is what those installer do. So you just burn this iso to an usb and be happy: https://gitlab.com/anarchyinstaller/installer/-/releases https://gitlab.com/anarchyinstaller/installer/-/releases
- arendtio 6y ago> Probably suggest arch linux to someone complaining about having to track down dependencies does not make sense, since such a person is more interested in the OS just working rather than making the OS a bit of a hobby that that they want to customize. Sure, in the beginning you have to spend some time to set it up, but due to the rolling releases it has a great longevity. And talking about application integration, I prefer the package management style (even through AUR) greatly to the chaotic download some binary and execute it way windows does it. Over time your windows always gets so messy because every device manufacturer seems to think that it is cool, to bundle his device driver with hundreds of megabytes of non-sense-ware (last weekend I installed some Logitech driver on Windows, because the default Windows driver didn't work (on Arch I didn't have to install anything extra, just saying... yes, anecdotal evidence)).
- pixl97 6y ago>Which, is why I mostly use windows. Oh, Windows can have dependency hell. And even worse is when you have a WinSXS blowout and you're trying to figure out why that subdirectory is using up 80GB of space for an unknown reason.
- jbverschoor 6y agoDLLHell
- boogies 6y ago> Probably suggest arch linux to someone complaining about having to track down dependencies does not make sense, since such a person is more interested in the OS just working rather than making the OS a bit of a hobby that that they want to customize. Then recommend Manjaro, not an OS that “just” loads them down with ads, tracking, forced updates, and more unless — and to some extent still even after — they customize it.
- Shared404 6y agoAt the risk of starting a distro war in the comments, I'll have to recommend Pop!_OS over Manjaro. Pop has broken itself less often then Windows for me, while Manjaro has broken itself slightly more.
- retrac 6y ago> every time there is a bug fix in one of your dependencies you/your distribution would have to recompile everything that depends on it Back in the dark ages, some mainframe operating systems like MVS normally stored executables as object files, and would link the program every time you executed it. Has the on-disk space savings and updateable libraries of dynamic linking, without most of the complexity. I believe the original motivation was to allow an executable to run at an arbitrary address on systems without virtual memory though.
- 1996 6y agoI would be surprised if there was not a way to take a dynamic executable, "add in" all the required libraries, and return a fat static executable
- AnIdiotOnTheNet 6y agoIf you know of such a utility I'd like to see it, because I've looked and never found it. The closest I've seen are things like AppImage.
- 1996 6y agoShell scripting and ld tools should allow you to make that yourself. EDIT: people are apparently entitled to solutions for their problems... > Care to elaborate? > Show us a script then! Your internet fame awaits. I'm not interested in fame, or in reinventing the wheel. Apparently, you are unfamiliar with this process, so TLDR: there are basically 2 approaches, in order of complexity: 1. working with ldtools or 2. running the executable to find the various parts then dumping a binary, (3 if you consider putting the libraries in a directory then run with LD_LIBRARY_PATH=/thisdir myexecutable) Let me google some existing tools for you: https://github.com/systems-nuts/dynamic_to_static https://github.com/systems-nuts/dynamic_to_static http://bitwagon.com/jumpstart/jumpstart.html http://bitwagon.com/jumpstart/jumpstart.html http://statifier.sourceforge.net/ http://statifier.sourceforge.net/ https://www.ucc.asn.au/~dagobah/things/make-static.html https://www.ucc.asn.au/~dagobah/things/make-static.html https://web.archive.org/web/20130114222319if_/http://dagobah.ucc.asn.au/wacky/cryopid-0.5.9.1-x86_64.tar.gz https://web.archive.org/web/20130114222319if_/http://dagobah... with patch and explanation on https://stackoverflow.com/questions/17390722/how-can-i-convert-dynamically-linked-application-to-statically-one https://stackoverflow.com/questions/17390722/how-can-i-conve... A better approach from 15 years ago is slinky, so that you can "update" the libraries if needed: https://www.usenix.org/legacy/publications/library/proceedings/usenix05/tech/general/full_papers/collberg/collberg_html/main.html https://www.usenix.org/legacy/publications/library/proceedin... There's nothing fancy in there. It just requires some effort.
- zarkov99 6y ago> Well, every time there is a bug fix in one of your dependencies you/your distribution would have to recompile everything that depends on it. Which will use quite some resources. This is far for more clear cut. Often some dependency bugs, might not impact my program. Even worse, sometimes by fixing a bug my program does not care about, a dependency might break my program in some subtle way. The author of the program is the best qualified person to make the upgrade/not upgrade decision.
- nmz 6y agoSo long as I'm not the one building it, its fine. My internet can redownload everything. It also depends on what libraries are being used. musl does generate smaller binaries than glibc. and if you look at the massive project that is sqlite, building software should only take a couple of seconds. Of course, whether anyone actually goes to such lengths for easy compilation is another matter entirely. https://sta.li/ https://sta.li/
- throwaway894345 6y agoYou won't have to recompile everything if you cache your build artifacts (e.g., object files); you'll only have to relink which is quite a lot better.
- CyberDildonics 6y agoLetting software have dependencies then making the user manage them in the off chance there is some bug in the foundational mostly frozen libraries should be an obviously bad decision at this point. No other environment forces this kind of complexity on their users and almost no non-enthusiast user wants to deal with this structure.