欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Linux系統(tǒng)下怎么將源碼包制作為rpm包-創(chuàng)新互聯(lián)

這篇文章主要講解了“Linux系統(tǒng)下怎么將源碼包制作為rpm包”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux系統(tǒng)下怎么將源碼包制作為rpm包”吧!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供稷山網(wǎng)站建設(shè)、稷山做網(wǎng)站、稷山網(wǎng)站設(shè)計(jì)、稷山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、稷山企業(yè)網(wǎng)站模板建站服務(wù),10多年稷山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

1.要使用rpmbuild 這個(gè)命令,那么要安裝rpm-build, centos下可以使用yum -y intall rpm-build 來完成安裝.

2.rpmbuild 包和 /usr/src/redhat目錄 ,這些 rpm build 的程序是要靠 spec 文件的控制.它是配置指定安裝到另外的機(jī)器上的,

用來指示轉(zhuǎn)換的源碼補(bǔ)丁編譯成二進(jìn)制文件的包.默認(rèn)編譯操作是在下面的目錄中,它是編譯源碼的相關(guān)動(dòng)作操作的位置.
如果不指定其它的地方,那么 rpm building 的地方是主要在 /usr/src/redhat 的目錄,目錄的架構(gòu)如下,這就是為 rpm-build 提供的目錄結(jié)構(gòu).



代碼如下:

/usr/src/redhat/
|-- BUILD
|-- RPMS
| |-- i386
| `-- ...
|-- SOURCES
| |-- foo-1.2.tar.gz
| |-- foo-1.2-add_feature.patch
| `-- foo-1.2-change_default.patch
|-- SPECS
| `-- foo.spec
`-- SRPMS
%define name foo # 名字
%define version 16 #version
Name: %{name} #name 就是使用的上面的宏指令
Version: %{version} #version 也是使用的上面的宏指令
Release: 1
License: GPL
Group: Applications/Productivity # 軟件是哪個(gè)組的,更多信息查看 /usr/share/doc/rpm-version/GROUPS
URL: http://www.mysqlops.com
Source: ftp://www.mysqlops.com/pub/xxx.tar.gz
Patch0: foo-1.2-change_default.patch
Patch2: foo-1.2-add_feature.patch
PreReq: unzip # 安裝前需要什么
Requires: pam # 安裝后需要什么
BuildPreReq: gcc >= 2.96 #打包前需要什么
BuildRoot: %{_tmppath}/%{name}-root # 準(zhǔn)備源碼文件的 chroot 的目錄
Summary: A fictional open source package for the offering. #摘要
%description #描述

注意,spec 文件很多信息都是取自宏指令,如果沒有明確指定,就會(huì)繼承 /usr/lib/rpm/macros 和其它相關(guān)宏指令的文件.

Spec 文件之 %prep

%prep 這部分其它是由一些參數(shù)來組成一個(gè) shell 腳本來從 SOURCES 中解壓源碼和應(yīng)用補(bǔ)丁到 BUILD 目錄中來準(zhǔn)備下面的編譯.
和 %prep 相關(guān)的宏指令



代碼如下:

%setup
%patch

例:

代碼如下:

%prep
%setup -q #提取源碼到 BUILD 目錄; -q 指不顯示輸出(quietly)
%patch0 -p1 # 應(yīng)用 patch0
%patch2 -p1 -b .orig # 應(yīng)用 Patch2 但是存下源文件成 .oring 的后綴
unzip foo_data.zip # 接下來解壓 zip 文件

Spec 文件之 %build
%build 是編譯和準(zhǔn)備軟件,運(yùn)行象一個(gè) shell 腳本,它運(yùn)行在上下文目錄指定的源碼目錄.在編譯過程中,調(diào)用腳本 .config 在本地的目錄(%configure 中配置的).
和 %build 相關(guān)的宏
%configure # 可以通過運(yùn)行 rpm -eval %configure 來看它的設(shè)置

例:

代碼如下:

%build
%configure –enable-shared
CFLAGS=-O2 make

Spec 文件之 %install
%install 是用來做 rpm 安裝所有需要的文件.這些打包的文件會(huì)復(fù)制到前面的講的 BuildRoot 中的目錄樹中.通常這個(gè)目錄是使用的 /var/tmp 中.
$RPM_BUILD_ROOT 參數(shù)來設(shè)置 BuildRoot.主要不能使用真實(shí)目錄來設(shè)置的主要原因是,在編譯的過程中有可能會(huì)有文件替換到你系統(tǒng)中的文件引起系統(tǒng)
和軟件問題.對(duì)其它的文件路徑象在 %{_mandir}, %{_bindir} , %{_sysconfdir} 等等,都是使用預(yù)先定義的宏來指定的.
默認(rèn)都是跑在這個(gè) RPM_BUILD_ROOT 目錄下的.
例:



代碼如下:

%install
rm -rf $RPM_BUILD_ROOT # 默認(rèn)的$RPM_BUILD_ROOT 是 /var/tmp/%{name}-root
make DESTDIR=$RPM_BUILD_ROOT install # 指定安裝文件的路徑
install -m644 foo.8 ${RPM_BUILD_ROOT}/%{_mandir}/man8/foo.8

Spec 文件之 %clean
%clean 是用來清理 build 后的臨時(shí)文件,主要是怕這些舊的文件影響以后編譯.主要是要?jiǎng)h除 $RPM_BUILD_ROOT 和運(yùn)行 make clean .
例:



代碼如下:

%clean
rm -rf $RPM_BUILD_ROOT
make clean

Spec 文件之 Scriptlets

這些選項(xiàng)可以讓你動(dòng)態(tài)的使用 shell 腳本來控制安裝和刪除,
%pre,%post 是用腳本運(yùn)行在包安裝后,注意沒法交互
%preun,%postun 用腳本運(yùn)行在包刪除時(shí)



代碼如下:

rpm -q –scripts packagename # 可以看到腳本的信息

例如:



代碼如下:

%pre
groupadd -g 201 foo
useradd -g foo -s /bin/false -d /var/foo -M foo
%post
/sbin/ldconfig
chkconfig --add food
%preun
if [ = 0 ]
then
service food stop > /dev/null 2>&1
chkconfig --del food
fi
%postun
if [ = 0 ]
then
userdel foo
groupdel foo
else
/sbin/ldconfig
service food condrestart > /dev/null 2>&1
fi

注意,在這個(gè)當(dāng)中的數(shù)字,如果是 1 是指是第一次安裝,如果是 2 是指也許是升級(jí).如果是 0 在 %postun , 是指被完全的刪除.
Spec 文件之 %files

%files 任何打包的文件,都需要在這個(gè)包的詳細(xì)的文件列表中,如果是目錄,包的所有者的全部目錄都在中間,%dir 來指定空目錄,可以用
%files -f /tmp/dyanmic_filelist 來指定一個(gè)文件列表.默認(rèn) %config 會(huì)替換掉配置,給原來的配置修改名字為 .rpmorig,
如果不想修改的話,就用%config(noreplace) 就會(huì)給新的配置文件名字命名為 .rpmnew.
%defattr(mode,user,group)
%attr(mode,user,group) filename
%config 配置文件
%doc 文檔
例:



代碼如下:

%files
%defattr(-,root,root)
%config /etc/foo.conf # 指定了才能在更新和刪除時(shí)有用
/usr/sbin/food
/usr/bin/foo
%doc README # 目錄是在 /usr/share/doc/%{name}-%{version}
%doc /usr/share/man/man8/food.8
/usr/share/foo/
%dir /var/lock/foo/ # 空的目錄

Spec 文件之 %changelog ;
%changelog 是記錄包的修改,比如加入一個(gè)新的補(bǔ)丁,修改配置,日志使用 data +”%a %b %d %Y”,
需要顯示包的日志改變的信息可以使用 rpm-q –changelog.例:

代碼如下:

%changelog
? Mon Aug 5 2002 Elvis Presley

感謝各位的閱讀,以上就是“Linux系統(tǒng)下怎么將源碼包制作為rpm包”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Linux系統(tǒng)下怎么將源碼包制作為rpm包這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站欄目:Linux系統(tǒng)下怎么將源碼包制作為rpm包-創(chuàng)新互聯(lián)
本文URL:http://aaarwkj.com/article2/deddoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、域名注冊(cè)、搜索引擎優(yōu)化、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
成人色视频免费在线观看| 日韩有码中文字幕一区| 五月婷婷丁香综合中文字幕| 99精品午夜福利在线| 蜜桃网站视频免费观看| 成人黄网站色大片免费观看| 欧美国产日韩亚洲综合| 欧美福利在线观看视频| 亚洲成人精品免费观看| 黄色大全欧美在线观看| 99人妻一区二区三区在线| 日韩av高清免费播放| 亚洲精品国产第一区| 国产黄色av网站在线| 国产亚洲一区二区高清| 日本福利资源在线观看| 五月色婷婷六月色丁香| 亚洲精品另类中文字幕| 亚洲一区二区三区色偷偷| 亚洲欧美午夜不卡视频| 国产精品三级竹菊影视| 18禁污污网站国产| 亚洲精品日韩一区二区| 国产成人综合久久三区北岛玲 | 国产精品三级竹菊影视| 国产伦奸在线播放免费| 国产av不卡精品影片| 精品丝袜熟女一区二区三区| 亚洲成人永久免费精品| 久久精品国产av极品| 麻豆色视频在线观看免费| 日本久久在线观看视频| 亚洲欧美制服另类国产| 久久精品高潮999久久久| 精品久久一区麻豆香蕉| 高潮少妇高潮少妇av| 小黄片视频免费在线播放| 四虎免费在线视频观看| 校花出白浆视频一区二区三区| 亚洲精品成人福利网站| 日麻批视频在线免费观看|