[CentOS] Perl Libraries

Sun Feb 12 00:41:39 UTC 2012
Nicolas Thierry-Mieg <Nicolas.Thierry-Mieg at imag.fr>

Rob Kampen wrote:
> 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.

you're right, I had missed the mirrorlist entry in rpmforge.repo

I don't know where that $ARCH is coming from.

/etc/rpm/platform should have
ia32e-redhat-linux

is this what you set it to?

If you can't find the solution you could always hardcode x86_64 in 
/etc/yum.repos.d/mirrors-rpmforge and make mirrorlist point to that.