Debian 12 'Bookworm' New Features and Release Date
news.itsfoss.com
news.itsfoss.com
I'm a recent refugee from ubuntu LTS's, after having run them for a decade or so. Previously, I just never really had a reason to move away from the community support and google-ability around ubuntu, plus many guides having example commands for ubuntu installs etc.
Snaps are what made me switch. It's insane that they're making apt packages pull in snaps. If snaps were an additional thing similar in spirit to `/usr/local` where system admins could install weird stuff they needed that didn't fit, that's one thing. Forcing them onto me is another, especially when you can literally feel the difference between a program living in a snap vs one installed normally.
This is nitpicky but I also don't like that it messes with my mount and df outputs with a bunch of mounts I don't care about and 100%-full filesystems.
Now, debian - I don't know why I didn't make this switch ages ago! It's everything I wanted from ubuntu without any of ubuntu's opinions. My new default linux distro for servers. (I still run Arch on my laptop).
> Debian Long Term Support (LTS) is a project to extend the lifetime of all Debian stable releases to (at least) 5 years
But to be honest I find the LTS schedule a bit confusing when comparing to Ubuntu, because it's separate from the initial stable period, e.g Debian 11 Bullseye (the current stable release) transitioned into stable in 2021, and on above page it's LTS support date is in set between 2024 and 2026. I wonder if this difference in presentation has previously put people off.
You can also pay for extended support for a further 5 years from a 3rd party for a total of 10 years: https://wiki.debian.org/LTS/Extended
And upgrades work the smoothest of any distros I tried. My desktop install is from 2007 and I think it survived replacement of every component of my machine including the case.
We even had one of admins accidentally update one of legacy servers "2 versions up" and it just worked!
Just enough glue and tons of patches. I used to love Debian, these days I much prefer the "upstream is king, do not patch it unless it's broken" approach of Arch Linux, and to a lesser extent, Fedora.
I always say that when you learn to use Apache 2 on Debian, you only learn how to use Apache 2 on Debian. There was a moment of confusion the first time I configured it on Arch and there was no /etc/apache2/sites-enabled directory. Upstream will always know better, and have better testing facilities than a random maintainer adding their custom solution on top of the vanilla code.
(Since I'm here complaining, I might as well add I dislike deb/apt more than I dislike dnf/rpm, and they are both quite unergonomic)
Just my 2 cents. I respect Debian and its place in the Linux world. I've just fallen out of love with it and that's OK. I wish non-Debian distros were more popular though.
My reasons are different from yours: I can tolerate UI issues, polluting the mount list is far worse, but the dealbreaker is that the user is not allowed to disable automatic updates on snaps, the option merely delays updates for a maximum of 30 days. I simply cannot accept someone patching my OS against my will, what is this, Windows? And since Ubuntu went all in on snap, more and more system apps are snaps, so it's not as simple as removing snapd, I see what's coming on the horizon.
The snap developers arrogantly tell you you're wrong for wanting to disable automatic updates, and they will not make it optional like it is for apt. This is despite the snap store being a far less tested/reviewed repo than the apt repo. So any rando can upload a snap package, you can install it after approving it, then said rando can push a malicious update, and it will be immediately deployed to my PC against my will.
"Use another distro if you don't like it?" OK, that's what I did. But I would still be a Ubuntu user if the snap devs weren't so smug and antagonistic.
The main hurdle is the NVIDIA graphic card. Sooner or later the proprietary driver for X11 will stop supporting it by and who knows if the one for Wayland will work. I remember I had problems with Wayland so I went back to X11. The card is a Quadro K1100M.
edit: Is there anyone who can share their experiences switching from Ubuntu to Debian on the desktop?
10/10, would recommend over snaps.
I use it as my desktop os.
How do you deploy anything that depends on bleeding-edge programming-language runtimes? Half the stuff I end up installing on servers are Ubuntu PPAs maintained by the third party software vendor; which in turn depend on Ubuntu-specific base packages that don't exist on Debian.
If your answer is "I use containers", then that's just a regress — as for most complex software (i.e. not just a static binary), due to library package requirements, the base OS-image inside the container almost always ends up being Ubuntu. So now you have to ask, how does the person creating the container-image switch to using Debian for that?
If it's proprietary closed binaries distributed over a PPA, I'd prefer run those in independent VMs (first trying the PPA on Debian - they're really just apt repos and can be added as suc), falling back to Ubuntu if its not worth resources fixing some particular one
> as for most complex software (i.e. not just a static binary), due to library package requirements, the base OS-image inside the container almost always ends up being Ubuntu.
I don't share this experience at all. The only situations I had where Ubuntu PPAs was the only nontrivial solution would be kernel drivers - precisely what does not go into containers.
> your answer is "I use containers", then that's just a regress — as for most complex software (i.e. not just a static binary), due to library package requirements, the base OS-image inside the container almost always ends up being Ubuntu
The reasons to move away from Ubuntu as base distro often don't apply to container images. Ubuntu images don't run any daemons like snap and are actually quite optimized for size (smaller than Debian, surprise surprise)
> So now you have to ask, how does the person creating the container-image switch to using Debian for that?
Compile outstanding libraries from source in the image build; injecting integrity-checked static assets as necessary.
For my installs, I rip out or neutralize the motd-news stuff, ubuntu-advantage-tools, ubuntu-report, whoopsie*, snapd, etc...
Now it's back to normal.
* apt is used to install python packages that system packages depend on.
* Users are ---required--- strongly encouraged (see below) to use virtual environments or conda to install python packages for their own usage.
There's:
1) System packages. Any OS with discrete releases should aim for stability, here, to create a useful deployment/support target.
2) User packages that the user plans to use directly. Your web browser, a spreadsheet program, maybe something like ripgrep. You don't need multiple versions, and the version you want is almost always "whatever's latest". This could also, potentially, include your main daemons on a server—SQL servers, web servers, that kind of thing.
3) Development packages. It's common to need multiple versions and to need to switch between them frequently (due to having multiple projects with the same deps at different versions, or needing to "git-bisect" or debug a branch with older deps, that kind of thing). Some overlap with 2 (especially on servers, if only because it's convenient to manage your servers' packages with the same tool you use to manage development dependencies) but they remain distinct categories.
MacOS with Homebrew gives you 1 (macOS itself) and 2 (Homebrew). Some people try to use homebrew for 3, which tends to make them unhappy and leads to them making angry posts about Homebrew because doing that is a bad idea... but it's also a bad idea on most linux distros, which will be mixing together 1-3 if you try to use the system package manager for everything. You should be using something else for #3, at least. You shouldn't be using the system Go or Python packages unless you're targeting that specific distro at that specific major version as a deployment target.
Linux distros tend to have difficulty separating 1 & 2, in large part, I think, because of how the graphics and multimedia stacks work. This is really annoying if you're used to having nice, clean separation between those, as on macOS + Homebrew.
The libraries in distro are for distro packages. Using them is fine but by no means required.
I mention Go because I think it's heading in the same direction on Debian-based distros.
Seems like there would be a better way to keep things straight...
Not all the Debian packages are covered by this security support, but there's a tool to check your installation (see the LTS wiki).
EDIT: I forgot that Freexian also provides a few more years, but I've never used that. I find that I need to upgrade more frequently to keep up with increasing security requirements anyway.
And so... maybe I'll just wait for Mint to update.
I just made the switch to Silverblue from Debian/Ubuntu and so far like it.
1. Read the install notes. Read the upgrade notes.
2. Note the things that the upgrade notes say will change and need human input.
3. Backup if, for some strange reason, you don't make backups automatically.
4. Change the sources.list and, if there are any, sources.list.d configs to point to the new stable release name.
5. If you set APT::Default-Release, set it to the new stable release name.
6. Update the package list: apt update
7. Upgrade the system: apt dist-upgrade
8. Reboot.
9. Fix items from the policy config list you made in step 2.
10. Check on anything left: apt upgrade
That should be it.
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade
upgrade done. All of configs you changed are not touched and the new version is in <name>. dpkg-dist file find /etc -name '*.dpkg-dist
to show "a config that package would use if you didn't change it". diff it with your config and add any required changes. Done.> 10. Check on anything left: apt upgrade
11. apt autoremove
However, I've always installed apt-listchanges and configured it to prompt me before installing anything, which (mostly?) removes need for 1 and 2, a bit like backing up removes need for 3.
apt-get update
apt-get dist-upgrade
answer the questions. Most will be "do you want old version of file, distro maintainer version of file, or do you want to diff or edit it".If you don't want to answer the questions and just want to keep only config that you changed:
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade
(we use that because our configs are managed by CM Puppet anyway)That will:
if you have not changed system config in a given package, update config file to latest * if you have changed it, it will preserve it but put new one into .dpkg-dist file.
If you did not add any non-debian repos that would collide it pretty much always succeeds.
Now:
* find any file ending with .dpkg-dist * inspect both this and config to see whether you want to put some of new config into your current config
That looks longer than it is. Near-every upgrade I did is just those 3 commands and some waiting.