Apache install in a newly created CentOS xen server fails

I have a cloudmin environment setup with three servers. Cloudmin is installed on one server with CentOS 5.3 64bit and the host servers are on two other CentOS 5.3 64bit servers. I've tried to create a xen server both with CentOS 5.3 32bit and CentOS 5.3 64bit guest os. In both instances when trying to install Apache in the guest os either from the command line or from within Webmin I get install failures.

I was able to install MySQL on these servers using Webmin. I was also able to install Virtualmin Pro on a Xen host with CentOS 5.3 64bit. Once Virtualmin Pro was installed I was able to create virtual server and have Apache work.

I am know some customers are going to want to install a bare OS and yum install packages themselves so that is why I need to figure out why Apache will not install.

Status: 
Closed (fixed)

Comments

Sounds like a bug in the installer. What error message did you get when it tried to install Apache though?

Here is what I get when trying to install from within Webmin on a brand new xen vm with CentOs 5.3 64bit installed.

Installing package(s) with command yum -y install httpd ..

Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.versaweb.com
 * updates: mirror.5ninesolutions.com
 * addons: mirrors.usc.edu
 * extras: mirror.5ninesolutions.com
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.3-22.el5.centos.2 set to be updated
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 229, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 145, in main
    (result, resultmsgs) = base.buildTransaction() 
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 647, in buildTransaction
    (rescode, restring) = self.resolveDeps()
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 696, in resolveDeps
    CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 779, in _resolveRequires
    thisneeds = self._checkInstall(txmbr)
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 851, in _checkInstall
    provs = self.tsInfo.getProvides(*req)
  File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 432, in getProvides
    result.update(self.getNewProvides(name, flag, version))
  File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 414, in getNewProvides
    for pkg, hits in self.pkgSack.getProvides(name, flag, version).iteritems():
  File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 300, in getProvides
    return self._computeAggregateDictResult("getProvides", name, flags, version)
  File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 470, in _computeAggregateDictResult
    sackResult = apply(method, args)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 861, in getProvides
    return self._search("provides", name, flags, version)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 43, in newFunc
    return func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 837, in _search
    for pkg in self.searchFiles(name, strict=True):
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 43, in newFunc
    return func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 586, in searchFiles
    self._sql_pkgKey2po(rep, cur, pkgs)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 470, in _sql_pkgKey2po
    pkg = self._packageByKey(repo, ob['pkgKey'])
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 413, in _packageByKey
    po = self.pc(repo, cur.fetchone())
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 68, in __init__
    self._read_db_obj(db_obj)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 94, in _read_db_obj
    setattr(self, item, _share_data(db_obj[item]))
TypeError: unsubscriptable object
.. install failed!

And here is what I get when trying to install Apache from the command line:

-bash-3.2# yum install httpd httpd-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.versaweb.com
 * updates: mirror.5ninesolutions.com
 * addons: mirrors.usc.edu
 * extras: mirror.5ninesolutions.com
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.3-22.el5.centos.2 set to be updated
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 229, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 145, in main
    (result, resultmsgs) = base.buildTransaction() 
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 647, in buildTransaction
    (rescode, restring) = self.resolveDeps()
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 696, in resolveDeps
    CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 779, in _resolveRequires
    thisneeds = self._checkInstall(txmbr)
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 851, in _checkInstall
    provs = self.tsInfo.getProvides(*req)
  File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 432, in getProvides
    result.update(self.getNewProvides(name, flag, version))
  File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 414, in getNewProvides
    for pkg, hits in self.pkgSack.getProvides(name, flag, version).iteritems():
  File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 300, in getProvides
    return self._computeAggregateDictResult("getProvides", name, flags, version)
  File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 470, in _computeAggregateDictResult
    sackResult = apply(method, args)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 861, in getProvides
    return self._search("provides", name, flags, version)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 43, in newFunc
    return func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 837, in _search
    for pkg in self.searchFiles(name, strict=True):
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 43, in newFunc
    return func(*args, **kwargs)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 586, in searchFiles
    self._sql_pkgKey2po(rep, cur, pkgs)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 470, in _sql_pkgKey2po
    pkg = self._packageByKey(repo, ob['pkgKey'])
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 413, in _packageByKey
    po = self.pc(repo, cur.fetchone())
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 68, in __init__
    self._read_db_obj(db_obj)
  File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 94, in _read_db_obj
    setattr(self, item, _share_data(db_obj[item]))
TypeError: unsubscriptable object

I've seen this sometimes when the yum cache is out of date or corrupt. Does it help if you run yum clean all first ?

Yes, that did it. Thank you. So now I'm off to see if I can set that up as a post create command so the users wont have to do it.

Thanks again.

Cool .. I will add a yum clean all to the install script as well, to ensure a consistent state for yum.

Jamie,

That would be great. Let me know when you get that in there. As it is, I was about to spawn off instances of the CentOS images and do a yum clean all in them and then re-image them to have a starting OS for the customers that would be clean. If you are going to get that command in there in the next week or so then I don't have to create the images and can just wait.

-Peter

I've added this to the install scripts already, which Cloudmin will download when it installs Virtualmin..

Automatically closed -- issue fixed for 2 weeks with no activity.