From: "Hedayat Vatankhah" <hedayat.fwd@gmail.com>
To: "Development discussions related to Fedora" <devel@lists.fedoraproject.org>
Sent: Monday, January 5, 2015 7:50:27 PM
Subject: Re: Yet another frustration with Fedora package management

 



Radek Holy <rholy@redhat.com> wrote on Mon, 5 Jan 2015 03:03:30 -0500 (EST):

From: "Hedayat Vatankhah" <hedayat.fwd@gmail.com>
To: "Development discussions related to Fedora" <devel@lists.fedoraproject.org>
Sent: Saturday, January 3, 2015 9:42:01 PM
Subject: Yet another frustration with Fedora package management

Hi!
Summary: Try to prevent a package from being updated/installed from repositories regardless of the package management tool you use. As it seems, then only way you can do this is to exclude it from the repositories themselves inside their configuration file in /etc/yum.repos.d/, because these are the only common settings between all three (yum/dnf/PackageKit). TBH, I'm not sure about PackageKit, but I feel that it don't read /etc/dnf/dnf.conf as it doesn't use DNF but its backends. This is fine if the package is in a single known repository, but what if it is in 3 repositories that you might not be aware of all of them?

More details:
As you might already know, nvidia drivers in RPMFusion F21 repositories doesn't work for all nvidia cards. In one system, I finally installed akmod-nvidia from RPMFusion F20 repositories which worked fine. Soon after I realized that I should exclude akmod-nvidia and dependencies from F21 repositories. I added "exclude=*nvidia*" to /etc/yum.conf as I was lazy to check which repository these packages come from. But then I noticed that dnf doesn't consider it excluded. Then I thought that probably PackageKit doesn't use dnf.conf too. So, how should I excluded these packages? Well, these were in rpmfusion-nonfree-updates repository, so I added the exclude directive there. Then I found that I should add it to rpmfusion-nonfree repository too. However, since I use yum-plugin-local I also have a local repository (I actually copied the repository from another system, so it was enabled on this system so that I could install software from it) which also included these packages. Therefore, I should exclude "*nvidia*" in 3 repository configuration files to make sure (hopefully!) that these will not be installed by any package manager I know.

Suggestion: Please add a single configuration file to configure common package manager options (Specially between DNF and PackageKit, which are there to stay). As I mentioned in "F21 downloads repository metadata in 3 places!" thread, Fedora package management should be consistent and integrated; and the current situation is really frustrating. If I want to exclude some packages, I should be able to do it once for all. If I want to disable automatic download of metadata/packages, there should be a single place where I can define my desired package management policy. If I want to specify default metadata_expire timeout for all repositories, there should be one place to do it. There really should be a single package management policy that must be respected by every package manager in Fedora, specially the main ones: DNF and PackageKit (and currently Yum).
Hi, I understand the frustration. On the other hand, I personally hate anything that is centralized. Just an idea: what about a simple modular tool (maybe installed by default) which would be able to set options like this at all the places? Potentially it could be able to synchronize a subset of settings between given programs.
While I prefer the centralized approach (and also consider your approach still a centralized one), but whatever works is fine with me.
Yes, it's also kind of centralized :-) However this tool does not necessarily have to be the only tool that can do this task. That's why I consider it the best (aka the least centralized) solution *I* can think of.

Anyway, is there a similar problem in a different area that was already solved in Fedora somehow?
--
Radek HolĂ˝
Associate Software Engineer
Software Management Team
Red Hat Czech