OK, I was using Apache as a hypothetical example. If you want to see what I'm talking about, try installing Qt from source on a Debian system. Notice how the instructions tell you to make the package available at/usr/local/qt.
Now remove it and install the various Debian packages which make up Qt. Notice how everything is different---binaries are in/usr/bin, libraries are in/usr/share/qt3/lib, headers are in/usr/include/qt3.
Try accessing/usr/local/qt/include/qt.h: you can't.
I've administered systems of different ages and for different purposes, and yes, it is frustrating. But that's because package authors tend to choose poor interfaces, and system integrators then modify these interfaces, making things worse. The FHS is not a solution because it mandates different interfaces for the same package, depending on whether it is ``local'' or part of ``the system.'' I'd love it if all packages used a consistent interface which provided global names that don't change, but that's a decision for package authors, not system integrators.
Perhaps you are right that some distributions change things more than Debian. But my main point is that Debian mandates these types of changes in their policy.
I was a Debian user for four years; I recently switched away because I got fed up with all the downstream futzing they do to their packages. I understand Debian's need to ensure high-quality packages, but making gratutious changes to package interfaces (e.g., moving and renaming files) just to conform to a hardline FHS policy is extremely detrimental in the long term.
Cross-platform compatibility is essential. If the upstream Apache maintainers say Apache can be stopped with apachectl stop, Debian should damn well support this interface. I don't care if they provide/etc/init.d/httpd stop in addition, but they should support the standard interface. This makes life infinitely simpler for people who deal with many different systems---they don't have to keep relearning things. It also makes things simpler for people offering support to Apache users.
The tremendous benefits of cross-platform compatibility come from a package's interface being exactly the same on every system. It is a relatively minor benefit for different packages to have similar interfaces. Breaking cross-platform compatibility, as Debian does, for the sake of cross-package similarity is a horrible idea.
I should point out that I'm picking on Debian here because they are especially bad about this, but almost every major Linux distribution is guilty of unncessarily violating cross-platform compatibility in some way.
Now remove it and install the various Debian packages which make up Qt. Notice how everything is different---binaries are in /usr/bin, libraries are in /usr/share/qt3/lib, headers are in /usr/include/qt3.
Try accessing /usr/local/qt/include/qt.h: you can't.
I've administered systems of different ages and for different purposes, and yes, it is frustrating. But that's because package authors tend to choose poor interfaces, and system integrators then modify these interfaces, making things worse. The FHS is not a solution because it mandates different interfaces for the same package, depending on whether it is ``local'' or part of ``the system.'' I'd love it if all packages used a consistent interface which provided global names that don't change, but that's a decision for package authors, not system integrators.
Perhaps you are right that some distributions change things more than Debian. But my main point is that Debian mandates these types of changes in their policy.
Cross-platform compatibility is essential. If the upstream Apache maintainers say Apache can be stopped with apachectl stop, Debian should damn well support this interface. I don't care if they provide /etc/init.d/httpd stop in addition, but they should support the standard interface. This makes life infinitely simpler for people who deal with many different systems---they don't have to keep relearning things. It also makes things simpler for people offering support to Apache users.
The tremendous benefits of cross-platform compatibility come from a package's interface being exactly the same on every system. It is a relatively minor benefit for different packages to have similar interfaces. Breaking cross-platform compatibility, as Debian does, for the sake of cross-package similarity is a horrible idea.
I should point out that I'm picking on Debian here because they are especially bad about this, but almost every major Linux distribution is guilty of unncessarily violating cross-platform compatibility in some way.