| Summary: | [RFE] Add show-changed-rco command to yum-utils | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | John W. Lockhart <lockhart> | ||||||
| Component: | yum-utils | Assignee: | James Antill <james.antill> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | BaseOS QE Security Team <qe-baseos-security> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 6.2 | CC: | ksrot, zpavlas | ||||||
| Target Milestone: | rc | Keywords: | FutureFeature | ||||||
| Target Release: | --- | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Enhancement | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2012-06-20 13:54:08 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 750638 | ||||||||
| Attachments: |
|
||||||||
|
Description
John W. Lockhart
2011-03-14 20:02:16 UTC
So there are a couple of solutions that might be closer to what you want: yum list extras show-installed (from 6.1 yum-utils) ...the former lists anything that is installed but isn't available from the active repos. ... this tends to be somewhat less useful for Fedora, but is perfect for RHEL. The later prints a warning of "packages that are installed, but don't have any version available". You can also use (using the 6.1 yum-utils) repoquery with --tree-requires, --tree-whatrequires and --installed (or not). I'm not 100% against changing "deplist" to do something it doesn't atm. ... but it really sounds like you are trying to solve a different problem, and "deplist" is the closest solution. So if none of the above is really what you want, could you explain what you are doing and the information you most want to know? One idea here is to be able to identify modified dependent packages that might be affecting the primary package's behavior. I agree, 'deplist' might not be the best place for it, but it's a feature that I've been using to try to start gathering that type of info. I'll see if some of the other approaches might work, too. so it sounds like you want a script that does this
depsverify.py /path/to/some/file
/path/to/some/file is owned by pkgfoo
pkgfoo has no changes from pristine:
pkgfoo requires the following items:
foolib provided by installed pkg foolib-1.1-1.noarch - pristine
fooconf provided by installed pkg fooconf-1.1-1.noarch - modified
libc.so.6 provided by intalled pkg glibc-2.2.2-1.i686 - pristine
etc, etc, etc
is that about right?
Created attachment 485540 [details]
First attempt at "depcheck" script
I've tested this a little bit, and I think it might provide the info. you want. Let me know of any changes you want.
Eg.
% sudo ./depcheck.py xemacs
Loaded plugins: auto-update-debuginfo, versionlock
Package : xemacs-21.5.29-15.fc13.x86_64 updates
Installed: xemacs-21.5.29-14.fc13.x86_64 @updates
New-Reqs :
chkconfig
chkconfig-1.3.45-1.fc13.x86_64 @anaconda-InstallationRepo-201005130101.x86_64
desktop-file-utils
desktop-file-utils-0.16-1.fc13.x86_64 @anaconda-InstallationRepo-201005130101.x86_64
gtk2
gtk2-2.20.1-1.fc13.i686 @fedora
gtk2-2.20.1-1.fc13.x86_64 @anaconda-InstallationRepo-201005130101.x86_64
Mod-Reqs :
xemacs-common = 21.5.29-15.fc13
xemacs-common-21.5.29-15.fc13.x86_64 updates
Dep-Repos:
Installed: 4
@anaconda-InstallationRepo-201005130101.x86_64: 3
@fedora: 1
Available: 1
updates: 1
...which says that installing the above needs 1 non-installed package from the updates repo.
Created attachment 485576 [details]
Minor tweaks, hopefully a good name now
Change name of script, and add conflicts/obsoletes as well as requires.
Ping john? Initial impression is that this is good info, although I'm still trying to familiarize myself with the format/output. I had a bit of trouble parsing it for unsatisfied deps and Stuff That Will Be Trouble. I can come up with some examples of that with pre-released software that has dep issues which require fixing before they're released. And... presumably this is RHEL-6 only? It dies on 5.3.LL at yb.preconf.releasever = opts.releasever (Discovered because I didn't check to see which test machine I was on before re-trying the script. :) Since RHEL 6.1 External Beta has begun, and this bug remains unresolved, it has been rejected as it is not proposed as an exception or blocker. It has been moved to RHEL 6.2 since it is a FutureFeature request. Hi James, could you please briefly summarize the functionality of the new command? Thank you. DESCRIPTION
show-changed-rco gives a compact description of the changes to a pack‐
ages Requires, Conflicts and Obsoletes data from the installed (or old)
to a specified rpm file.
% show-changed-rco zsh
Loaded plugins: auto-update-debuginfo, priorities, versionlock
New-Package: zsh-4.3.15-1.fc15.x86_64 updates
Old-Package: zsh-4.3.11-2.fc15.x86_64 @fedora
New-Requires:
libc.so.6(GLIBC_2.14)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
glibc-2.14-5.x86_64 @updates
Dep-Requires-Repos:
Installed: 3
@updates: 3
Dep-Repos:
Installed: 3
@updates: 3
There is no show-changed-rco command in yum-utils-1.1.30-11.el6.noarch, although there is a man page for it. See the wrong page header and command name.
# man show-changed-rco | head -n 20
show-installed(1) show-installed(1)
NAME
show-changed--rco
SYNOPSIS
show-changed--rco [options]
DESCRIPTION
show-changed--rco gives a compact description of the changes to a pack-
ages Requires, Conflicts and Obsoletes data from the installed (or old)
to a specified rpm file.
OPTIONS
-h, show this help message and exit
-C, --cache
Tells repoquery to run entirely from YUM cache - does not
# rpm -ql yum-utils | grep bin
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repo-rss
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/show-installed
/usr/bin/verifytree
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
/usr/sbin/yum-complete-transaction
/usr/sbin/yumdb
How to use the --repofrompath option? Manpage says: --repofrompath=<repoid>,<path/url> Specify a path or url to a repository (same path as in a baseurl) to add to the repositories for this query. This option can be used multiple times. If you want to view only the pkgs from this repository combine this with --repoid. The repoid for the repository is specified by <repoid>. but it doesn't seem to work: # rpm -q test-pkg-aaa test-pkg-aaa-1.0-1.x86_64 # ls /tmp/repo repodata test-pkg-aaa-2.0-1.x86_64.rpm # show-changed-rco --repofrompath=myrepo,/tmp/repo --repoid=myrepo test-pkg-aaa Loaded plugins: product-id, refresh-packagekit, rhnplugin Repoid myrepo was not found. Did I miss something? Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2012-0858.html |