How does yum work ??
sundaram at fedoraproject.org
Wed Jan 16 15:12:35 UTC 2008
Timothy Murphy wrote:
> Michael Schwendt wrote:
>> The interaction between Yum, package metadata and RPM should be fairly
>> obvious. Yum accesses local or remote repositories, which usually are
>> normal http/ftp servers that contain RPM packages plus the
>> corresponding metadata archives generated by the createrepo tool. The
>> metadata describe the available packages beyond the information
>> available in the filenames and without the need to download full
>> packages. Basically, many data from a file's RPM package header (such
>> as name, epoch, version, release, arch, excludearch and exlusivearch
>> lists, dependency details, package capabilities, virtual package
>> names, library SONAMEs, obsoletes, conflict definitions, but also
>> filelists) are copied into the metadata archives, but in a format that
>> is more convenient and faster to parse, e.g. xml or sqlite files.
>> Having learned what packages are available in the repositories, Yum
>> queries the local RPM database to examine what packages are installed
>> already. Combining the information it is able to determine what newer
>> packages are available as updates which is Yum's primary purpose.
>> Since updates can also replace other packages or require new packages
>> to be added, there's quite some time spent on processing and resolving
>> lots of package metadata. For any packages to be installed, it either
>> downloads them via the network or accesses them locally. It then uses
>> the RPM library to examine a transaction set of packages further in
>> order to find out whether there are any dependency problems or
>> conflicts before asking RPM to perform a transaction. That's only a
>> very brief coverage of what Yum does.
> That seems to me a very clear description -
> I imagine exactly what the OP wanted.
> I find yum very good.
> It would be even better, I think, if it gave a little more information
> about what it is doing, eg what repository it is visiting
> (one only learns this if the operation fails),
> what files on the computer it is writing, etc.
You can change the debug level to what you find convenient. Ex:
# yum -d3 install <foo>
Or set in /etc/yum.conf
More information about the users