我们的生产服务器正在运行 CentOS5 64 位版本。
因为目前没有适用于 SQLite 最新版本 (v3.7.3) 的 RPM,所以我使用以下方式创建了 RPMrpm构建第一次按照给出的说明这里。我能够成功为 64 位 (x86_64) 架构创建 RPM。但无法为 32 位 (i386) 架构创建 RPM。失败并出现以下错误:
...
...
...
+ ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=i386-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --enable-threadsafe
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for x86_64-redhat-linux-gnu-gcc... no
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
error: Bad exit status from /var/tmp/rpm-tmp.73141 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.73141 (%build)
这是我调用的命令:rpmbuild --target i386 -ba sqlite.spec
我的问题是,如何从 64 位 arch 服务器为 32 位 arch 创建 RPM?
答案1
mock -r fedora-14-i386 --rebuild foo.srpm
答案2
mock
当您告诉它使用 32 位根时,它将在 x86-64 系统上执行 x86 构建。
答案3
安装缺少的 32 位库:
$ sudo yum install glibc-devel.i386