日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rpm 制作

發(fā)布時間:2024/4/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rpm 制作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫,是一種用于互聯(lián)網(wǎng)下載包的打包及安裝工具,它包含在某些Linux分發(fā)版中。它生成具有.RPM擴展名的文件。使用rpm安裝軟件和管理軟件非常的方便。而這節(jié)我們不是介紹如何使用rpm安裝或管理軟件,而是如何把源碼制作成rpm包。

我們?nèi)粘9ぷ饕话銜褂迷创a包安裝軟件,因為源碼包相對靈活多變,操作自由,唯一的問題就是容易編譯出錯。rpm包安裝簡單方便,唯一問題就是不能自定義參數(shù)且更新的速度相對于源碼慢很多。


rpm軟件包制作

yum -y install gcc* rpm-build pcre-devel

mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}


SOURCES存放源代碼,補丁,圖標等文件

BUILD解壓后的文件存放在這里

SPECS存放用于管理rpm制作進程的spec文件

RPMS存放由rpmbuild制作好的二進制包

SRPMS存放由rpmbuild制作好的源碼包


cd rpmbuild/SOURCES/

wget http://nginx.org/download/nginx-1.4.4.tar.gz


cd rpmbuild/SPECS/


例如:

vim nginx.spec


#軟件包簡要介紹

Summary: hellorpm is a test program。

#軟件包的名字

Name: hellorpm ? ? ? ?

#軟件包的主版本號 ? ? ? ? ?

Version: 2.2.6 ? ? ? ? ?

#軟件包的次版本號 ? ? ? ? ? ?

Release: 1 ?

#源代碼包,默認將在上面提到的SOURCES目錄中尋找 ? ? ? ? ? ? ? ? ? ? ? ?

Source0: %{name}-%{version}.tar.gz ?

#授權(quán)協(xié)議

License: GPL ? ?


#定義臨時構(gòu)建目錄,這個地址將作為臨時安裝目錄在后面引用

BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root

#軟件分類

Group: Development/Tools ?

#軟件包的內(nèi)容介紹 ? ? ? ? ? ? ?

%description ? ? ? ? ? ? ? ? ? ? ? ?

The hellorpm program is a test.

#表示預操作字段,后面的命令將在源碼代碼BUILD前執(zhí)行

%prep ? ? ? ? ? ? ? ? ? ?

#構(gòu)建BUILD環(huán)境,將解壓源碼壓縮包到BUILD目錄

%setup -q ? ? ?

#BUILD字段,將通過直接調(diào)用源碼目錄中自動構(gòu)建工具完成源碼編譯操作 ? ? ? ?

%build ? ? ?

#調(diào)用源碼目錄中的configure命令 ? ? ? ? ? ?

./configure ? ? ? ?

#在源碼目錄中執(zhí)行自動構(gòu)建命令make ? ?

make ? ? ? ? ? ?

#安裝字段 ? ? ? ?

%install ? ?

#調(diào)用源碼中安裝執(zhí)行腳本 ? ? ? ? ? ?

make DESTDIR=$RPM_BUILD_ROOT install

#文件說明字段,聲明多余或者缺少都將可能出錯

%files ? ? ? ? ? ? ?

#設置文件權(quán)限屬性 ? ? ?

%defattr(-,root,root) ? ? ?

#聲明/usr/local/bin/hellorpm將出現(xiàn)在軟件包中 ? ? ?

/usr/local/bin/hellorpm ? ? ?

#聲明并設置文件屬性 ?

%doc %attr(0444,root,root) /usr/local/man/man1/hellorpm.1 ?

#同上,聲明文檔文件

%doc README ?


例如:vim nginx.spec

Name:nginx

Version:1.4.4

Release:1%{?dist}

Summary:nginx-1.4.4 from wenji


Group:Development/Tools

License:GPL

URL:http://nginx.org

Source0:%{name}-%{version}.tar.gz

Source1: nginx

BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root


#BuildRequires:

#Requires:


%description

Nginx is a http server


%prep

%setup -q



%build

./configure \

? ? ? ? ? ? ? ?--user=daemon --group=daemon --prefix=%{_prefix} --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-md5=/usr/lib --with-sha1=/usr/lib ?--with-http_gzip_static_module

make %{?_smp_mflags}



%install

%{__rm} -rf $RPM_BUILD_ROOT

%{__make} DESTDIR=$RPM_BUILD_ROOT install

test -z %{buildroot}/etc/init.d/ || /bin/mkdir -p %{buildroot}/etc/init.d/

%{__install} -m 655 -p %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d/nginx


%clean

%{__rm} -rf $RPM_BUILD_ROOT


%files

%defattr(-,root,root)

%{_prefix}

/etc/init.d/nginx


%postun

#if [ $1 -eq 0 ?]

#then

rm -rfv %{_prefix}

rm -rfv /etc/init.d/nginx

#fi


%changelog



cd rpmbuild/SPECS/

rpmbuild -bb nginx.spec


###rpmbuild -ba ‘spec文件路徑’

###(rpmbuild常用參數(shù): -bb 只編譯二進制rpm包 -bs 只編譯源碼rpm包 -ba 同時編譯二進制和源碼rpm包)


轉(zhuǎn)載于:https://blog.51cto.com/actionwenji/1355211

總結(jié)

以上是生活随笔為你收集整理的rpm 制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。