Subject: | |
From: | |
Reply To: | |
Date: | Mon, 22 Nov 2004 10:41:15 +0100 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Hi all,
after many tries, I finally manage to install the all set
of i386 libs over a 64 bits SL 3.0x only using the 'rpm'
tool.
See after if you are interested by the way we manage
to perform that.
My problem is that I tried some performance tests
on that machines. On the same machine (a dual-opteron
with 2GB from sun) I have some installed in 32 bits
and a test one installed in 64+32 bits.
And 32 bits programs are slower on the 64+32 than
on a "native" 32 bits installation.
As opterons are not supposed to be slower when
executing 32 bits code, I can't find the reason of that
performance problem... In addition with a 64 bits
system we should hope that some system-related
operation (memory management...) would be faster,
even for 32 bits programs.
The performance factor is 1.15 slower on a 32+64
regards to a pure 32.
Anyone has an idea of the reason ?
Anyone has an idea of a way to obtain at least a
identical performance ?
-> installing 32 bits over 64 bits:
The "magic" way to do it is to use the option
'--excludepath=XXX' many times. I used a set of
'excludepath' in order to prevent installation on each
directory that is not supposed to get libraries (it
would have been easier if a '--onlypath=XX' had
existed).
So the way to install the i386 libs over an installed
64 bits SL is:
- install the glibc-32bits...x86_64 RPM if not present
- build the list of all the installed x86_64 RPMs
- remove from this list the kernel related packages
- remove glibc packages (treated by glibc-32bits)
- remove module-related packages (i.e. i386 version
of openAFS kernel is not needed at all!)
- remove all RPMs that cannot be found in the i386
repository (some are missing, some have a different
version number)
- remove all RPMs that are 'noarch' (not needed)
- add the i386 specific RPMs (if any) to the list. In
my case I added the compat-*.i386.rpm to the list.
- install the full set of RPMs with the command
rpm -i $ORPM `cat the_complete_list_of_rpms.lst`
where ORPM is the following set of options:
ORPM="--excludedocs --excludepath=/sbin --excludepath=/bin \
--excludepath=/usr/bin --excludepath=/usr/sbin \
--excludepath=/usr/local --excludepath=/usr/share \
--excludepath=/usr/lib/gconv --excludepath=/usr/X11R6/lib/X11/fonts/ \
--excludepath=/usr/include --excludepath=/etc --excludepath=/boot \
--excludepath=/opt --excludepath=/opt \
--excludepath=/var --excludepath=/lib/kbd/ --excludepath=/usr/lib/rpm \
--excludepath=/usr/kerberos/bin \
--excludepath=/usr/X11R6/lib/X11/locale/common \
--excludepath=/usr/kerberos/include"
These 'excludepath' were defined "by the hand", by removing pathes
that contain conflicting files. You may have to add new ones if
your RPM set is different.
|
|
|