13 ms·
This whole ideology of "the user should get all their software from their Linux distribution" and it's implicit consequence: there's no clear difference between
by young_unixer 6y ago
This whole ideology of "the user should get all their software from their Linux distribution" and it's implicit consequence: there's no clear difference between system software (internal tooling) and application software installed by the user (Audacity and friends) should just die already.
I want my OS to just provide a decent interface over which I can install application packages myself, packages that I get from my own sources, just like on Windows. if those packages are statically linked, fine. I know most Linux users disagree, but I don't want the relationship between software vendor and user to be distorted by some distro maintainer, or having to be limited to a package manager. I want to be able to store application installers in my filesystem.
I also want my distribution to hide it's Python binary from me so I can install my own Python without breaking the OS.
Basically: stop assuming that I want to live under your wing. I just want you to give me a nice desktop environment, a terminal and a well docomented way to install third party software.
I know distro developers don't owe me anything, and it's fine if they do something else, but this is the actual reason why Linux isn't used in the desktop.
- fuzzy2 6y ago…? You can have all of this today. > this is the actual reason why Linux isn't used in the desktop. Yeah, no.
- ironmagma 6y agoJust curious, what do you think the actual reason is?
- deleted 6y ago[deleted]
- fuzzy2 6y agoHm, hard to find “the one reason”. I think the most important factors are: * What people (not necessarily the users but corporate decision-makers) are used to (Windows) * Enterprise manageability (achievable on Linux, but built-in on Windows) * What is preinstalled (Windows) * What some exotic business applications work with (Windows) Almost purely soft factors, very hard to counter if virtually all the computers you can buy at your local PC shop come with Windows preinstalled. My neighbors (70+) accidentally got hold of a laptop that didn’t come with Windows but Ubuntu and they’re perfectly fine with it. It still has Firefox after all. :-)
- bitwize 6y agoPreinstallation is as close to "the one reason" as you can get. Microsoft had a hard time getting Windows over with end users -- until Windows 3.0, when the average new low-end PC had a 386-class processor and VGA, and oukd reasonably run Windows. Microsoft pressured OEMs to bundle Windows, and turned Windows into something that could be reasonably expected to be installed on a new computer, and that attracted ISVs, which meant end users were more likely to use Windows to get work done.
- AnIdiotOnTheNet 6y ago> My neighbors (70+) accidentally got hold of a laptop that didn’t come with Windows but Ubuntu and they’re perfectly fine with it. It still has Firefox after all. :-) What you think you just said: Linux is so easy to use anyone can do it and it works better than alternatives! What you actually just said: Linux makes a great webkiosk!
- fuzzy2 6y agoAnd what else is it that the average PC user needs? Because I cannot think of a single thing.
- AnIdiotOnTheNet 6y agoThat's because you have a disingenuous definition of "average PC user", a strawman, so that your argument works. What you call the "average PC user" is really the average smartphone user these days. PC users are doing office work, running a business, development, gaming, content creation in more ways than I can enumerate, etc. People who have a bulky desktop computer in their home just to browse the internet are vanishingly few.
- untog 6y ago> People who have a bulky desktop computer in their home just to browse the internet are vanishingly few. 1. a PC isn't necessarily a "bulky desktop computer", it can also be a slimline laptop! 2. "browse the internet" and "office work/run a business/etc" are not mutually exclusive. Google Docs/Office 365 etc. proves that. I'd argue the majority of business operations requires some level of internet interaction these days. It seems to me like you've come up with a strawman definition to bat away another strawman definition. Almost everyone I know owns both a smartphone and a laptop, and the vast, vast majority of their time on that laptop is spent in a web browser.
- tankenmate 6y agolargely it's the network effect. in days of yore unix dominated the minicomputer market and VMS played second fiddle. these days, windows dominates via the network effect and macos plays second fiddle (and linux third).
- rekado 6y agoI think having a separate package manager for every piece of software I use is just terrible. I also don't want to be forced to use application bundles. You get isolation (re "hide its Python binary"), multiple package variants, a unified software management interface for all applications, etc -- from functional package managers like Nix or Guix.
- deleted 6y ago[deleted]
- AnIdiotOnTheNet 6y agoAnd you only have to learn two new programming languages to use them!
- elbear 6y agoWell, one, because you wouldn't use both of them.
- rkangel 6y agoTo disagree with the least important part of what you said: > but this is the actual reason why Linux isn't used in the desktop I still believe the actual biggest issue with Linux on the desktop is graphics card drivers (and other aspects of the graphics stack like handling High DPI). Too many machines fail the basic test of 'can I install Linux, plug my screen in and have it behave sensibly'.
- zozbot234 6y agoJust stick to Intel/AMD graphics and it's absolutely fine. Wifi/Bluetooth/LAN support is a bigger issue, tbh. Even audio can be an issue sometimes.
- rkangel 6y agoTBH unless you're on Intel you'll still probably have some trouble. That's still a problem though - you shouldn't have to (within reason) select your hardware carefully, ignoring a large part of the consumer market, to have Linux do basic things.
- samus 6y agoIf you really want your system to work, you have to. This has been the case since the dawn of the computer age. Nowadays most desktop hardware is intended for Windows users. Therefore, hardware vendors make their stuff work with Windows systems and jump through Microsoft's hoop to get certified. Linux is just irrelevant for many hardware vendors. And without vendor collaboration, it is just plain difficult to write drivers that make full use of the hardware.
- encom 6y ago>absolutely fine It's mostly fine. But high DPI, or worse, mixed DPI desktops are somewhere between unusable and sort of tolerable. I dual boot my desktop, and I've given up getting my 4K main screen and old 19" off screen working together in Linux (and I've tried everything). I like moving IRC off to a smaller screen to glance at once in a while, so I never miss an internet argument, but mixing DPI monitors just doesn't work in Linux.
- choeger 6y agoFirst of all, you can do that already. No one stops you. So I guess what you actually want is someone to fix the problems that come with your wishes, but do not agree with the way the distributions try to do so. You know what? Thet really don't owe you anything. Go ahead, build the system you want. But please don't come along whining when it ends up unmaintainable, instable, or starts acting against you, like, you know, Windows does. Second, linux distribution maintainers are usually much better informed about the technical details of installing software in a stable manner than any software vendor. Sure you can get your software from the vendor. But then you should be willing to accept that it is often broken, inefficient, and insecure. Software vendors have no interest whatsoever in installing their software in a professional and sustainable way on your system, package maintainers do.
- jcelerier 6y ago> But please don't come along whining when it ends up unmaintainable, instable, or starts acting against you, like, you know, Windows does. As a die-hard linux user, this line of thinking really plays against Linux. Software distribution hasn't caused problems in windows since XP. Likewise, all mac users seem pretty happy with .app bundles. > Second, linux distribution maintainers are usually much better informed about the technical details of installing software in a stable manner than any software vendor. Sure you can get your software from the vendor. But then you should be willing to accept that it is often broken, inefficient, and insecure. Software vendors have no interest whatsoever in installing their software in a professional and sustainable way on your system, package maintainers do. Do you realise how insulting this comes across ? As a software dev, my personal experience of "professional linux distro packagers" is people literally removing random lines of code of my software until it builds - who cares if it crashes as soon as you do more than open it anyways. I'd rather not have my software packaged than have it like that. My subjective experience from the software I use is that stuff like AppImage made straight by the dev is generally much more stable and works much better than whatever chtonian hack a debian packager decided to apply.
- amoe_ 6y agoSoftware distribution in Windows and Mac comes with a lot of problems, they are simply problems that you-personally don't see as part of the class of "distribution problems". Please don't tell me you've never encountered post-install errors with Windows and Mac software. Linux packages have a higher bar to meet for integration quality, and also have a more difficult job to do because of the more-fragmented nature of the platform. > As a software dev, my personal experience of "professional linux distro packagers" is people literally removing random lines of code of my software until it builds I'm sorry this happened, but I can assure you that the vast majority of maintainers do not do anything like this.
- oDot 6y agoArch does this best. If you are displeased with the official repos, you can use the AUR.
- Kaze404 6y agoAdditionally, there's often a package in the AUR for the software you want to install already. Just gotta look at the votes and comments beforehand, and if you're feeling paranoid, the PKG itself.
- nix23 6y ago>Just gotta look at the votes and comments beforehand, and if you're feeling paranoid, the PKG itself. ALWAYS check the PKG-file when using AUR!!: https://www.bleepingcomputer.com/news/security/malware-found-in-arch-linux-aur-package-repository/ https://www.bleepingcomputer.com/news/security/malware-found...
- bsaul 6y agoI think the original reason for shared libraries, and the only true one is that it’s meant to save hard drive (and maybe memory) space. But the ratio between assets vs code is now so big (media files, or data in data intensive algorithms) with code representing nothing, i don’t think any optimisation is really worth it anymore.
- teruakohatu 6y agoThere are also security implications. Update one shared lib with a security patch and all applications that use it are now using a patched version.
- posix_me_less 6y agoThis is very often repeated argument in favor of giving control over shared libraries to the distribution, but it is mostly distribution's marketing. In practice, most users don't really care about security. That very small portion of users who do care about security, don't wait 2 weeks or more for distribution to make fixes available, they fix it/mitigate it themselves as soon as possible. It is true that it is easier to fix one version of a library than 10 different versions. But if you need 10 different versions for different applications, you probably do not need to patch all 10 of them.
- ithkuil 6y agoMost people don't care about security ... until they do. Most people don't understand security and are not equipped with the necessary knowledge to correctly judge risk. As long as security is just something that gets in the way to get some job done, most people will just plow ahead, since not getting the job done right now has a high and easy to understand cost.
- brundolf 6y agoIt's become increasingly common for desktop applications to aggressively and/or automatically update themselves the same way the OS does, often without even having to go through a "wizard" prompt of any kind. Off the top of my head Chrome, Firefox, VSCode, and Slack (probably my four most-used non-system applications) automatically update themselves whenever I restart them (and prompt me to do so when applicable). Not to mention the fact that an increasing fraction of consumer-facing software now lives in the browser, where updating implicitly happens every time you go to use it. Regardless of how you feel about these trends, they make out-of-date applications much less of a concern than they used to be.
- m4r35n357 6y agoPlease lookup "python venv"
- MaxBarraclough 6y agoWhat do you make of Go's approach where the build outputs a single binary file [0] that, roughly speaking, 'just works'? [0] https://stackoverflow.com/a/19286458/ https://stackoverflow.com/a/19286458/
- khuey 6y agoThis is exactly what Rust does by default too, btw.
- MaxBarraclough 6y agoThanks, I didn't know that.
- young_unixer 6y agoGiven the current state of the ecosystem, I think Go's approach is the sane thing to do.
- tatersolid 6y agoNow the Go dev has to voluntarily update said binary whenever a security issue or bug is found in his code or any of its dependencies. And you have to replace that whole binary everywhere it is installed. Think about how many systems would still be vulnerable to heartbleed if every thing that used libopenssl had to be re-compiled and redistributed as a statically linked binary. This proposed “statically linked” world might be worse than the current mess. See Docker.
- jabirali 6y ago> And you have to replace that whole binary everywhere it is installed. Not if your package manager supports binary diffs [1]. Which for many platforms is already the case, and other package managers would likely implement the feature if downloading large binaries becomes a problem. Right now, I’d however call it a premature optimization as the bandwidth of most people is dominated not by downloading updates but by streaming. But it is a solved problem since e.g. Fedora has supported package diffs for a decade. Regarding the heartbleed, that is a valid and often repeated argument, but I think it is also overblown. One could e.g. have a static binary with embedded or bundled info about what library versions it was statically compiled with, and a way to automatically flag which binaries are thus vulnerable. Such a system would make it possible to push out new builds of high-priority targets like Firefox and Chromium without testing every other libssl-based app for compatibility first, thus cutting down on the response time for patching the most vulnerable apps. But the flagging would make it clear that the other apps need updating too. (Or in the case of automated builds, that the other apps need testing.) I’m not saying that the whole OS should be statically linked, but for end-user apps I think it makes a lot of sense, and it’d remove a lot of friction where a library update can break a previously working app (that happens). [1]: https://en.m.wikipedia.org/wiki/Delta_update https://en.m.wikipedia.org/wiki/Delta_update
- fractalb 6y agoYeah, I'm happy to keep track of all my third party software that I install manually and I never forget about what applications I have installed so far and I always update my packages manually when there are any security flaws and I get to know about all the security flaws right away when they are discovered because I'm on all seclists. Even if I forget to update my third party apps/packages, my third party apps/packages remind me of the new updates and I never turn the update-notifications off.
- deleted 6y ago[deleted]
- deleted 6y ago[deleted]
- kevin_thibedeau 6y agoPut your stuff in /usr/local. Use Gnu Stow for poor man's package management. Then you can have your programs coexist with the OS.
- nix23 6y agoOr use a BSD where System and packages/ports are two things. /bin /etc = System /usr/local/bin /usr/local/etc = Programs
- dTal 6y agoSo do that? Distros provide packages but they don't make you install them. Download the applications from their website and stick them in /usr/local or your home directory. If the applications don't provide builds, that's their problem. We have AppImages for a single-file solution, but I've used plenty of application directories you can just unpack and use. Julia is one.
- deleted 6y ago[deleted]
- Ericson2314 6y agoYou are right on only one thing: 1 version globally is stupid. Global properties in general are stupid. Have a notion of public vs private dependencies and one gets the right amount of coherence, not too much or too little. Otherwise, hell fucking no. This misconception is causing so many mistakes. Software is an ecosystem; I give 0 shits about individual libraries programs whatever, just that the end composition meets my criteria. The app bundle / flatpak / corse-grained Docker vision of software is plain wrong, and will basically prevent future gains in productivity. Nix and friends get it right: no single version dumbness, everything is installed the same way, be it by the admin or by regular user, and with proper notions of dependencies. Socially, I understand where OP is coming from. The common view that distros are some crusty 90s holdover held hostage by a bunch of neckbeards who don't care about users not like themselves. But distros like NixOS put the user in full control. There's feeling of de-alienation using a NixOS machine that's really hard to convey to those that haven't yet tried it (and gotten over the initial learning curve).
- posix_me_less 6y agoYeah one version really is an antediluvian limitation. The ideal state of this would be something like this: I can have 100 different versions of a library, stored on disk only once per each version, and any application I install could use the special version it wants as a shared library. Does NixOS provide this capability currently?
- kilburn 6y agoYes. NixOs uses the NiX package manager (that you can install in any other distro too). The NiX package manager installs each version of a package to a directory, the trick being that each version of each package goes to a folder whose name is a hash of all the inputs of the build (files, build parameters, specific build folders of this builds dependencies, etc). As a result, not only can you have different versions of a package: you can even have different builds of the same version (that you built with different build configuration and/or versiona of its dependencies). The concept is sound. The issue is that you need the ability to actually build the application (you need the source) and you probably have to adjust its own build process to get it to work properly with NiX.
- igneo676 6y agoYou can live in this world right now. 1. Snap and/or Flatpak allow you to install GUI applications from most places nowadays. The internal tooling (system packages) are kept separate from the User installed applications and are effectively sandboxed in this way 2. Linuxbrew allows a Mac OS-like separation from your personal development tools and your OS's internal packages. Notably, this also allows you to install far newer tooling than your distribution would typically provide 3. Drop application binaries in ~/.local/bin if all else fails If I weren't on a rolling release distribution I'd probably go that route. I hate being restricted by whatever my distro provides, I hate upgrading the entire world when new releases are made, and I hate third party repos and the hell the provide reconciling everything together. It's really the in-between state that's terrible. Either go full *BSD or Mac OS and separate the concepts or full Arch Linux (w/ AUR) and don't. All other ways of distribution software tend to be more server centric anyway
- jabirali 6y ago> Either go full *BSD or Mac OS and separate the concepts or full Arch Linux (w/ AUR) and don't. Regarding the first alternative, I think it will be interesting to see how Fedora Silverblue [1] turns out. It’s basically going for an immutable base system coupled with Flatpak for apps the user installs. Haven’t tried it myself, but for average desktop users, I think that sounds like a very good solution in the long run: a stable base system with up-to-date user-facing apps. [1]: https://docs.fedoraproject.org/en-US/fedora-silverblue/ https://docs.fedoraproject.org/en-US/fedora-silverblue/
- nwallin 6y agoSo if you want to download precompiled static binaries and "install" them into your home directory or /usr/local/bin that's fine. You can do that, and it works, although now you're stuck in the same quagmire Windows users are stuck in. My question though... why? Everything about that seems to me worse in every way. Specifically regarding python, on my system right now, I have python 2.7, 3.8.5 and 3.9rc1 installed on my system and maintained by the package manager. When 3.9rc2 or 3.9.0 final is released it will update to that. It's configured to run 3.8.5 when I just run "python", although I can manually run other versions by running the command python2 or python3.9, and I could reconfigure the default to be one of the other versions if I wanted. The package manager has versions going back to 3.4. I guess I don't understand the desire to install python manually - what can you do with a manually installed python that you can't do with the one installed by the package manager?
- rumanator 6y ago> This whole ideology of "the user should get all their software from their Linux distribution" This isn't true at all, and I struggle to think where you came up with this idea. Linux distributions do distribute a hand-picked set of packages. That's essentially what a distribution does: distribute packages. Some are installed by default, others are made available. That's pretty much the full extent of it. Yet, just because a distribution distributed packages, that doesn't mean you are expected to no use anything else. In fact, all the dominant Linux distributions even support custom repositories and allow everyone to not only put together their repository but also offer a myriad of tools and services to allow anyone to build their very own packages. Even Debian and debian-derived distributions such as Ubuntu, which represent about half of Linux install base, offer personal/privayr package archives (PPA), which some software makers use to distribute their stuff directly to users. So, exactly where did you get the idea that that so called ideology even exists?
- Const-me 6y ago> and a well documented way to install third party software I have made a few packages for Debian ARM Linux when I needed them. I wouldn’t call the documentation great, but it’s not too bad either. Same with the infrastructure, the OS support versioning and dependencies, can be configured for custom repositories and to verify signatures… It’s not terribly hard to make them fully working, install/remove/start/stop systemd services, support upgrade/purge/reinstalls, matter of a few shell scripts to write. The command to install a custom package from a local file is this: sudo dpkg -i custom-package_0.11.deb However, this all was for embedded or similar, where I had very good idea about the target OS version and other environmental factors. Not sure how well the approach would work for a desktop Linux.