rpm 與 yum 的用法
源代碼:name-VERSION.tar.gz|bz2|xz
VERSION: major.minor.release
?rpm包命名方式:
name-VERSION-release.arch.rpm
例:bash-4.2.46-19.el7.x86_64.rpm
VERSION: major.minor.release
release:release.OS
常見的arch:
x86: i386, i486, i586, i686
x86_64: x64, x86_64, amd64powerpc: ppc
跟平臺無關:noarch
包:分類和拆包
Application-VERSION-ARCH.rpm: 主包
Application-devel-VERSION-ARCH.rpm開發子包
Application-utils-VERSION-ARHC.rpm其它子包
Application-libs-VERSION-ARHC.rpm其它子包
解決依賴包管理工具:
yum:rpm包管理器的前端工具
apt-get:deb包管理器前端工具
zypper: suse上的rpm前端管理工具
dnf: Fedora 18+ rpm包管理器前端管理工具
獲取程序包的途徑
1)系統發版的光盤或官方服務器;
2)項目官方站點
3)第三方組織
Rpmforge:RHEL推薦
搜索引擎:
4)自己制作
注意:檢查其合法性:來源合法性,程序包的完整性
CentOS系統上使用rpm命令管理程序包:
安裝、卸載、升級、查詢、校驗、數據庫維護
安裝:
rpm {-i|–install} [install-options] PACKAGE_FILE…
-v: verbose 過程顯示
-vv: 詳細過程顯示
-h: 以#顯示程序包管理執行進度
rpm -ivh PACKAGE_FILE ..
[install-options]
–test: 測試安裝,但不真正執行安裝;dry run模式
–nodeps:忽略依賴關系
–replacepkgs| replacefiles
–nosignature: 不檢查來源合法性
–nodigest:不檢查包完整性
–noscipts:不執行程序包腳本片斷
%pre: 安裝前腳本;–nopre
%post: 安裝后腳本;–nopost
%preun: 卸載前腳本;–nopreun
%postun: 卸載后腳本;–nopostun
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則不執行升級操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降級
–force: 強行升級
rpm {-q|–query} [select-options] [query-options]
?[select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p rpmfile:針對尚未安裝的程序包文件做查詢操作;
–whatprovidesCAPABILITY:查詢指定的CAPABILITY由哪個包所提供
–whatrequiresCAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
?
[query-options]
–changelog:查詢rpm包的changelog
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝后生成的所有文件;
–scripts:程序包自帶的腳本片斷
-R: 查詢指定的程序包所依賴的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
如果刪除某個命令的文件 而不想重新安裝 只想安裝其包中的一個 就要用到一下兩個命令
rpm2cpio 包文件|cpio–itv預覽包內文件
?rpm2cpio 包文件|cpio–id “*.conf”釋放包內文件
查詢用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …
-qa
?卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …
rpm -e 包名
rpm {-V|–verify} [select-options] [verify-options]
rpm -V 包名
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTimediffers
P capabilities differ
導入所需要公鑰:
rpm -K|checksigrpmfile檢查包的完整性和簽名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7
rpm -qagpg-pubkey*
數據庫重建:
/var/lib/rpm
?rpm {–initdb|–rebuilddb}
initdb: 初始化 (較為安全推薦)
如果事先不存在數據庫,則新建之
否則,不執行任何操作
rebuilddb:重建
無論當前存在與否,直接重新創建數據庫
文件服務器:
ftp://
http://
file:///
yum客戶端配置文件:
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
倉庫指向的定義:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}默認1
gpgcheck={1|0}默認1
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
默認為:roundrobin,意為隨機挑選;
cost= 默認為1000
yum-config-manager –disable “倉庫名" 禁用倉庫
yum-config-manager –enable “倉庫名” 啟用倉庫
顯示倉庫列表:
?repolist[all|enabled|disabled]
?顯示程序包:
?list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1] […]
?安裝程序包:
install package1 [package2] […]
reinstall package1 [package2] […] (重新安裝)
升級程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降級)
?檢查可用升級:
check-update
?卸載程序包:
remove | erase package1 [package2] […]
查看程序包information:
info […]
?查看指定的特性(可以是某文件)是由哪個程序包所提供:
provides | whatprovidesfeature1 [feature2] […]
?清理本地緩存:
clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]
?構建緩存:
makecache
搜索:search string1 [string2] […]
以指定的關鍵字搜索程序包名及summary信息
?查看指定包所依賴的capabilities:
deplistpackage1 [package2] […]
?查看yum事務歷史:
history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
?日志:/var/log/yum.log
安裝及升級本地程序包:
* localinstallrpmfile1 [rpmfile2] […]
(用install替代)
* localupdaterpmfile1 [rpmfile2] […]
(用update替代)
?包組管理的相關命令:
groupinstallgroup1 [group2] […]
groupupdategroup1 [group2] […]
grouplist[hidden] [groupwildcard] […]
groupremovegroup1 [group2] […]
groupinfogroup1 […]
如何使用光盤當作本地yum倉庫:
?(1) 掛載光盤至某目錄,例如/media/cdrom
# mount /dev/cdrom/media/cdrom
?(2) 創建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
yum的命令行選項:
–nogpgcheck:禁止進行gpgcheck
-y: 自動回答為“yes”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件
yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號
$arch: 平臺,i386,i486,i586,x86_64等
$basearch:基礎平臺;i386
$YUM0-$YUM9:自定義變量
?實例:
http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
?創建yum倉庫:
createrepo[options] <directory>
C代碼編譯安裝三步驟:
1、./configure:
(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile
(2) 檢查依賴到的外部環境
2、make:根據makefile文件,構建應用程序
3、make install:復制文件到相應路徑
?開發工具:
autoconf: 生成configure腳本
automake:生成Makefile.in
?注意:安裝前查看INSTALL,README
1安裝包組
yum groupinstall "Development tools"
2下載并解開源碼包
tar xvf httpd-2.2.29.tar.bz2
3 ./configure
./configure –prefix=/usr/local/http2 –sysconfdir=/etc/http2
4 make
5 make install
6 啟動web服務程序
netstat -atn
./apachectl start
7 測試:關防火墻,瀏覽器訪問
iptables -vnL
iptables -F
yum install links
links 10.1.252.192
原創文章,作者:Nicolas ZhaoIV,如若轉載,請注明出處:http://www.www58058.com/36498