在CentOS或rhel下,軟體包的管理方式有三種:
一種是使用rpm安裝别人編譯好的軟體包,一種是使用yum,還有一種是使用編譯安裝
1、軟體包簡介
軟體包的組成部分:
二進制程式:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
庫檔案:/lib,/usr/lib,/usr/local/lib
配置檔案:/etc
幫助檔案:手冊(/etc/man.config),README,INSTALL(/usr/share/doc/)
軟體包管理工具:rmp,dpt
檔案清單
檔案放置、安裝路徑
提供的功能說明
依賴關系
安裝程式的方式:
通用二進制格式:直接展開就能使用
軟體包管理器
軟體包管理器的前端工具
源代碼編譯
rmp:打包、安裝、查詢、更新、校驗、解除安裝、資料庫管理(重建)
編譯安裝:源代碼
編譯器:gcc,g++
提供編譯環境:開發環境
二進制
庫:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
幫助手冊:/etc/man.config,man -M
檔案:/usr/include
源程式的命名:name-version.tar.{gz|bz2|xz}包名-版本号
版本号version:major.minor.release主版本号.次版本号.發行号(修正号)
主版本号通常用于辨別重大分支,通常而言,一個程式隻有做出重大改變,主版本号才會發生改變次版本号隻是部分功能發生改變發行号的目的主要是修複一些bug,調整一些工作屬性
bash-4.3.1.tar.xz
rpm包命名:name-version-release.arch.rpm包名-版本号-發行号
發行号release:是這個rpm包的軟體包自身的release号,跟程式沒有關系; 是用在辨別rpm包的制作者第幾次制作或第幾次修正rpm包的release号; 用于辨別rpm包本身的發行号,可還包含所使用的作業系統:el6:rhel6;centos6;el5;suse11
arch:主機平台
i686、x86_64、amd64、ppc、noarch
bash-4.3.2-5.el6.x86_64.rpm
rpm分包:
主包:核心包
分包:支包
bind
bind-devel
bind-chroot
OS:安裝程式
RedHat系列官方公鑰:
/etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6
2、使用rmp安裝軟體包
2.1、rpm選項
rpm -i /PATH/TO/RPM_FILE
-i:安裝軟體
-v,-vv,-vvv:顯示詳細資訊
-h:以#顯示安裝進度,一個#表示%2的進度
-ivh
-V 包名:校驗已安裝的軟體包
-K(或--checksig):驗證合法性
rpm -K zsh-4.3.10-7.el6.x86_64.rpm
--nodeps:忽略依賴關系
--test:測試安裝
--replacepkgs:重新安裝
-e 包名:解除安裝
-q|--query 包名:查詢
rpm -q zsh
-qa:查詢所有已經安裝包
rpm -qa | grep "pattern"
-qi 包名:查詢包的摘要資訊
-ql 包名:查詢包安裝生成的檔案清單
-qc 包名:查詢包安裝生成的配置檔案
-qd 包名:查詢包安裝生成的幫助文檔
-qf /path/to/some_file:查詢某檔案是由哪個rpm安裝生成的
-q --scripts 包名:查詢包安裝運作相關的腳本
preinstall:安裝前腳本
postinstall:安裝後腳本
preuninstall:解除安裝前腳本
postuninstall:解除安裝後腳本
-qpi /path/to/rpm_file:查詢尚未安裝的包的相關資訊
-qpi
-qpl
-qpc
-qpd
-qp --scripts
-U:更新+安裝
-F:更新
-Uvh
-Fvh
--force:強行更新
注意:核心不應該更新,應該盡可能安裝,它允許多版本并存
rpm包的資料庫:
/var/lib/rpm
重建rpm包資料庫:
--initdb:建立(不會覆寫原來的檔案)
--rebuilddb:重建(會覆寫原來的檔案)
2.2、rpm安裝示例
rpm -ivh package_name.rpm
如:本地安裝(要有軟體包對可以)
也可從網絡安裝
缺點不能自己解決軟體包依賴關系
3、使用yum安裝軟體包
3.1、yum簡介
源碼格式的rpm包:
打包:rpm的包制作過程是根據spec檔案來完成的
rpmbuild
yum:RPM前端工具
要想使用好yum,要先配置好yum倉庫和
yum repository yum倉庫
ftb,http,file
路徑:存放了rpm包
createrepo:
.repo
用戶端:
yum install|reinstall|remove
/etc/yum.conf
/etc/yum.repos.d/*.repo
section:
[main] []用做倉庫定義
[repository_ID]
name=
baseurl=
enableed={1|0}
gpgcheck={1|0}
gpgkey=
gpg:檢查rpm簽名
[base]
name=CentOS 6.4 x86_64
baseurl=http://192.168.1.20/cobbler/ks_mirror/centos-6.4-x86_64/
enabled=1
gpgcheck=1
yum用戶端:
yum SUBCOMMAND:
list {all|installed|available}
repolist [all|enabled|disabled]
info 包名:檢視包的摘要資訊
yum info zsh
grouplist:檢視目前yum源内有多少包組
groupinfo 包組名:檢視包組的相關安裝包
yum groupinfo "Development tools"
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
makecache:建立手動生成緩存
yum install package_name安裝包
-y:自動回答為yes
reinstall package_name重新安裝包
update 包名更新
update-to 包名 版本号
remove 包名解除安裝
provides whatprovides查詢某檔案是由哪個rpm安裝生成的
groupinstall組安裝
開發組:
RHEL6:"Development tools"、"Server Platform Development"、"Desktop Platform Development"
RHEL5:"Development tools"、"Development Libraries"
groupupdate更新
groupremove移除
localinstall指令:RHEL5用于本地安裝rpm包,而不是通過yum源來安裝rpm包
HEL6既可以用于本地安裝,也可以用于yum源安裝
--nogpgcheck:避免檢查來源軟體包的合法性
history:檢視此前安裝解除安裝等操作曆史
version
yum倉庫的建立:
lftp:
get:單檔案下載下傳
mget:多檔案下載下傳
mirror:鏡像一個目錄到本地
bye:退出
cd:切換
pwd:檢視目前在什麼位置
3.2、安裝示例
配置網絡yum源
配置isoCD光牒yum源
安裝
4、使用編譯安裝軟體包
autoconf --> configure腳本 + Makefile.in = makefile
automake --> Makefile.in
make install
編譯安裝步驟:
# cd SOURCE_CODE
# ./configure
檢查編譯環境是否完備
讓使用者定制編譯配置(通過腳本選項來完成)
--help
--prefix=/usr/local/apache指定預設安裝路徑
--sysconfdir指定配置檔案的存放位置
# make
# make install
庫檔案搜尋路徑:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
/usr/local/apache/lib
# ldconfig -v:重新搜多目前系統上所有庫檔案所搜路徑下的庫檔案,并生成緩存/etc/ld.so.cache
/usr/local/apache/conf
/etc/man.config,
MANPATH /usr/local/apache/share/man
頭檔案:
ln -s