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

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

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
主站蜘蛛池模板: 亚洲免费色 | 麻豆在线观看 | 国产va免费精品高清在线观看 | 精品一久久香蕉国产线看观 | 亚洲欧美日韩中文高清一 | 亚洲乱亚洲23p女 | 国产私人影院 | 日本三级做a全过程在线观看 | 国产精品久久久久久久久 | 182免费在线观看 | 欧美综合色网 | 国产欧美日韩精品一区二区三区 | 国产精品成人扳一级aa毛片 | 成年私人影院免费视频网站 | 日本www午夜色在线视频 | 狠狠久久久久综合网 | 精品久久久久免费极品大片 | 亚洲精品成人456在线播放 | 波多野结衣教师未删减版 | 久久久久久久伊人电影 | 国产精品久久久久久久久99热 | 成人午夜爽爽爽免费视频 | 国产一区二区三区四卡 | 青青色在线观看 | 国产精品99久久免费观看 | 亚洲 日本 天堂 国产 在线 | 日本b站一卡二不卡三卡四卡 | 国自产在线精品免费 | 久久99国产精品二区不卡 | 色淫阁小说 | 男人把j放进女人的p里视频 | 日韩一区二区三区四区区区 | 欧美一区二区三区高清不卡tv | 亚洲上最大成网人站4438 | 亚洲波霸 | 校园全黄h全肉细节文 | 青青草一区二区免费精品 | 国产精品麻豆99久久 | 日韩一区在线播放 | aⅴ视频在线免播放观看 | 糖心vlog视频永久破解版 |