On Thu, 25 Jan 2007, Jason Edgecombe wrote:
Hi,
I would like to have a unified kickstart file for both my i386 and x86_64
installs. So I have two questions:
1. Is there some way to detect whether the processor is 32/64 bit in a %pre
script?
Plenty of ways, /proc/cpuinfo for example, or uname output, or from python
you can do
import rpmUtils.arch
arch = rpmUtils.arch.getBaseArch()
which gives you i386/x86_64 (unlike uname which gives i686/x86_64) so it
can be directly used in install path. The tricky bit is to get the
anaconda to actually use the path specified from %pre, as it's actually
the loader which parses the method from the kickstart file and passes it
to anaconda with a command line option. Can be done but requires fiddling
with the boot images, or (ab)using updates.img.
2. Will the 32-bt installer install the 64bit rpms if I point it at a 64bit
install tree?
Almost certainly no. Trying to install x86_64 rpm's on x86 will fail
unless rpm(lib) is forced to ignore the arch, which is not the case at
least with FC5 and newer where anaconda is using yum, and I'd be surprised
if it did that in earlier versions either.
Even if rpm was told to ignore the arch, there are many things
that could (and most likely would) go wrong in such a scenario:
- if you run 32bit kernel on x86_64 it wont report itself as x86_64 but
i686 or athlon, this will cause various places (including anaconda
itself) with arch-specific tweaks and hacks to do wrong things
- all data created during the install (by package scripts or anaconda
directly) would have to be arch and 32 vs 64bit independent, this is
by no means obviously so
- Panu -