Bug 884617
Summary: | dnf update/distro-sync command line exclude option doesn't work | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jan Vcelak <jvcelak> |
Component: | dnf | Assignee: | Ales Kozumplik <akozumpl> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 18 | CC: | akozumpl, jzeleny, mls, travneff, tsmetana |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | dnf-0.2.20 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2013-04-03 14:49:39 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 871892 |
Description
Jan Vcelak
2012-12-06 12:25:40 UTC
Hi, thanks for the report. The -x option is not supported yet, but it is coming later. Hi Michael, Can you please advise me about the best way to tackle this with libsolv? In short, yum users are able to specify '-x <name or glob pattern>' with a command that excludes the named packages from the processing, i.e. yum acts as if these packages didn't exist. For instance doing: yum update -x 'python*' updates all packages with a higher version available, but not any package whose name starts with 'python'. I was thinking this could be done by finding all solvables matching the pattern and removing these from their repos with repo_free_solvable(). Is this approach viable? Hm, also just found about about pool->considered. Maybe that's the answer then? I kinda dislike disabling the packages, as it means they are not available when the solver searches for solutions. Also, you should not remove installed packages. Maybe it's enough to simply SOLVER_LOCK all the matching packages. That may not be enough for reposync mode, though, but I can make that configurable. Hm, what if I just remove the uninstalled subset of all excludes from pool->considered? That shouldn't harm the solver: it would not see them but that's allright, we don't want them considered for any operation anyway. Will look at SOLVER_LOCK too, thanks. As I said, I don't like that because the solver can't propose good solutions if the packages are removed. I know that dnf currently doesn't propose solutions, but it's something that you may want to do some day. locking packages is basically the same, it tells the solver that the packages must not change state, i.e. uninstalled packages keep being uninstalled and installed ones keep being installed. Fixed, commit 28a29b4. |