= Repoquery use = Repoquery is a yum-util that has an array of involved and complicated options. It is intended to be an analog to rpm -q commands but run on remote repositories. This accounts for why it is complicated and involved :) This page has a series of common/useful commands someone may want to use repoquery for. == Enabling repositories == By default repoquery acts on the repositories you have enabled in your yum configuration. You can enable/disable repos by using ''--enablerepo=repoid'' or ''--disablerepo=repoid''. Occasionally you'll just want to query a single repo, when that happens you can use ''repoquery --repoid=repoid''. Then ONLY that repository will be enabled, no matter your yum configuration. Often you may find yourself wanting to query a repo that is NOT set up in your yum configuration. Repoquery handles that case specifically with ''--repofrompath'': {{{ repoquery --repofrompath=somereponame,http://path/to/this/repo --repoid=somereponame -q -a }}} == Specifying archs == Repoquery can work on any arch but by default it uses the arches for the system it is running on. However, if you want to specify an arch for it to use you can use ''--archlist''. Some examples: Only query i686 pkgs, nothing else: {{{ repoquery -q --archlist=i686 -a }}} Query i686 and i386 pkgs: {{{ repoquery -q --archlist=i686,i386 -a }}} Look at source rpms: {{{ repoquery -q --archlist=src -a }}} == Searching for answers == If you need to figure out what in the repos requires any thing from a particular package run: {{{ repoquery -q --whatrequires --alldeps pkgname }}} (in new versions of repoquery --alldeps is the default) If you need to figure out which srpms have a buildrequirement on a particular pkgname run: {{{ repoquery --archlist=src --repoid=some_repo_with_srpms -q --whatrequires pkgname }}} Using repoquery on installed packages only: {{{ repoquery --pkgnarrow=installed -q --whatrequires --alldeps pkgname }}} That is the equivalent of: ''rpm -q --whatrequires pkgname'' List all the files owned by a package: {{{ repoquery -q -l pkgname }}} List all the packages that own a file: {{{ repoquery -q --file /usr/bin/yum }}} == Formatting output == If you need to print out a list of pkgs, their url from the repo and the repo they came from you could run: {{{ repoquery -q --qf="%{name} %{repoid} %{location}" pkg1 pkg2 pkg3 }}} == Plugins == If you need a plugin enabled to access repos then you may need to specify --plugins to each command to enable plugins in repoquery searches. This is important for rhel5 boxes since they need to use yum-rhn-plugin to access their list of repositories and metadata. == Notes == the ''-q'' option to repoquery is entirely optional. It is only there for compatibility with rpm -q so people can make good use of their muscle memory w/o cursing. == More Help == see {{{ repoquery --help }}} and {{{ man repoquery }}} for more help.