一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Centos - CentOS下將軟件源碼打包為RPM的方法

CentOS下將軟件源碼打包為RPM的方法

2019-09-11 17:16CSDNlibinbin_1014 Centos

這篇文章主要介紹了CentOS下將軟件源碼打包為RPM的方法,同樣也適用于Fedora等其他RedHat系的Linux系統,需要的朋友可以參考下

平臺:centos6.5

首先是搭建環境:
 

復制代碼

代碼如下:

[cpp] view plaincopyprint?
</p> <p> [root@localhost binbin]#yum install -y rpm-build</span> </p> <p>[cpp] view plaincopyprint?
</p> <p> [root@localhost binbin]#yum install redhat-rpm-config

 

之后會在/root目錄下有一個rpmbuild目錄
 

復制代碼

代碼如下:

[cpp] view plaincopyprint?
</p> <p> [root@localhost rpmbuild]# pwd 
/root/rpmbuild</span>

 

 
進入該目錄,里面有五個文件夾分別是BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
剛開始時都是空的
 

復制代碼

代碼如下:

[html] view plaincopyprint?
</p> <p> [root@localhost rpmbuild]# ls 
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

 


如果沒有這幾個目錄可以手動添加創建


這六個目錄的作用分別是:
BUILD :rpmbuild編譯軟件的目錄
BUILDROOT :
RPMS :rpmbuild創建binary RPM 所存放的目錄
SOURCES :存放源代碼的目錄
SPECS :存放spec文件的目錄
SRPMS :rpmbuild創建souce RPM 所存放的目錄

首先是將放置有源碼的文件夾進行打包。此處我的文件夾起名為login-1.0
 

復制代碼

代碼如下:

[cpp] view plaincopyprint?
</p> <p> [root@localhost binbin]#tar zcvf login-1.0.tar.gz login-1.0 
[root@localhost binbin]#ls 
login-1.0.tar.gz login-1.0

 


將login-1.0.tar.gz拷貝至rpmbuild/SOUCES目錄下
 

復制代碼

代碼如下:

[html] view plaincopyprint?
</p> <p> [root@localhost binbin]#cp login-1.0.tar.gz /root/rpmbuild/SOURCES 
[root@localhost SOURCES]# ls 
login-1.0.tar.gz

 

 

此時進入SPEC目錄,編寫SPEC文件(此步是打包rpm包的關鍵一步)
 

復制代碼

代碼如下:

[html] view plaincopyprint?
</p> <p> [root@localhost SOURCES]#cd ../SPECS 
[root@localhost SPECS]#touch login.spec 
[root@localhost SPECS]#ls 
login.spec 
[root@localhost SPECS]#vim login.spec </p> <p>
[html] view plaincopyprint?
</p> <p> #名字 
Name: login 
#版本號 
Version:1.0 
#編譯的次序 
Release:1 
#一句話介紹包 (不超過50個字符) 
Summary: is test 
Group: Applications/Communications 
License: GPL 
URL: www.ciis.com 
#要安裝的壓縮包源文件 
Source: login-1.0.tar.gz 

BuildRoot: %{_tmppath}/%{name}-%{version}-root 
%description 
a test 
#構建包前的處理 
%prep 


#-- 解壓:這里主要是構建的時候解壓縮源碼到系統目錄,這里是$RPM_BUILD_DIR 
# setup -c 解壓的時候會生成一個和壓縮包同名的新目錄 ; setup -n dirname 指定一個新的目錄以解壓縮 setup -q 直接解壓,不產生新的目錄 
%setup -q 


#-- 生成:這里主要是構建二進制包的的時候執行編譯生成二進制文件 
%build 
make 


#-- 安裝:構建的時候把當前文件安裝到系統目錄$RPM_BUILD_ROOT/下,二進制安裝的時候是安裝文件到/根目錄下 
%install 


#make install #使用makefile的install,方便 
#沒有makefile,自定義安裝腳本 
rm -rf $RPM_BUILD_ROOT/* 
mkdir -p $RPM_BUILD_ROOT/usr/bin/ 
cp -r $RPM_BUILD_DIR/%{name}-%{version} $RPM_BUILD_ROOT/usr/bin/ 


#安裝完成后續:二進制包安裝后的處理腳本 
%post 
chmod +x /usr/bin/%{name}-%{version}/confAgent 
chmod +x /usr/bin/%{name}-%{version}/check_confAgent.sh 


#卸載完成后續:二進制包卸載完成后的處理腳本 
%postun 
rm -fr /usr/bin/%{name}-%{version} 


#清理:構建包完成后處理 
%clean 
rm -rf $RPM_BUILD_ROOT 


#文件列表:指示哪些文件應該被安裝到系統中以及安裝的目錄; 
#構建包時,文件列表的文件或目錄必須和虛擬目錄RPM_BUILD_ROOT中的文件或目錄一致,否則構建時會 
#提示找不到文件 
%files 
%defattr(-,root,root) 
/usr/bin/%{name}-%{version} 


%changelog

 

 

保存退出,執行打包命令
 

復制代碼

代碼如下:

[html] view plaincopyprint?
</p> <p> [root@localhost SPECS]#rpmbuild -ba login.spec</span>

 


之后會在RPMS/i686目錄下有相應的rpm包,這里是login-1.0-1.i686.rpm 
 

復制代碼

代碼如下:

[html] view plaincopyprint?
</p> <p> [root@localhost SPECS]# cd ../RPMS/i686 
[root@localhost i686]# pwd 
/root/rpmbuild/RPMS/i686 
[root@localhost i686]# ls 
login-1.0-1.i686.rpm

 

 

測試安裝
 

復制代碼

代碼如下:

[html] view plaincopyprint?
</p> <p> [root@localhost binbin]#ls 
login-1.0-1.i686.rpm 
[root@localhost binbin]#rpm -ivh login-1.0-1.i686.rpm 
[root@localhost binbin]#/usr/bin/login-1.0/demo

 

即可運行客戶端

延伸 · 閱讀

精彩推薦
  • Centoscentos不小心刪除/root目錄該如何解決?

    centos不小心刪除/root目錄該如何解決?

    一些朋友最近在問小編centos不小心刪除/root目錄該如何解決?今天小編就為大家分享centos不小心刪除/root目錄解決辦法;希望對大家會有幫助,有需要的朋友...

    腳本之家8022019-05-29
  • CentosCentOS7設置日期和時間方法以及基本概念介紹

    CentOS7設置日期和時間方法以及基本概念介紹

    這篇文章主要介紹了CentOS7設置日期和時間方法以及基本概念介紹,本文講解使用CentOS7中的新命令timedatectl設置日期時間方法,需要的朋友可以參考下 ...

    CentOS之家6522019-09-19
  • CentosCentOS6.5下Redis安裝與配置詳細步驟

    CentOS6.5下Redis安裝與配置詳細步驟

    本篇文章主要介紹了CentOS6.5下Redis安裝與配置詳細步驟,詳細介紹redis單機單實例安裝與配置,服務及開機自啟動。有興趣的可以了解一下。...

    飛流11452021-12-24
  • CentosCentos7運用/dev/shm進行網站優化

    Centos7運用/dev/shm進行網站優化

    這篇文章主要介紹了LINUX中Centos7運用/dev/shm進行網站優化相關知識點,對此有興趣的朋友參考學習下。...

    彬菌9912022-03-02
  • CentosCentOS下Uptime命令詳解

    CentOS下Uptime命令詳解

    在Linux下,我們可以使用uptime命令,而且此命令不必使用root權限。uptime命令在系統中已經默認安裝了。今天小編為大家帶來的是CentOS下Uptime命令詳解;希望...

    CentOS之家11482019-06-19
  • CentosCentos 7開啟網卡自動獲取IP的詳細方法

    Centos 7開啟網卡自動獲取IP的詳細方法

    本篇文章主要介紹了Centos 7開啟網卡自動獲取IP的詳細方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    凌鋒8972021-12-29
  • Centoscentos 安裝與操作方法

    centos 安裝與操作方法

    這篇文章主要介紹了centos 安裝與操作方法,需要的朋友可以參考下...

    centos之家5272019-07-11
  • CentosCentOS 6.6實現永久修改DNS地址的方法

    CentOS 6.6實現永久修改DNS地址的方法

    這篇文章主要介紹了CentOS 6.6實現永久修改DNS地址的方法,涉及針對CentOS配置文件的相關設置技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    Linux社區4472020-08-21
主站蜘蛛池模板: 亚洲AV综合99一二三四区 | 天天躁天天碰天天看 | 给我免费观看的视频在线播放 | 爱情岛永久成人免费网站 | 兽操人| 波多野结中文字幕在线69视频 | 美女扒开胸罩露出奶了无遮挡免费 | 日韩av线观看 | 天堂樱桃bt在线www | 国产一区二区在线观看美女 | 成人国产一区二区 | 免费观看成年肉动漫网站 | 狠狠色成人综合网图片区 | 国产成人8x视频一区二区 | 国内精品一区视频在线播放 | 亚洲精品日韩专区在线观看 | 日本一区二区免费在线观看 | 国产精品免费aⅴ片在线观看 | 国产在线精品一区二区高清不卡 | 亚洲精品乱码久久久久久蜜桃图片 | 国产福利一区二区在线精品 | 国产精品香蕉夜间视频免费播放 | 大象传媒短视频网站 | 丝瓜草莓香蕉绿巨人幸福宝 | 日本啊v在线观看 | 香蕉草莓视频 | 日本福利视频一区 | 美女脱了内裤让男生尿囗 | 亚洲 制服 欧美 中文字幕 | 236宅宅2021最新理论 | 日本特黄一级午夜剧场毛片 | 国产精品毛片久久久久久久 | 18videossex性欧美69 | 欧美日韩一区二区三区在线观看 | 成人综合网站 | 亚洲第一页综合 | 91porn最新地址 | 欧洲网色偷偷亚洲男人的天堂 | 精品一区二区三区 不卡高清 | 国产一区二区在线看 | 国产成人精品免费视频软件 |