国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
PATCH制作方法
最簡(jiǎn)單的PATCH制作方法
Subject:
MINI RPM PATCH HOWTO 最簡(jiǎn)單的PATCH制作方法 V 0.1 版本
Author: wangxg
MINI RPM PATCH HOWTO
最簡(jiǎn)單的PATCH制作方法
V 0.1 版本

目的:

您目的是希望修改了RPM源碼包中的源代碼后,將自己修改的代碼制作成PATCH的形式編譯到原RPM包中,從而方便RPM包的制作,以及保證代碼的一致性和可維護(hù)性.

常規(guī)操作:

1. 在系統(tǒng)中建立三個(gè)目錄:
1.1 源代碼調(diào)式和編譯目錄 (定義為 “工作目錄”)
1.2 修改目標(biāo)代碼目錄 (定義為 “目標(biāo)目錄”)
1.3 原始源代碼目錄 (定義為 “源目錄” )

注釋:
1.1“工作目錄”即是我們直接修改和調(diào)式源代碼的目錄,一般情況下我們會(huì)解開
RPM源代碼包,然后進(jìn)行 rpmbuild ,在/usr/src/redhat/Build/目錄下會(huì)產(chǎn)生系統(tǒng)
的源代碼目錄,建議將該目錄作為工作目錄.

1.2 “目標(biāo)目錄”是存放最終代碼(修改過的源代碼)的目標(biāo)目錄,一般我們將“工作目錄”中修改好的源代碼復(fù)制到該“目標(biāo)目錄”中,覆蓋該目錄中的舊文件,如果是新增的文件,則將新增文件直接復(fù)制到相應(yīng)的目錄結(jié)構(gòu)中.

為工作方便,目標(biāo)目錄一般情況下在系統(tǒng)/usr/src/redhat/SOURCE/目錄下.該目錄是解壓在SOURCE目錄下的源代碼包壓縮包( 包名.tar.bz2)產(chǎn)生的.

注: SOURCE目錄下的tar.bz2包是在安裝源代碼包(執(zhí)行rpm -ivh )時(shí)
自動(dòng)生成的.

1.3 “源目錄”是制作patch時(shí)對(duì)比用的目錄,方法是在SOURCE目錄制作“目標(biāo)目錄”時(shí)復(fù)制一個(gè)目錄更名為 包名.orig (后最只是用來和“目標(biāo)目錄”
做區(qū)分)

1.4 注意:解壓tar.bz2包生成“目標(biāo)目錄”和“源目錄”后要恢復(fù)一個(gè) tar.bz2包,否則在執(zhí)行rpmbuild時(shí),系統(tǒng)會(huì)提示在SOURCE目錄下找不到包名.tar.bz2文件.


2. 在“工作目錄”中調(diào)式和修改源代碼;
2.1 記錄修改的文件名
2.2 記錄新增的文件名
2.3 記錄刪除的文件名

注釋:
2.1 這里指的修改過的文件是沒有編譯前存在的文件
2.2 這里新增的文件是指用戶額外編寫的程序代碼,也可以是二進(jìn)制模塊
2.3 這里刪除的文件是指用戶手動(dòng)刪除的編譯和調(diào)式前存在的文件







3. 當(dāng)調(diào)式“工作目錄”中代碼無誤時(shí),將“工作目錄”目錄中修改過的文件,用戶新增加的
文件,將“目標(biāo)目錄”對(duì)應(yīng)于“工作目錄”中用戶刪除的文件刪除.

注意:
3.1 修改過的文件會(huì)覆蓋“目標(biāo)目錄”相應(yīng)的文件
3.2 將新增的文件拷貝到“目標(biāo)目錄”相應(yīng)的目錄結(jié)構(gòu)中
3.3 刪除“目標(biāo)目錄”中對(duì)應(yīng)于“工作目錄”中用戶刪除的文件

4. 制作PATCH文件

4.1 在SOURCE目錄下用如下命令:

# diff -uNr “源目錄” “目標(biāo)目錄” > 包名.作者.日期.patch

注:
a. “包名.作者.日期.patch ”是用戶自己取的.作者可以根據(jù)自己的規(guī)范命名;
b. patch文件一定在SOURCE目錄下;


5. 修改SPECS文件

5.1 在SPECS下有包的SPEC文件,名為 “包名.SPEC”
5.2 修改該SPEC文件,這里我們舉一個(gè)小型的 spec 文件為例 (vim-3.0-1.spec):

*****************************************************
Summary: ejects ejectable media and controls auto ejection
Name: eject
Version: 1.4
Release: 3
Copyright: GPL
Group: Utilities/System
Source: sunsite.unc.edu:/pub/Linux/utils/disk-management/eject-1.4.tar.gz
Patch: eject-1.4-make.patch
Patch1: eject-1.4-jaz.patch
%description
This program allows the user to eject media that is autoejecting like
CD-ROMs, Jaz and Zip drives, and floppy drives on SPARC machines.

%prep
%setup
%patch -p1
%patch1 -p1

%build
make RPM_OPT_FLAGS=\"$RPM_OPT_FLAGS\"

%install
install -s -m 755 -o 0 -g 0 eject /usr/bin/eject
install -m 644 -o 0 -g 0 eject.1 /usr/man/man1

%files
%doc README COPYING ChangeLog

/usr/bin/eject
*****************************************************

注意:從上面示例中我們看到,修改SPEC文件只有兩個(gè)地方,一是在Source后面,
二是在%setup后面.

修改方法:

1. 如果原 SPEC 文件沒有PATCH,則在文件的“Source:”行后增加“Patch:”行.
將您的Patch名寫在Patch: 后面,例如: Patch: OpenOffice-hhj-20030715.patch

如果原 SPEC 文件有PATCH,則在舊的“Patch:”行后新增“PatchN:”行.
如果原來只有一個(gè)“Patch:”,您則增加“Patch1:”,并將您的Patch名寫在Patch1: 后面,例如: Patch1: OpenOffice-hhj-20030715.patch,依此類推.

2. 如果原 SPEC 文件沒有PATCH,則在 SPEC 文件%setup行后面
增加一行%patch -p1 ,其中 -p1 是參數(shù)
如果原來只有一個(gè)“Patch:”,您增加“Patch1:”,則在SPEC文件%setup行后面,的
%patch -p1后面新增一行: %patch1 -p1 依此類推.

注釋:
Source行后面的Patch項(xiàng)在%setup行后面肯定有對(duì)應(yīng)項(xiàng).

6. 執(zhí)行rpmbuild -ba 命令,這時(shí)打出來的二進(jìn)制RPM包就是修改過的包了,源代碼包則包含
了您的PATCH.





(列舉修改 anaconda源代碼):

1.在RedHat9.0中安裝anaconda-9.0.src.rpm
# rpm -ivh anaconda-9.0.src.com

1.1 在系統(tǒng)中會(huì)出現(xiàn)如下文件:
/usr/src/redhat/SOURCE/anaconda-9.0.tar.bz2

2. 解壓上面目錄中的壓縮包--anaconda-9.0.tar.bz2
# bunzip2 anaconda-9.0.tar.bz2

2.2 在系統(tǒng)中會(huì)出現(xiàn)如下文件 :
/usr/src/redhat/SOURCE/anaconda-9.0.tar

2.3 解壓上面2.2 tar 包
# tar -xvf anaconda-9.0.tar

在系統(tǒng)中產(chǎn)生如下目錄
/usr/src/redhat/SOURCE/anaconda-9.0

2.4 復(fù)制anaconda-9.0 目錄

# cp -rf anaconda-9.0 anaconda-9.0.orig

現(xiàn)在系統(tǒng)SOURCE目錄下存在兩個(gè)沒有編譯過的源代碼目錄
一個(gè)是源目錄: anaconda-9.0.orig

一個(gè)是修改目錄: anaconda-9.0

注意:千萬不要在SOURCE中的修改目錄中編譯和調(diào)式源代碼.該目錄只是用來存放修改過的源代碼(將其他編譯和調(diào)式環(huán)境中的源代碼文件直接覆該目錄中的原文件).

一般我們修改的代碼都是直接在源代碼目錄中進(jìn)行編譯,最常用的是在BUILD目錄中的源代碼目錄中,
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
rpm建包原理
RPM包rpmbuild SPEC文件深度說明 - 夜鳴豬的RubyOnRails空間 -...
微頭條
rpm 打包整理
PowerPC平臺(tái)Linux的移植
Linux的補(bǔ)丁知識(shí)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服