[CentOS] Perl Libraries

Sun Feb 12 00:22:01 UTC 2012
Rob Kampen <rkampen at kampensonline.com>

On 02/12/2012 01:05 PM, Ljubomir Ljubojevic wrote:
> On 02/12/2012 12:52 AM, Rob Kampen wrote:
>> On 02/12/2012 12:43 PM, Rob Kampen wrote:
>>> On 02/12/2012 10:15 AM, Nicolas Thierry-Mieg wrote:
>>>> Rob Kampen wrote:
>>>>> I am trying to install some perl libs and find the ones from CentOS
>>>>> mirrors are correctly loading the x86_64 versions, but the rpmforge ones
>>>>> are only i386 or i686 ones - any reason why??
>>>> did you check the rpmforge.repo configuration?
>>> yeah, seems identical to another x86_64 server that is working just fine.
>>> The server with the problem is a rebuild and used to be a i386.
>>> Thus there is history on the system that is i386 - but the OS, rpm, yum,
>>> apache, php etc are all x86_64 and as mentioned, there is no problem
>>> pulling files from the CentOS repos - I did need to change
>>> /etc/rpm/platform to get these working and wondered if rpmforge has a
>>> similar place it goes to, to determine the arch??
>> Okay - it seems the centos mirrorlist repos use $basearch which comes
>> from the /etc/rpm/platform file and rpmforge uses $arch which comes from??
> http://unix.stackexchange.com/questions/19701/yum-how-can-i-view-variables-like-releasever-basearch-yum0:
>
> $arch This will be replaced with your architecture as listed by
> os.uname()[4] in Python.
>
> $basearch This will be replaced with your base architecture in yum. For
> example, if your $arch is i686 your $basearch will be i386.
>
> http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Using_Yum_Variables.html
>
Checked these out already.
On the server that works the following
python -c 'import yum, pprint; yb = yum.YumBase(); 
pprint.pprint(yb.conf.yumvar, width=1)'

gives:
{'arch': 'ia32e',
  'basearch': 'x86_64',
  'releasever': '5',
  'uuid': 'caeb5748-6334-46bf-bb26-34023a4af23c\n'}

while on the one that is not working:
{'arch': 'x86_64',
  'basearch': 'x86_64',
  'releasever': '5'}

thus this is probably why my rpmforge repo file which has :
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
and thus gets
http://apt.sw.be/redhat/el5/en/$ARCH/rpmforge
http://ftp-stud.fht-esslingen.de/dag/redhat/el5/en/$ARCH/rpmforge
http://fr2.rpmfind.net/linux/dag/redhat/el5/en/$ARCH/rpmforge
back from the url - note $ARCH.

Thus my question is what provides the $arch and where is it set? - I can 
find out what it is returning, but not why.
As mentioned, I had to alter /etc/rpm/platform manually to get rpm and 
yum working correctly post upgrade from i386 to x86_64.

There must be some other file. Note uname -a give the same result on 
both machines.