2018-1-9 5周2次課
進入yum.repos.d
7.7 yum下載rpm包
安裝擴展源epel
下載不安裝但是他的安裝包下載到那個目錄下如下圖
如果上圖找不到路徑可以查看,/updates/packages/
指定安裝包路徑
7.8/7.9 源碼包安裝
約定把源碼包放到 cd /usr/local/src/這個路徑
擴展
- 配置yum源優先級
1.安裝 yum-priorities
yum install yum-priorities
2.priorities的配置文件是/etc/yum/pluginconf.d/priorities.conf,確認其是否存在。
[main]
enabled=1 # 0禁用 1啟用
3.編輯 /etc/yum.repos.d/目錄下的*.repo 文件來設置優先級。
參數為:
priority=N # N的值為1-99
推薦的設置為:
[base], [addons], [updates], [extras] … priority=1
[centosplus],[contrib] … priority=2
Third Party Repos such as rpmforge … priority=N (where N is > 10 and based on your preference)
數字越大,優先級越低
- 把源碼包打包成rpm包
簡單制作RPM二進包實例
有好多朋友問到怎麽制作rpm包,可不可把其它服務器上編譯好的軟件目錄復雜到其它服務器上直接應用等等。。。這裏做個簡單的介紹,高級復雜的不會。
此方法是通過編寫spec文件,使用rpmbuild來完成一個rpm的打包。
以nginx為例進行介紹
制作平臺:CentOS 5.x X86_64
四步走:
第一步:建立目錄結構
mkdir /usr/src/RedHat/{SOURCES,SPECS,BUILD,RPMS,SRPMS} -p
相關目錄介紹:
/usr/src/redhat/SOURCES #存放源代碼、補丁等文件
/usr/src/redhat/SPECS #存放用於管理rpm制作進程的spec文件
/usr/src/redhat/RPMS #存放由rpmbuild制作好的二進制包
/usr/src/redhat/SRPMS #存放由rpmbuild制作好的源碼包
第二步:把源碼包放在SOURCES目錄下
cd /usr/src/redhat/SOURCES
wget http://nginx.org/download/nginx-1.2.0.tar.gz
第三步:生成nginx.spec文件
cd /usr/src/redhat/SPECS
cat nginx.spec
spec file for nginx
Build 2012-07-17
By opsren
Summary: High performance web server
Name: Nginx
Version: 1.2
Release: 0.el5.ngx
License: 2-clause BSD-like license
Group: Applications/Server
Source: http://nginx.org/download/nginx-1.2.0.tar.gz
URL: http://nginx.org
Distribution: Centos/Redhat
Packager: qiuzhijun <[email protected]>
%description
Nginx ("engine x") is a high performance HTTP and reverse proxy server, as well as a mail(IMAP/POP3/SMTP) proxy server.
%prep
tar zxf $RPM_SOURCE_DIR/nginx-1.2.0.tar.gz
%build
cd nginx-1.2.0
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --lock-path=/var/run/nginx.lock --pid-path=/var/run/nginx.pid
make
%install
cd nginx-1.2.0
make install
%preun
if [ -z "ps aux | grep nginx | grep -v grep
" ];then
pkill nginx >/dev/null
exit 0
fi
%files
/usr/local/webserver/nginx
第四步:RPM包制作
首先系統要安裝好必備的制作工具:gcc、rpmbuild等
yum -y install gcc rpm-build pcre-devel
cd /usr/src/redhat/SPECS/
rpmbuild -bb nginx.spec
通過上面這條命令,會在/usr/src/redhat/RPMS/x86_64/下面生成nginx-1.2.0-1.el5.ngx.x86_64.rpm這個文件
-bb 這個選項就是制作二進制包(build binary package only from <specfile>)
對spec文件內容進行簡單說明:
spec文件是制作rpm包的核心!
以#開頭的是註釋信息;
Summary:對相關軟件進行簡單描述說明
Name:定義rpm包的名稱
Version:定義軟件的版本號
Release:發行版本
License:定義許可證
Group:說明軟件屬於哪種應用類型
Source:軟件源碼下載地址
URL:軟件相關官方站點
Distribution: 發行版系列
Packager: 制作人的簡單信息
%description:軟件詳細描述信息
%prep:軟件編譯之前的處理
%build:編譯軟件
%install:安裝軟件
%preun:定義卸載之前的動作
%files:指定要打包的軟件包,這裏是/usr/local/webserver/nginx
對於更詳細的說明請參考官方資料:http://www.rpm.org/max-rpm/ch-rpm-inside.html
下面是apache的spec文件實例:
spec file for apache
Build 2012-07-17
By opsren
Summary: High stability web server
Name: Apache
Version: 2.2
Release: 22.el5
License: 2-clause BSD-like license
Group: Applications/Server
Source: http://apache.etoak.com/httpd/httpd-2.2.22.tar.gz
URL: http://apache.org
Distribution: Centos/Redhat
Packager: qiuzhijun <[email protected]>
%description
Apache is a first web server
%prep
tar zxf $RPM_SOURCE_DIR/httpd-2.2.22.tar.gz
%build
cd httpd-2.2.22
./configure --prefix=/usr/local/webserver/apache --enable-so --enable-deflate --enable-headers --enable-mods-shared=all --enable-rewrite
make
%install
cd httpd-2.2.22
make install
%preun
if [ -z "ps aux | grep httpd | grep -v grep
" ];then
pkill httpd >/dev/null
exit 0
fi
%files
/usr/local/webserver/apache
以後對於相同或類似平臺可以到其它服務器上進行rpm安裝部署。
另外還有一種rpm打包的方法:rpm_create
這是一種新的打rpm的工具,不用spec語言,只需要會簡單的shell命令,即可完成打包操作,非常方便,結合了spec語言和checkinstall,相比spec方法要簡單很多
2018-1-9 5周2次課