Product SiteDocumentation Site

1.252.  yum

1.252.1.  RHBA-2009:1142: bug fix update


This update has already been released (prior to the GA of this release) as errata RHBA-2009:1142
An updated yum package that resolves an issue with RHN Snapshot Rollback is now available.
Yum is a utility that can check for or automatically download and install updated RPM packages. Dependencies are obtained and downloaded automatically prompting the user as necessary.
This updated yum package fixes the following bug:
  • attempting to roll back a system to a previous configuration by selecting the "Rollback to Snapshot" function on the RHN System Details page could cause the removal of packages which should have been downgraded instead. With this updated package, this situation is now handled gracefully, and packages are correctly downgraded in accordance with the rollback package manifest. (BZ#503944)
All users of yum and Red Hat Network are advised to upgrade to this updated package, which resolves this issue.

1.252.2. RHBA-2009:1419: bug fix update

An updated yum package that fixes various bugs, adds a number of features and contains optimizations is now available.
Yum is a utility that can check for or automatically download and install updated RPM packages. Dependencies are obtained and downloaded automatically prompting the user as necessary.
  • Several typos in yum manual pages have been corrected. (BZ#447588, BZ#510012)
  • Yum now includes support for X.509 authentication at both the server and client end. This allows users of yum with custom respositories to implement this increased layer of security. (BZ#462915)
  • The rebased code in this version of yum handles the removal of .sqlite files differently from older versions. Previously, yum could crash while completing a transaction if it were still cleaning up the .sqlite file from a previous transaction. This crash cannot happen in the current version of yum. (BZ#470274)
  • Previously, yum did not create a pkgSack object for a transaction if the transaction included both a removal and an installation of the same package. As a result, the transaction would fail with the message Error: Transaction Check Error: package package_name is already installed. Now, yum creates a pkgSack object for the transaction, removes the package, and reinstalls it. (BZ#471207)
  • Previously, due to the constraints of a default terminal screen with a width of 80 characters, the yum repolist command would truncate the results of both the repo id and repo name columns. Because the beginnings of many channel ids and and names are identical, the truncation could make it impossible to identify specific channels. Yum now displays the repo id column in its entirety, although the repo name column is even further truncated. However, with at least one of these columns displayed in full, it is now possible to positively identify specific channels. (BZ#471598)
  • Previously, yum assumed that any terminal was 80 characters in width. Therefore, when it drew a progress bar on the screen, each additional # printed would force a new line on terminals narrower than 80 characters. Yum now determines the actual width of the terminal rather than assuming the width, and draws its progress bars accordingly. (BZ#474822)
  • Previously, when in quiet mode, yum would not print details of the transaction, only the prompt Is this ok [y/N]. Under certain circumstances, messages from plugins (such as the RHN plugin) might appear directly above the prompt in quiet mode and make it appear as if the prompt were related to the message from the plugin rather than to the transaction. Yum now now always prints details of the transaction -- even in quiet mode -- so that it is always obvious to what the prompt is referring. (BZ#474826)
  • Because yum does not lock rpmdb, other applications can make changes to the package database at the same time that yum does. Previously, changes made to rpmdb by another application could cause yum to crash; for example, if an application removed data about a package and yum then attempted to retrieve this data. Now, if yum discovers data that is needs to complete a transaction is missing from the rpmdb, yum will exit safely and avoid crashing. (BZ#476195)
  • Previously, if a plugin modified a yum transaction with a postresolve hook, yum would ignore problems created by the original transaction. If the original transaction included conflicting packages, yum would be unable to resolve the conflict and the transaction would fail. Now yum does not ignore problems created by the original transaction in situations where the transaction is modified by a plugin and is able to resolve conflicts as it normally would. (BZ#481164)
  • Previously, when used with the --disablerepo='*' option, or when available repos had no packages in them, the yum install '*' command produced a long warning that listed every package already on the system as being installed and not available. This warning was nonsensical and misleading because it implied that every package already on the system was available in a repository that yum could access. The code that produced this warning has been removed from yum. Now when yum install '*' is used under circumstances where no packages are available in any repository, yum does not produce this warning, but simply reports Nothing to do. (BZ#482812)
  • Previously, one of the tests that yum performed during a transaction produced erroneous results when rolling back a package on a managed system to an earlier version. The result of this test was that yum would remove the package altogether rather than roll it back. Since the test was redundant, it has been removed from yum, with the result that yum now rolls back packages on managed systems correctly. (BZ#489256)
  • Current versions of yum include code for old yum utilities. The continued availability of the old utilities allows developers to ensure backward compatibility of yum features with the versions of yum shipped with earlier versions of Red Hat Enterprise Linux. A number of errors in this code have been corrected, ensuring that tests against these old utilities remain valid. (BZ#491077)
  • Because every rpm package should have a %description field, yum info did not allow for packages where this field might be empty. When yum info encountered such a package, it would crash. Yum info now allows for empty %description fields in packages and will not crash when it encounters an empty field. (BZ#491406)
  • Previously, when an old version of a package accidentally provided a capability, yum might still have picked newer versions of that package to provide that capability, even if the newer vesions did not provide the capability. As a result, yum could assume that a dependency was met, even when it was not. Yum now tests dependencies more carefully, preventing this situation from occurring and ensuring that dependencies are properly met. (BZ#498635)
  • When yum installed local packages, it defaulted to expecting SHA-256 checksums. Because packages for Red Hat Enterprise Linux 5 use MD5 checksums, the installation would fail with a bad checksum type error. Now, when yum encounters a bad SHA-256 checksum, it attempts to verify the package with a SHA-1 checksum instead, which will sucessfully verify the MD5 checksums used for Red Hat Enterprise Linux 5 packages. (BZ#500697)
  • Previously, when a user attempted a yum update for a package that was not installed, yum would exit with the message No Packages marked for Update, whether the package were available or not. Although true, this message did not alert the user that such a package was available for installation. Now, if the package is available but not installed, yum notifies the user of this fact. (BZ#507326)
  • The Linux environment variable LC_CTYPE specifies a character set and the variable LC_MESSAGES specifies a language for messages. Previously, yum selected a language for messages based on LC_CTYPE instead of LC_MESSAGES. Although on many configurations, LC_CTYPE and LC_MESSAGES will be set to the same language and character encoding, this is not necessarily the case, and by using the wrong environment variable, yum would not provide the expected output under configurations where LC_CTYPE and LC_MESSAGES were set differently. Yum now uses LC_MESSAGES to determine the language to provide messages in, resulting in consistent and expected behavior. (BZ#507357)
  • Due to a logic error in the code, yum ignored the --color=never option on the command line and color=never option in yum.conf. Yum output was therefore always in color, regardless of user preferences. With the error corrected, users can now use yum in monochrome. (BZ#507883)
  • Under certain, unusual circumstances, yum could encounter an infinite recursion while executing the package-cleanup --dupes command. Yum would crash and the recursion would eventually terminate with the error maximum recursion depth exceeded while calling a Python object. The code that populates the package sacks is now modified so that this recursion cannot take place, therefore avoiding the crash. (BZ#507885)
  • The method that yum uses to import the names of modules previously omitted the to_str parameter. Therefore, when loading the yum-filter-data plugin, yum crashed. With to_str now specified in the code, yum can import the module name and does not crash when it loads the plugin. (BZ#508051)
  • Previously, the code used by yum to allow users to set repo directory attributes contained several flaws. As a result, attempts to set the download directory with the --downloaddir option resulted in a crash. The code used to set directory attributes is now substantially rewritten and now allows the --downloaddir option to work correctly. (BZ#508055)
  • While populating the package sack, yum did not account for the possibility repos had been added where none existed before. Therefore, if the repos were not specified in the original configuration, and repos were subsequently added, yum would not add to the package sack the first time that it tried to use the new repos. This situation could lead to problems during installation or the creation of live CDs. Yum now re-initializes the package sack when a repo is added if no repo was previously specified. (BZ#508659)
  • A recent version of yum was substantially slower than previous versions when calculating cost excludes. The slowdown was caused by variable that expanded to unicode encoding rather than str. The calculation no longer uses unicode, which returns yum to its previous higher speed. (BZ#500000)
  • Some recent combinations of versions of yum and rpm produced conditions under which it was possible that yum would fail to recognize when rpm failed to install a package. Despite the failure, yum would report that the package had been updated. The rebase of yum to version 3.2.22 allows yum to detect rpm failures more reliably. (BZ#282951)

Note: This documentation is provided {and copyrighted} by Red Hat®, Inc. and is released via the Open Publication License. The copyright holder has added the further requirement that Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. The CentOS project redistributes these original works (in their unmodified form) as a reference for CentOS-5 because CentOS-5 is built from publicly available, open source SRPMS. The documentation is unmodified to be compliant with upstream distribution policy. Neither CentOS-5 nor the CentOS Project are in any way affiliated with or sponsored by Red Hat®, Inc.