this post was submitted on 25 Jun 2023
57 points (93.8% liked)

Linux

48372 readers
994 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I know there are ways to install software outside of aptitude on debian/ubuntu, (add repo, or build, or download binary, or possibly flatpak/snap/etc).

But being able to download *.deb files was one of the nicest aspect of using a debian based distros and now I'm seeing more and more projects include all distros except deb files.

Someone correct me but I vaguely recall that distributing debs is no longer recommended by debian itself?

  1. Am I wrong, and have I only co-incidentally stumbled on projects that don't distribute debs?
  2. I am right and this seems like a mis-step, removing one of the most beginner friendly features that helped propagate debian based distros?

Flamesuit on.

top 29 comments
sorted by: hot top controversial new old
[–] [email protected] 27 points 1 year ago (1 children)

From an app developer and a distro maintainer point of view snaps/flatpacks are just better in almost every regard. It seems insane that each distro spends time building and maintaining packages that should just be in a container and ready to go.

There are some disadvantages but would you rather the developers spent time fixing bugs and adding cool features or would you rather they spend their time packaging stuff up to support half a dozen different distro packaging formats. These are the choices devs are having to make but there's no need- put it in a container, have a stable environment that runs everywhere, done.

[–] NoXPhasma 20 points 1 year ago (2 children)

Why should they even package it at all? Just distribute the source code and let the distributors handle it themselves.

[–] [email protected] 10 points 1 year ago (1 children)

Man, this became so bad in the last five years or so.

Just bought a digital drawing tablet from a manufacturer who claim their products have Linux support. Plugged it in and went to their download lage. Of course, there would not be a link to their GitHub project and instead I got a .deb and a .rpm, which is totally useless to me because my system is neither Debian/Ubuntu nor even glibc.

[–] [email protected] 3 points 1 year ago (1 children)

rpm2targz should solve the first half of that problem (debs can be unpacked without their package manager too, but I forget the method). As for the glibc part, crossing your fingers and hoping it will work with musl or whatever anyway seems like the most useful course of action, alas.

[–] [email protected] 1 points 1 year ago

They're (usually) packaged with the slightly unusual ar format - ar x yourpackage.deb should give you the underlying tar files that would be installed, and then tar xf yourpackage.tar. Most archive managers will let you open them up like any other archive though - Gnome's certainly does - if that's easier for you.

[–] [email protected] 7 points 1 year ago

That. Historically, upsteam provided sources, and downstream distros packaged it however they want to. If anything, the developer would package it for their own use on the distro(s) they use.

Is it weird for the users? Kind of. But it still makes the most sense: you can't expect the developers to know how to properly integrate a package in every distro. And what usually happens is that we end up with packages that ships static binaries and puts the app in /opt and call it a day.

I'm an inactive maintainer for [The Lounge](https://thelounge chat), and the result of us trying to package for multiple distros is that we store chat logs in /etc/thelounge because the project is designed mostly for the Docker version, which uses just one "data" folder. The project prefers consistency for the users, so the deb and Arch packages are both fairly questionable. I get reports for this from time to time in the AUR comments, and I'd have to step over the other project maintainers to split it into /etc/thelounge and /var/lib/thelounge as it should. If packaging remained independent, I could adapt the package better for Arch's FSH.

The universal platform for developers that want to offer end users a prepackaged way that works on every distro is Flatpak. Personally I prefer to install natively where possible, but I think it's a good middleground between users having to figure it out, without developers stepping over the distro's package structure. Users that want a native package can get good quality ones or build it themselves, while less experienced users can just use the developer-supported installation method.

[–] [email protected] 19 points 1 year ago

I believe that deb packages should be first-class citizens in every project that distributes binaries since Debian and its derivatives have the largest user base in the Linux ecosystem.

I have mixed feelings for containerized applications since everything depends on your actual use case.

  • Containers were first used by sysadmins to improve a system's security through isolation of apps and services. This is of little concern to most end users.

  • Then came the developers who started using containers to streamline the deployment of apps and their respective dependencies. Again, this is hardly an end user scenario.

  • Finally, the light bulb moment: Containers can also be distributed to end users in the form of Flatpaks, Snaps, Appimages, etc.

They can be run like regular apps, with the inherited benefits I've described above (isolation + inclusion of dependencies). So, what could go wrong?

These benefits come at a cost:

  • Isolation: clunky system integration (wrong themes, missing icons, inaccesible files). These can be fixed, of course, but not everyone wants to be bothered with additional tinkering.

  • Dependencies: Having redundant libraries and/or additional runtimes in your hd may be a deal breaker for some, but I suspect less technically inclined users won't mind the overhead.

I still love the idea of a distro-agnostic package format, but in the end, the issues I've previously described, add unnecessary complexity to the user experience. This is why I don't think native packages are going away anytime soon.

[–] [email protected] 19 points 1 year ago* (last edited 1 year ago)

deb was always the most distribudet packaging method due to ubuntu and debian based distro popularity but ubuntu decided to get away from it in favor of snaps, removing a lot of incentive for devs to distribute it, probably coupled with the events of arch becoming a meme big enough that it's non-business popularity exploded, what used to be a natural act for app devs became a question.

And debs weren't recommended since long ago but nobody cared about that

[–] [email protected] 11 points 1 year ago (3 children)

I see a lot of people doing flatpacks now, fwiw.

Only thing I install via deb these days is, like, Discord I think.

[–] [email protected] 9 points 1 year ago (4 children)

Honestly wish we could just not use flatpak/snap/appImage/whatever due to the wasted space. I'd really rather use a binary and reuse my shared libraries 90% of the time. The only exception was docker/snap were handy for things like a quick test for nextcould or home assistant. Then again I run mostly FreeBSD nowadays so I'm probably an old man telling kids to get off my lawn at this point.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (2 children)

Haven't ever needed them on Arch. Probably never will.

[–] [email protected] 4 points 1 year ago

Having built rpms, Deb and pkgbuild; pkgbuild is so much easier

[–] [email protected] 3 points 1 year ago

I was scratching my head trying to figure out how I hadn't run into this problem before but this answers it. Which is to say, I'm green enough to not have realized that just being handed the source code and letting make out of the cage wasn't the implicit default.

[–] [email protected] 7 points 1 year ago

Flatpak do share libraries, thats what gtk and kde platform flatpaks are. Flatpaks are designed around average GUI bound users. So concerns of using a few dozen megs of libraries for their multi-gig electron apps aren't really relavent.

Flatpak has really brought to light the question of whether its a distro's, or a developer's responsibility to create packages. I personally believe it should be the distro. Devs should be making good software, and if they want to provide a package, then great, but I never have an expectation from any dev of more than source + build instructions. Even a precompiled binary is not an expectation, because then you have glibc vs musl vs windows vs *bsd, and debian stable uses an older version thats maybe not compatable, or maybe arch is too new and doesn't work yet, and it just goes back to the packaging expectation. So packages of any kind directly from a developer is a courtesy. If you want more packages in a distros repo, that they are building and maintaining, then they should be the ones you levy your complaints.

[–] [email protected] 3 points 1 year ago (3 children)

@socphoenix Until you need two versions of Python because… reasons. When building software it also becomes a hassle: You must have the specific dynamically linked environment or your binary is useless. Solutions are either statically linked builds or containers, flatpaks, etc… Containers can cache dependencies as layers to preserve space however. Besides, space is cheap. Sorry for watering your lawn, but it was kind of dry.

[–] [email protected] 2 points 1 year ago

In this case, you should have you dev environment setup in a container (or VM) with the correct dependencies

[–] [email protected] 1 points 1 year ago

Lol the conflicting the dependencies is a fantastic use for them, I just haven’t really run into that from a user perspective

[–] [email protected] 1 points 1 year ago

Something that I have ran into is the mono runtime for gaming, it has many complicated dependinces which can easily conflict with the main system. I just ended up making full containers for older mono versions to get old games to work anyways.

[–] [email protected] 1 points 1 year ago (2 children)

I see flatpacks kinda bad. Try to switch browsers and import data from browser running a flatpack :) #Impossible

[–] [email protected] 5 points 1 year ago (1 children)

Not actually impossible, just requires you know what you are doing. Its a fixable, usability problem for average users.

[–] [email protected] 5 points 1 year ago

That's funny, given that Discord is proprietary, and confining it in sandbox would give most benefits.

[–] [email protected] 0 points 1 year ago

FYI - although not official, Discord can be installed as a Flatpak [0], albeit with some features missing [1].

Also, I've found Webcord [2] a good alternative for my limited use-case. You may want to try it and see if it works for you. Lastly! I see there's now a GTK4/Go Discord client available [3], I'll have to give this a try and see how well it works at the moment.

[0] https://flathub.org/apps/com.discordapp.Discord

[1] https://github.com/flathub/com.discordapp.Discord#differences-in-flatpak-version

[2] https://flathub.org/apps/io.github.spacingbat3.webcord

[3] https://flathub.org/apps/xyz.diamondb.gtkcord4

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago)

Ubuntu debs often didn't work on Debian anyway.

I'd rather not install third-party debs.

[–] [email protected] 4 points 1 year ago

I have 4 .deb packages that I have downloaded from github. Other than those I try to use apt first if there isn't a package I search for a flatpak. The only reason I have snap installed is to play with Firefox Beta. Packages: 2839 (dpkg), 45 (flatpak), 7 (snap)

[–] [email protected] 2 points 1 year ago

If rpm packages are available you can use alien to convert them to deb.

[–] [email protected] -3 points 1 year ago

Id say tonnes of projects now just sort of work best via docker, so rather than mess around with installation instructions for multiple distros and etc, a single docker image is just way easier to maintain documentation on

load more comments
view more: next ›