Well, sort of. There are a lot of closed source programs that have installers for certain versions of certain distros and sometimes they can be shoehorned onto a technically unsupported distro.
The fact that that kind of thing actually works points out the cluelessness of the application developers.
Linux is pretty much Linux. Building your app so that it runs only on a certain version of a certain distro is dumb since if it runs at all, it will likely run just fine on most distros. Rather than distributing your app as a RedHat or SuSE RPM that does a dependency check on the distro version it would be much better to write the app to the Linux Standard Base and distribute either a scripted installer or a source RPM. Then it could be installed with little difficulty on most any distro.
An example of an app that does this properly is the Sun JRE and JDK. It's a .bin file and just installs. No silly distro version checking. It just works.
Compare this to, say, Oracle 10g. The installer checks the contents of /etc/redhat-release and looks for a certain version. As such, it will happily install on RedHat ES4, but not on CentOS4, which is exactly the same thing with just RedHat's images removed. To make Oracle install you have to edit the /etc/redhat-release file by hand and make it look like RHES. After Oracle is installed, you have to change it back. But it installs and runs just fine. Dumb.
To make it run on a Debian-based machine requires a host of other hoops to be jumped through, but since Debian stable and RHES4 use similar kernel versions and exactly the same GCC version, Oracle run just fine on Debian once you fool Oracle into installing on it.
The LSB was written just for this purpose. An app written to the LSB will install and run just fine provided that the underlying versions of software are adequate and the LSB is the way to tell that.
Sadly, too many closed-source software companies think it's still the bad old days of Unix when you had to code a different app for each Unix version. With Linux, that's just not true but it seems that the developers at those companies can't seem to figure it out.
“Compare this to, say, Oracle 10g. The installer checks the contents of /etc/redhat-release and looks for a certain version. As such, it will happily install on RedHat ES4, but not on CentOS4, which is exactly the same thing with just RedHat’s images removed. To make Oracle install you have to edit the /etc/redhat-release file by hand and make it look like RHES. After Oracle is installed, you have to change it back. But it installs and runs just fine. Dumb.”
Actually this is quite intentional.. Oracle is trying to limit what OS you get support on. That is what I was talking about when I said a properly configured app *can* install anywhere. Oracle can save their support requirements