For example, Red hat and Debian based systems use entirely different package formats. There are others as well.
Everything is dependent (for example) on what version of glibc is in use, which is dependent to some degree on the kernel. This is overly simplifying things, but dependencies are a real concern for integration testing. Testing is needed in large part because upstream source often needs to be configured at build time to integrate with the rest of the system. Different distros are different enough to require it.
There is a lot of fragmentation to be sure. Generally, your best bet, especially for server use, is to select a major, actively supported distro that offers the software stack you want to use and install everything from the repo. Alternatively you may have to roll some of your own from source, which can be challenging.
At one point, I had needs that weren't satisfied out of box by any mainstream distro, and I ended up rolling my own system entirely from source, from the boot loader and kernal on up through the userspace stack. That was educational - nothing teaches the difficulties of integrating quite like bringing up a system from source.
There's pros and cons to the Linux model (really, the Unix model). It's flexible, and you can do what you want with it, but there's a learning curve for sure. Professionally, at work, we simply buy enterprise licensing from red hat and augment it with a few other packages (primarily Oracle RDBMS and Tomcat). Then again, it's a bit different having pro admins.
Incidentally, this site runs on Linux.
Everything is dependent (for example) on what version of glibc is in use, which is dependent to some degree on the kernel. This is overly simplifying things, but dependencies are a real concern for integration testing. Testing is needed in large part because upstream source often needs to be configured at build time to integrate with the rest of the system. Different distros are different enough to require it.
There is a lot of fragmentation to be sure. Generally, your best bet, especially for server use, is to select a major, actively supported distro that offers the software stack you want to use and install everything from the repo. Alternatively you may have to roll some of your own from source, which can be challenging.
At one point, I had needs that weren't satisfied out of box by any mainstream distro, and I ended up rolling my own system entirely from source, from the boot loader and kernal on up through the userspace stack. That was educational - nothing teaches the difficulties of integrating quite like bringing up a system from source.
There's pros and cons to the Linux model (really, the Unix model). It's flexible, and you can do what you want with it, but there's a learning curve for sure. Professionally, at work, we simply buy enterprise licensing from red hat and augment it with a few other packages (primarily Oracle RDBMS and Tomcat). Then again, it's a bit different having pro admins.
Incidentally, this site runs on Linux.