by Matt Hartley
Debian and Fedora both offer a lot to those who want to learn more about Linux. Both distros are considered to be more advanced than newbie friendly distributions, however, they also target completely different types of users. This article offers a contrast between the two distributions.
One of the first things that makes Debian different from Fedora is that it's broken up into three release branches: Stable, Testing and Unstable. Debian stable is suitable for mission critical tasks that need to work, period. The Stable branch is great for some server tasks that can get by with modern security patches, yet have older versions of software.
Debian can also be used for desktop PCs using the Testing branch. This provides users with packages from the Unstable branch, but the packages have been tested as suitable for Debian Testing. This leaves us with Debian Unstable. This branch of Debian is where packages go to receive testing end up. It's not really suitable for anything other than testing and upstream development into other Debian branches.
Fedora is a very popular Linux solution among those who work in IT. The reason for this of course, is its Red Hat roots and cutting edge approach to providing tools for developers.
Fedora Workstation is often the first choice among those in Linux IT. It's reliable, yet offers access to bleeding edge packages and a first class Linux community. Fedora Server is a popular choice for those needing an environment with a more cutting edge base than say, CentOS/Red Hat, while still offering many of the same tools and work flows as found in a typical Red Hat environment.
Then we have Fedora Atomic. This is where those looking to utilize containers go in Fedora. If this is you, then this is the Fedora release for you. It's entire purpose is to run containerized applications well and it does this quite reliably.
At first pass, the easiest comparison is that Fedora has bleeding edge packages while Debian wins in terms of the number of those available. Digging into this issue deeper, you can install packages into both operating systems using the command line or a GUI option.
Fedora uses DNF to install, remove and maintain packages on your installation. Some of the commands available with DNF include: install, remove, update, upgrade, autoremove, clean, reinstall, distro-sync, makecache, plus many more options. DNF is available by default for modern Fedora installations and is widely considered a "replacement" for the YUM command.
Debian's APT command makes use of dpkgfor managing packages. APT also has options for CLI and GUI usage. Some of the common APT commands include: install, remove, -f install (fix install), autoclean, check, update, upgrade, apt-cache, search, among a number of others.
So why use APT vs dpkg? The most straight forward answer is because APT handles dependency management well. That said, there are occasions where running "dpkg-reconfigure foo" is necessary after something went wrong somewhere with a package setup.
There are always going to be software titles missing from the default provided Fedora repos. In cases like this, you might find yourself using Fedora's COPR repositories. Basically, they're very similar to Ubuntu PPAs. Adding them to your Fedora installation will allow you to install and maintain updates for software provided by each COPR repository. Debian differs here as they don't provide PPAs or COPR-like repositories. In most cases, you'll either have to add a special repo or instead, install the deb package itself.
Fedora and Debian both support individual package types. These packages are known as Fedora RPMs and Debian deb packages. What's neat about both of these package types is you can use conversion tools like "alien" to turn packages from one type to another. So using alien, one can take a Debian deb package and convert it into a RPM package.
In terms of software availability, Debian has the most overall packages that can be installed. In terms of choosing an RPM vs a deb package, I honestly don't see much of a difference here. So long as the package meets its dependency needs, I can't really say one is better than the other. I will say however that software repositories are preferred over individual packages. This goes for both Fedora and Debian. The reason for this, is functionality upgrades that are usually provided and keep things secure with said updates.
Fedora was one of the earliest adopters of a kernel feature called SELinux (Security-Enhanced Linux). While Debian also offers support for it, Fedora provides it enabled by default. This security feature was initially created by the US government and later on, Red Hat jumped into the project to provide further development.
Unless you're in IT, odds are this isn't a security feature that's really something you're going to be that interested in. So the best security is to keep iptables setup correctly, use a non-root user and keep up with this security list. Setting aside the fact that SELInux is enabled by default, I think security comparisons between the two distributions are matters of opinion. Generally, most people will point to Fedora as being the most hardened, secure of the two distros. I'd counter with Debian being far more stable. Even if you choose Debian Unstable I've found it to be more stable simply because packages are being tested far longer and with greater focus. That's not my opinion, that's my personal experience with both distros.
So to be completely fair, I will give most secure ranking to Fedora overall. But I do so only because of SELinux and the enterprise minded approach to the distro setup.
I like both distributions of Linux. Both Debian and Fedora have a ton to offer anyone willing to take off the "training wheels" and really explore what these distributions can do. Based on my experience, Fedora generally makes for a better desktop. Let me say this again, with a disclaimer:
As someone who has primarily used Debian-based distros for must of his Linux enthusiast years, I feel out of these two distros that Fedora makes more sense overall for someone serious about running an up-to-date Linux desktop.
I feel strongly that Debian's shining light is that it's a great base for Debian-based operating systems. Debian by itself can leave something to be desired in terms of package age. Don't get me wrong, I'm perfectly happy to run Ubuntu or Debian Testing as a daily driver. But most of you reading this, are probably looking more for something that is crazy stable – then Debian is a great choice.
What say you? You might be wondering why I couldn't work Arch or Mint into this comparison, right? Kidding aside, I'd be interested in hearing which distro you prefer between Fedora and Debian. Hit the Comments, let's talk about it.