?? 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 + -