Originally Posted by thenailedone
OK... I know I mostly don't understand how things work (even when I think I do) but I don't think that just because they both use RPM packages that a RPM for Fedora/Red Hat will just work for openSUSE... or will it?
And for those enlightened souls that look upon noobs like me with pity maybe you could clarify this for me (again
its like this, rpm/deb/etc, are basically tar/zip files.
they typically have some sort of controller file inside them, the tells your package manager stuff like what its name is, its required other packages(including their versions), the version of the program your installing, optional/suggested dependencies, description, author of package...
then it contains a compiled binary with configuration files, typically if you open up one in a archiver type program, you will typically see folders in it like:
now rpm and deb also suggest a "standard" filesystem hierarchy as well, but that is not always the case (example would be all user programs go in /usr/, not /usr/local/, all system binaries go into /bin and not /usr/bin or ~/<user>/bin, all SuperUser binaries go in /sbin, system libraries go in /lib and all user libraries go in /usr/lib etc...)
now most distros (regardless of package system) follow the filesystem hierarchy pretty well...but everyonce in awhile you get that obtuse programmer/package maintainer, that insist that a program go somewhere else in their distro. well every package that is built against that system, the linker will determine before hand where all the required packages are located, to use in the binary package later...if say one of the dependencies are in a non-standard location, the linker will point to the non-standard location.
so if you say take a rpm meant for fedora, and fedora has a required dependency in a different location, and you install that rpm on a suse install, the program will fail to work...
^now this is an example of an extreme case of binary incompatibility, the other problem that is more likely to exist, is the dependency chain.
debian is horribly bad about tearing apart programs "optional" components and offering them as "optional/suggested" dependency, where say another distro like arch might have it all in one shebang.
another example, the other distro simply might not have a required dependency, due to manipulation of "optional/suggested" packages, or a name difference in the dependency. of a library.
to expand a bit, you also have dependencies packages, that are known by other names.
like say in fedora the library is called: Transhour.Greatest.Tutorial-1.2.3
but in Suse it is called: Greatest.Tutorial.of.all.time-Transhour-1.2.3-4
the fedora package will say it requires that other package, but suse's package manager can not find it, cause it is known by a different name.
you find this more common in distro's that share package mangers, vs ones that are based on each other. so you might run into problems using a fedora/redhat rpm on a suse system, but you aren't going to cause irreparable damage, commonly it will install but fail to start, or wont install and scream about unmet dependencies.
you can run into other problems if you do a cross-package install (such as grabbing a deb file, using a program like alien, to convert it to a rpm). you have a higher chance of running into the above problems such as the ones mentioned above using an "alien" package, than another distro's of the same package type.
it is one of the greatest annoyances in linux, all the different package types. it is one of the driving forces behind a unified package system, that all distro's can use, which would prevent problems such as this in the future. it would also cut down on the redundancy of a lot of repo's, cause if this happened, ubuntu would be able to use fedora repo's and fedora could use suse repo's, etc and so on...
now a unified package system, would only benefit the distro's that choose to adopt it, any distro that decided to keep their package system or create a new one, would suffer the above mentioned problems. as some distro maintainers would more than likely fight to the death to adopt such a "unified" system, as for whatever reason they would feel like it was stealing their "identity", cause most believe the package system is mainly what sets the difference between the competing distro's.
i personally wouldn't care what package synaptic/apt-get uses, as long as synaptic/apt-get would function more or less the same way. oh well
if anyone reading this believes i've stated the inherent problems incorrectly, please correct me as i wouldn't want to be spreading "bad" information unintentionally Edited by Transhour - 3/13/11 at 8:48am