I ran into an interesting error while trying to find out, which repository one of my installed packages came from. Before we proceed, let me explain that I had need to use the "repoquery" utility which is part of the "yum-utils" package. I proceeded to install this one as I did not yet have it. The installation worked perfectly well and did not install any dependencies.
# yum install yum-utils -y
Using the repoquery command, I attempted to query which repo my php53 package came from:
$ repoquery -i php53
Instead of getting the information I wanted, the script crashed with the following error:
File "/usr/bin/repoquery", line 38, in
from yum.i18n import to_unicode
cannot import name to_unicode
Googling around, many blog posts and site talked about the yum installation being broken. That may well be, but I decided to see if maybe there was something a bit simpler at play here. First I needed to find out which yum packages are already installed on this system:
# rpm -qa | grep -i yum
yum-fastestmirror-1.1.16-16.el5.centos
yum-3.2.22-37.el5.centos
yum-updatesd-0.9-2.el5
yum-utils-1.1.16-16.el5.centos
yum-metadata-parser-1.1.2-2.el5
NOTE: The listed version numbers do not reflect the original numbers I had on my system. I went ahead and attempted to update all of the above listed packages:
# yum update yum yum-fastestmirror yum-updatesd yum-metadata-parser
Yum only found that yum and yum-fastestmirror needed to be updated. I proceeded with the update.
After the update, the repoquery command started working perfectly well. However, a completely unrelated problem occurred which I will discuss very briefly.
# repoquery -i php53
Instead of getting a nice listing of information from the RPM database, I received an error message saying the database was corrupted. The next step then was to rebuild the dabase.
The database files are located in "/var/lib/rpm" and are named __db.001 __db.002 etc... etc...
Delete those files:
# rm -f /var/lib/rpm/__db*
Rebuild the database:
# rpm -vv --rebuilddb
Once completed, I tried the repoquery command once again:
# repoquery -i php53
Name : php53
Version : 5.3.3
Release : 1.el5_7.6
Architecture: x86_64
Size : 3591477
Packager : None
Group : Development/Languages
URL : http://www.php.net/
Repository : updates
Summary : PHP scripting language for creating dynamic web sites
Description :
PHP is an HTML-embedded scripting language. PHP attempts to make it
easy for developers to write dynamically generated webpages. PHP also
offers built-in database integration for several commercial and
non-commercial database management systems, so writing a
database-enabled webpage with PHP is fairly simple. The most common
use of PHP coding is probably as a replacement for CGI scripts.
The php package contains the module which adds support for the PHP
language to Apache HTTP Server.