For RHEL and its derived distribution, installing software packages using rpm or yum is sometimes convenient, painless and time saving. However, because distribution vendors build rpms independent of software provider, there may be time delay, and even inconsistency between rpms and the original software package.
Here’s what I come across today. I installed ProFTPD from the epel repo on two servers. One is CentOS 6.0 and the other is CentOS 5.6.
#on CentOS 6.0 [curu@el6 ~]$ rpm -q proftpd proftpd-1.3.3e-1.el6.x86_64 #on CentOS 5.6 [curu@el5 ~]# rpm -q proftpd proftpd-1.3.3e-1.el5
Seems they are of the same version. However, When I copy the proftpd.conf from el6 to el5, I get this error
proftpd -t Checking syntax of configuration file - Fatal: VRootAlias: source path 'etc/security/pam_env.conf' is not an absolute path on line 11 of '/etc/proftpd.conf'
And here’s line 11 of my /etc/proftpd.conf
VRootAlias /etc/security/pam_env.conf etc/security/pam_env.conf
According to the mod_vroot document on proftpd site
VRootAlias Syntax: VRootAlias src-path dst-path
It’s obvious that my config is right, the src-path here is /etc/security/pam_env.conf, definitely absolute! But what’s wrong? Ask the source!
In order to find the cause of this inconsistency, I downloaded the source rpms of these two rpms, and finally find why. In fact, in the RPMs from EPEL, proftpd-1.3.3e-1.el5 comes with mod-vroot-0.8.5, whereas proftpd-1.3.3e-1.el6 comes with mod-vroot-0.9.2. The bad thing is, the directive syntax of VRootAlias has changed between these two version of mod_vroot.
VRootAlias Syntax: VRootAlias dst-path src-path
Damn! the change is completely nonsense and incompatible.
So, what can when draw from this story? Install software packages from prebuilt rpm is not always simple and good. If we need more configure option and consistent behavior, build from source.