martes, 15 de abril de 2008

YUM: Transition of dependencies

A goal of apt and problem that has to overcome Yum is more efficiency in dependancy analysis and manage it according to the situation, for example , I can install a package called "A" that depend of other called "B" and "C" is duty of Yum install B and C (B <-A-> C), then if I want to install other package called "D" and this depends only of B Yum will install only D (D<->B) because B just was installed by A, Just here no problem, neverthless I want via Yum _only_ uninstall "A", this will remove B, C and D but "D" not have some inherency in A, so why Yum uninstall B and D? Yum should simply uninstall A and C and let B and D.

For example 'yum remove alsa-lib' remove Gnome, graphical and X Window system, I know that alsa-lib is a base package but I cannot have Gnome and not have alsa?(Obviously with 'rpm -e --nodeps' could do but it's not the case), other example is 'yum remove NetworkManager' it remove everything that depend on '' library or 'NetworkManager-glib' package as system-config-printer, PackageKit, pidgin, etc. maybe it's necessary to granulate a bit more the packages then yum should to be more efficient.

2 comentarios:

Kevin Kofler dijo...

Unfortunately, it is not possible. Lots of software in Fedora is linked against the ALSA and NM libraries, so if you remove those libraries, the software will no longer run. In some cases, it may be possible to compile the software without those libraries, but this is a compile-time decision.

Splitting the package into subpackages is only possible if the application uses a plugin architecture. In many cases, however, the library is linked directly into the application, not a plugin, so such a split is not possible.

Wilmer Jaramillo M. dijo...

In this case the correct is uninstall via yum all NM except NM-glib library, in the case of Alsa package should split it in alsa-base(server, binary, drivers), alsa-doc(documentation), alsa-libs(*.so, *.la files).