portage vs yum
kevin.kofler at chello.at
Wed Jun 27 15:07:25 UTC 2007
Thufir <hawat.thufir <at> gmail.com> writes:
> The drawback to fedora is, to my mind, rpm and yum. portage is
> superior. it's also capable, as sabayon has demonstrated, of
> distributing binaries.
* parasites upstream projects for tarball downloads by default. Aside from the
security concerns which have been raised elsewhere in this thread, this also:
- steals bandwidth from upstream projects,
- makes the user dependent on the upstream project's server being up (for every
single upstream project) and still carrying the file they want (which isn't
always the case, many upstream projects delete old versions, they don't have
infinite webspace nor do they want people to download old buggy versions).
So this really doesn't scale. It also doesn't comply with the GPL when
distributing binaries. SRPMs carry the full source code.
* rebuilds everything on the user's machine, so users can get completely
different binaries depending on what version of GCC and glibc they happen to
have installed when they build it, or even depending on what libraries are
autodetected by the configure scripts. Some see this as a feature, but it makes
handling bug reports a nightmare.
* has only limited support for uninstalling. The biggest problem is that
there's no reverse-dependency tracking, you can unmerge a library and it will
not know there are still programs depending on it which will be broken by the
unmerge. This can be particularly bad on upgrades: when you upgrade a library
to an incompatible version (new soname), it will just do it even when there are
still packages depending on the old version, breaking those packages. And no,
rebuilding everything (i.e. emerge remerge world) isn't really an efficient
solution to this problem.
Other source-based packaging systems, e.g. *BSD ports, share the same
RPMs do allow you to build from source, that's what specfiles and SRPMs are
for. Writing your own specfile is not fundamentally different from writing your
own portage recipe. Or you can always build from source into /usr/local;
unpackaged packages (i.e. packages without a specfile or portage recipe) are
also handled essentially the same way in both worlds.
More information about the devel