新手RPM打包教程

1.安裝 rpm-build 包

yum install rpm-build
可以先查看下rpmbuild版本,如果有就不需要再安裝了
rpmbuild --version

2.安裝 rpmdevtools

yum install rpmdevtools

3.創(chuàng)建工作空間

rpmdev-setuptree是rpmdevtools中帶的初始化環(huán)境腳本铆隘,執(zhí)行后會在用戶主目錄下創(chuàng)建rpmbuild目錄和.rpmmacros文件缔赠,同時(shí)生成所需的子目錄和默認(rèn)的控制參數(shù)缰猴,執(zhí)行:
rpmdev-setuptree
自動生成的目錄結(jié)構(gòu):

-- rpmbuild
    |-- BUILD
    |-- RPMS
    |-- SOURCES
    |-- SPECS
    |-- SRPMS

4.創(chuàng)建 SPEC 文件

SPEC文件控制整個(gè)rpm的打包過程避诽,包含了打包的全部信息和控制參數(shù),可以使用 rpmdev-newspec 命令來創(chuàng)建一個(gè)初始的SPEC文件踪旷,SPEC文件需放入rpmbuild/SPECS目錄
rpmdev-newspec zookeeper.spec

SPEC 腳本主要定義了打包過程中的幾個(gè)階段的配置:
(1)信息定義階段 :定義軟件包的名字植捎、版本等信息和打包過程中用到的變量等
(2)制作準(zhǔn)備階段 :解壓源碼包衙解、補(bǔ)丁包并打補(bǔ)丁
(3)編譯階段 :設(shè)置編譯參數(shù)并編譯源碼
(4)安裝階段 :定義安裝過程所執(zhí)行的命令,包括安裝前、安裝后焰枢、卸載前蚓峦、卸載后執(zhí)行的操作
(5)清理階段 :清理打包過程中用到的目錄文件等
(6)文件設(shè)置階段 :要打包的文件和目錄,并設(shè)置文件權(quán)限等

目前我的SPEC沒有指定軟件源碼包路徑(Source0參數(shù))医咨,我是直接將文件夾打包枫匾,所直接將文件夾放到/root/rpmbuild/BUILDROOT/apache-zookeeper-3.6.1-1.x86_64/opt/zookeeper(opt/zookeeper必須是根據(jù)大家自己配置的打包目錄一致)

# 1.信息定義階段
### 軟件名字,要與spec的文件名一致 
Name:           apache-zookeeper
### 軟件主版本號
Version:        3.6.1
### 發(fā)行編號拟淮,每打包一次值遞增干茉,主版本號發(fā)布新版后需重置該值
Release:        1
### 一行簡短的軟件簡介,結(jié)尾不要加標(biāo)點(diǎn)
Summary:        Zookeeper is a highly reliable distributed coordination service
Group:          
### 軟件許可
License:        Apache 2.0
### 軟件項(xiàng)目主頁
URL:           https://zookeeper.apache.org/
### 放置在SOUIRCES目錄的軟件源碼包名很泊,可以指定多個(gè):source1角虫、source2等
#Source0:        %{name}.%{version}.tar.gz  
### 在 install 階段的測試安裝目錄,方便寫files
#buildroot:      %_topdir/BUILDROOT
#BuildRequires:  go
### 安裝軟件包時(shí)所需的依賴包列表委造,可以指定版本如 bash >= 1.1.1
#Requires:       readline-devel,pcre-devel,openssl-devel
### 程序的詳細(xì)多行描述戳鹅,每行必須小于等于 80 個(gè)字符,空行表示開始新段
%description
Zookeeper 3.6.1

# 2.準(zhǔn)備階段
%prep
## 靜默模式解壓并進(jìn)入解壓后的目錄,也常用:%autosetup -n %{name}
 
# 3. 編譯階段
%build

# 4.安裝階段
%install
### 刪除之前的殘留文件

## rpm安裝前制行的腳本
%pre
### $1==1 代表的是第一次安裝昏兆,2代表是升級枫虏,0代表是卸載
#if [ $1 == 1 ];then     
#     /usr/sbin/useradd -r %{nginx_user} 2> /dev/null 
#fi

## rpm安裝后制行的腳本
%post

###卸載前執(zhí)行的腳本
%preun
###卸載后執(zhí)行的腳本
%postun
rm -rf opt/zookeeper

# 5.清理階段
%clean
### 刪除buildroot目錄
rm -rf %{buildroot}

#  6.文件設(shè)置階段
%files
### 設(shè)定默認(rèn)權(quán)限,如果下面沒有指定權(quán)限爬虱,則繼承默認(rèn)
%defattr (-,root,root)
###要打包的文件和目錄隶债,在執(zhí)行完rpmbuild -bi后,參考%{rootbuild}下生成的文件和目錄
/opt/zookeeper

編寫完 SEPC 文件后跑筝,可以通過 rpmlint 檢查是否有配置錯(cuò)誤
rpmlint motan-go.spec

5.執(zhí)行打 rpm 包命令

cd /root/rpmbuild/SPECS
rpmbuild -ba zookeeper.spec

6.安裝測試RPM包

rpm -Uvh apache-zookeeper-3.6.1-1.x86_64.rpm

******特別備注下死讹,如果需要編譯的程序在編譯前可以指定到同一目錄打包然后整個(gè)目錄打包

例:export DESTDIR=/opt/zookeeper
./make.sh
./make.sh install

參考資料

ZooKeeper從源碼到RPM包制作過程詳解
http://www.erik-ly.com/2019/12/29/ZooKeeper-rpm/
CentOS 如何打 RPM 包
https://idevz.org/2017/07/centos-%E5%A6%82%E4%BD%95%E6%89%93-rpm-%E5%8C%85/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市曲梗,隨后出現(xiàn)的幾起案子赞警,更是在濱河造成了極大的恐慌妓忍,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愧旦,死亡現(xiàn)場離奇詭異世剖,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)忘瓦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門搁廓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來引颈,“玉大人耕皮,你說我怎么就攤上這事◎。” “怎么了凌停?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長售滤。 經(jīng)常有香客問我罚拟,道長,這世上最難降的妖魔是什么完箩? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任赐俗,我火速辦了婚禮,結(jié)果婚禮上弊知,老公的妹妹穿的比我還像新娘阻逮。我一直安慰自己,他們只是感情好秩彤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布叔扼。 她就那樣靜靜地躺著,像睡著了一般漫雷。 火紅的嫁衣襯著肌膚如雪瓜富。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天降盹,我揣著相機(jī)與錄音与柑,去河邊找鬼。 笑死蓄坏,一個(gè)胖子當(dāng)著我的面吹牛价捧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剑辫,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼干旧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妹蔽?” 一聲冷哼從身側(cè)響起椎眯,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挠将,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后编整,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舔稀,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年掌测,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了内贮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汞斧,死狀恐怖夜郁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粘勒,我是刑警寧澤竞端,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站庙睡,受9級特大地震影響事富,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乘陪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一统台、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啡邑,春花似錦贱勃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至森缠,卻和暖如春拔鹰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贵涵。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工列肢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宾茂。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓瓷马,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跨晴。 傳聞我的和親對象是個(gè)殘疾皇子欧聘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一文看懂Linux內(nèi)核[https://www.cnblogs.com/lh03061238/p/12215367...
    DreamLee0201閱讀 193評論 0 0
  • RPM包制作方法 一. 打包的步驟 1.材料的準(zhǔn)備: 打包工具(yum install rpm-build) 一個(gè)...
    followhy閱讀 310評論 0 3
  • 前言 題圖為RPM包制作原理圖,有時(shí)候?yàn)榱朔奖阍创a包的安裝端盆,和我們自己訂制軟件包的需求怀骤,我們會把一些源碼包按照我們...
    王奧OX閱讀 2,614評論 0 1
  • 使用源碼包制作rpm包 本次試驗(yàn)環(huán)境 系統(tǒng):CentOS6.8 源碼包:nginx-1.14.0 1费封、安裝rpm包...
    雄柱閱讀 1,366評論 0 0
  • RPM(Redhat Package Manager)是用于Redhat、CentOS蒋伦、Fedora等Linux ...
    IARNO閱讀 2,424評論 0 2