Recently we got a new server for apestaart, our little hosting project between friends.
This time we decided to install CentOS, since people I trust have been saying good things about it, we use RHEL at work and it’s pretty much the same, and Wiebe, the other admin, also was all for it.
This week I ran into a segfault and I wanted to debug it. Turns out CentOS ships without any debug repositories installed by default. Fedora installs the files, but cleverly disables them, as they should. But yumutils contains debuginfo-install, a handy script that allows you to install all the dependencies of a -debuginfo package, and gdb spits out useful commands like what packages to install when you’re looking at a stack trace with missing symbols.
So, this doesn’t work out of the box on CentOS. Fail #1.
I went on IRC, mentioned this there, and I was told that ‘most CentOS users don’t need debuginfo packages’. Fail #2 – neither do Fedora users, yet somehow Fedora managed to figure out how to work both for the ones that don’t need them and the ones that do. So goodbye unhelpful IRC channel.
I had to manually create a .repo file based on some guy’s post complaining about the same thing; something much like this:
[root@betsy ~]# cat /etc/yum.repos.d/debuggery.repo
name=CentOS-$releasever - DebugInfo
Then I actually tried to do debuginfo-install python, and what happened ?
First of all, the python-debuginfo package for the installed version of python isn’t even in that repo (though 3 others are, go figure). FAIL #3
Of the other packages that it did find, one was unsigned:
yum.Errors.YumBaseError: Package libtermcap-debuginfo-2.0.8-46.1.x86_64.rpm is not signed
CentOS, hostile to developers. Back to old-school 90’s style rpm hunting and pecking on the web.
As for the python debuginfo package, there is a RHEL5 package with exactly the right version and release tag, but that one was built for RHEL5, and installing it mismatches against the CRC of the installed python package. CentOS simply does not provide the debuginfo package for its shipped version of python. FAIL #5