📄 097.htm
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->Linux HowTo 中译版-->RPM HOWTO (RPM at Idle) : . Multi-architectural RPM Building</TITLE>
<META NAME="keywords" CONTENT=" Linux HowTo 中译版 RPM HOWTO (RPM at Idle) : . Multi-architectural RPM Building">
<META NAME="description" CONTENT=" - Linux HowTo 中译版 - RPM HOWTO (RPM at Idle) : . Multi-architectural RPM Building">
<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%" bgcolor="#e0e0e0"><strong><A HREF="098.htm">后一页</A><BR>
<A HREF="096.htm">前一页</A><BR>
<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">RPM HOWTO (RPM at Idle) : . Multi-architectural RPM Building</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
姓名:Donnie Barnes<br>
Email:<br>
地址 :djb@redhat.com<br>
转摘 :http://member.netease.com/</p>
<BR>
<BR>
<hr SIZE="0">
<BR>
<p><br>
7. Multi-architectural RPM Building <br>
RPM 目前可用於 build 各式作业平台之程式套件, 如 Intel i386、安装
Linux 之 Digital Alpha、 与 Sparc 机器,而且有人测试报告,
说明它也可以在 SGI 与 HP 工作站上使用。 RPM 有许多特色,
使得它能够轻松地支援在各式作业平台上 build 程式套件,
第一个特色便是在 /etc/rpmrc 档案里的 ``optflags'' 设定项目, 当我们在
build 软体套件时,它可用於指定平台架构的相关设定值。
另一个特色是 spec 档案里的 ``arch'' macro 项目, 根据所要进行 build
的平台架构,您可以指定它们执行不同的工作。另一个特色是在档案
header 处的 ``Exclude'' 设定项目。 <br>
<br>
7.1. Sample spec File <br>
下列以 ``fileutils'' 程式套件为例, 其 spec
档案的部份内容,可用来在 Alpha 与 Intel 平台架构上, 进行 build
的工作。 <br>
<br>
Summary: GNU File Utilities <br>
Name: fileutils <br>
Version: 3.16 <br>
Release: 1 <br>
Copyright: GPL <br>
Group: Utilities/File <br>
Source0: prep.ai.mit.edu:/pub/gnu/fileutils-3.16.tar.gz <br>
Source1: DIR_COLORS <br>
Patch: fileutils-3.16-mktime.patch <br>
<br>
%description <br>
These are the GNU file management utilities. It includes programs <br>
to copy, move, list, etc, files. <br>
<br>
The ls program in this package now incorporates color ls! <br>
<br>
%prep <br>
%setup <br>
<br>
%ifarch alpha <br>
%patch -p1 <br>
autoconf <br>
%endif <br>
%build <br>
configure --prefix=/usr --exec-prefix=/ <br>
make CFLAGS="$RPM_OPT_FLAGS" LDFLAGS=-s <br>
<br>
%install <br>
rm -f /usr/info/fileutils* <br>
make install <br>
gzip -9nf /usr/info/fileutils* <br>
<br>
. <br>
. <br>
. <br>
<br>
<br>
7.2. Optflags <br>
在此一□例中, 您可以发现 ``optflags'' 设定项目,是如何由 /etc/rpmrc
档案中发挥作用。首先决定您所进行 build 动作的机器,
是哪一种平台架构,请将其正确之设定值, 指定到 RPM_OPT_FLAGS。您必须针对程式套件之
Makefile 档案, 进行 patch 的动作,将一些通用的变数设定值,
加以改变以适用於您的环境 ( 如 -m486 与 -O2 )。您可以 install 这份
source 套件, 接著解开 source 并检查其 Makefile
档案,以进一步找出更好的设定方式, 然後观察 Makefile 的 patch
内容,以了解我们必须做哪些改变。 <br>
<br>
7.3. Macros <br>
%ifarch 此一 macro 设定项目是非常重要的,
在许多场合,您须要只针对某一特定平台架构, 进行一两个 patch
工作,这种情况下, RPM 能够让您仅针对某一平台架构, 采用必要的
patch。 <br>
<br>
在上述□例中, fileutils 有个提供给 64 bit 机器使用的 patch,很明显地,
这项 patch 仅需要由 Alpha 机器所采用, 因此,我们针对 64 bit 的 patch
部份, 增加一个 %ifarch 的 macro 设定项目, 其□例如下: <br>
<br>
<br>
%ifarch axp <br>
%patch1 -p1 <br>
%endif <br>
<br>
这样能保证, 除了 Alpha 机器之外,
其他平台架构的机器并不会采用此 patch。 <br>
<br>
7.4. Excluding Architectures from Packages <br>
您可以在一个目录内, 同时管理各式作业平台的 RPM
原始档案,这项功能使得我们在制作程式套件的时候,
不必限定於某些作业平台上。因此您可以这样下指令: <br>
<br>
rpm --rebuild /usr/src/SRPMS/*.rpm <br>
<br>
使得正确的程式套件能够被 build。如果您尚未移植某个应用程式至某一特定的作业平台,可以加上这样的一行内容:
<br>
ExcludeArch: axp <br>
<br>
到 source 程式套件当中, spec 档案的 header 处,然後在原本进行 build
的作业平台上, 再做一次 rebuild 动作。此时, 您就有了一份在 Intel
机器上 build 完成的 source 程式套件,同时它也很容易便能移□至 Alpha
机器上。 <br>
<br>
7.5. Finishing Up <br>
使用 RPM 来制作「多作业平台」的程式套件,
通常会比各别在该平台制作来得容易,而且随著您制作越多的程式套件,
其效应会更加明显,
因为,我们可以参考其他类似的原始程式套件内容,
得以处理制作时遇到的问题。 <br>
<br>
<br>
8. Copyright Notice <br>
本说明文件及其内容, 均受版权所保护, 在原文保持完整、
未被更动的情况下,允许将其转载, 也就是说,
您仅能对原文加以重新排版、 重新列印、 或进行转录。 <br>
</p>
<BR>
<hr color="#EE9B73" size="1" width="94%">
</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%" bgcolor="#e0e0e0"><strong><A HREF="098.htm">后一页</A><BR>
<A HREF="096.htm">前一页</A><BR>
<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -