Shoddy workmanship. RPM was discovered to be broken in 2002; it would regularly corrupt its own databases and lock up in such a way that it couldn’t be killed. In spite of that, RedHat went and made two major releases with a broken RPM.
Bad packaging. The RedHat 8 release of libgcj (the libraries for the GNU Java compiler) puts a broken version of jar into /usr/bin, destroying any working version you have installed. They’ve known about the problem since 2002, but left it broken into 2003. What the hell is a jar binary doing in a libraries package anyway?
RPM. If you think RPM is a reasonable piece of software design, I can only assume you’ve never used Portage, APT or BSD ports. I still have to keep a “cheat sheet” of the bizarre invocations necessary to make RPM perform basic tasks. Then there’s the fact that you can’t just install an RPM; no, you need to find the right RPM for your specific version of RedHat, assuming one exists. And if that’s a pain for you, imagine what a pain it is for developers.
Broken SMP. Not a big deal for home users, but RedHat target the enterprise. Yet threading is broken on SMP systems.
Bad advocacy. Standing up and telling people that they should run Windows, not RedHat, is not just a dumb move from a marketing point of view—it also infuriates the very developers they rely on for the products they repackage and sell.
Broken UTF-8. Try echo redhat sucks | grep [A-Z] and see. Works on every other Linux distribution, broken on RedHat. Furthermore, man pages show up as garbage in PuTTY because nroff’s VT102 sequences get hosed. It’s possible to fix it by turning off Unicode support, but is it too much to expect that RedHat get basic stuff like terminal I/O right?
X dependencies. RedHat is for servers, right? Who needs X on a server? Well, you do, if you want to run RedHat’s emacs-nox package. Want to install without X? Tough luck, their “text mode” installation still uses it.
Broken Perl. Perl has its own package management system called CPAN. It’s a hell of a lot more friendly, easy to use and helpful than RPM. I do not want to manage my Perl packages with RPM. However, even if I did, I’d be out of luck, because RedHat don’t provide a complete set of CPAN libraries in RPM format, and the ones they do provide aren’t kept up-to-date. End result: Before installing any Perl library I have to check to see if there’s an RPM version. If there is, I install it and then delete it manually and install it properly using CPAN.
Painful upgrades. Want to upgrade from RedHat 8 to RedHat 9? Good luck, you’ll need it. Even upgrading from 7 to 8 is a “start from scratch” affair. Compare to upgrading debian or Gentoo and it’s clear that RedHat is designed for people who never upgrade. Which wouldn’t be a problem, except that RedHat don’t support old releases any more. If you’ve got an old RedHat system, you have to reinstall anyway, so do yourself a favor and install a different distribution.
Unnecessary software. When I install RedHat, I always do my best to cut down the bloat to a bare minimum. Yet somehow, I always seem to end up with iptables and ipchains. Now, in what universe does it make sense for your installer to install both of those?