rpm和yum

 1、rpm的安裝

rpm {-i|--install} [install-options] PACKAGE_FILE…
-v: verbose
-h: 以#顯示程序包管理執行進度
rpm -ivh PACKAGE_FILE ...

[install-options]
--test: 測試安裝,但不真正執行安裝; dry run模式
--nodeps:忽略依賴關系
--replacepkgs | replacefiles
--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
--noscipts:不執行程序包腳本片斷
%pre: 安裝前腳本; --nopre
%post: 安裝后腳本; --nopost
%preun: 卸載前腳本; --nopreun
%postun: 卸載后腳本; --nopostun

2、rpm升級

升級:

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: 強行升級

注意:
(1) 不要對內核做升級操作; Linux支持多內核版本并存,因此,對直接安裝新版本內核
(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名
(FILENAME.rpmnew)后保留

3、rpm包查詢

rpm {-q|--query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p rpmfile:針對尚未安裝的程序包文件做查詢操作;
--whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供
--whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴

rpm2cpio 包文件|cpio –itv 預覽包內文件? 
rpm2cpio 包文件|cpio –id “ *.conf” 釋放包內文件 cpio對于非選項參數,被看成模式匹配
    
[query-options]
--changelog:查詢rpm包的changelog
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝后生成的所有文件;
--scripts:程序包自帶的腳本片斷
-R: 查詢指定的程序包所依賴的CAPABILITY;
--provides: 列出指定程序包所提供的CAPABILITY;

用法
查詢用法:

-qi PACKAGE, -qf FILE, -qc PACKAGE, -qlPACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ...
-qa

卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

4、rpm包校驗

rpm {-V|--verify} [select-options] [verify-options]
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 mTime differs
P capabilities differ

包來源合法性驗正及完整性驗正:

完整性驗正: SHA256
來源合法性驗正: RSA

公鑰加密:
    對稱加密:加密、解密使用同一密鑰;
    非對稱加密:密鑰是成對兒的

public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
? 
導入所需要公鑰:
rpm -K|checksig rpmfile 檢查包的完整性和簽名rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7
發行版光盤提供: 
RPM-GPG-KEY-CentOS-7

rpm -qa gpg-pubkey*

5、rpm數據庫重建

數據庫重建:

/var/lib/rpm

rpm {--initdb|--rebuilddb}
initdb: 初始化如果事先不存在數據庫,則新建之否則,不執行任何操作
rebuilddb:重建無論當前存在與否,直接重新創建數據庫

YUM: Yellowdog Update Modifier, rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具

yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下)

文件服務器:
ftp://
http://

yum客戶端配置文件:

/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置

倉庫指向的定義:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
默認為: roundrobin,意為隨機挑選;
cost= 默認為1000

yum命令用法

1、yum-config-manager

生成172.16.0.1_cobbler_ks_mirror_CentOS-Xx86_64_.repo
yum-config-manager --add-repo=yum-config-manager --disable “倉庫名" 禁用倉庫
yum-config-manager --enable “倉庫名” 啟用倉庫

2、yum

顯示倉庫列表:

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 | whatprovides feature1 [feature2] [...]

清理本地緩存:
    clean [ packages | metadata | expire-cache |
    rpmdb | plugins | all ]
? 
構建緩存:
    makecache

搜索: search string1 [string2] [...]
    以指定的關鍵字搜索程序包名及summary信息
查看指定包所依賴的capabilities:
    deplist package1 [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

安裝及升級本地程序包:

* localinstall rpmfile1 [rpmfile2] [...](用instal替代)
* localupdate rpmfile1 [rpmfile2] [...](用update替代)
? 
包組管理的相關命令:
groupinstall group1 [group2] [...]
groupupdate group1 [group2] [...]
grouplist [hidden] [groupwildcard] [...]
groupremove group1 [group2] [...]
groupinfo group1 [...]

3、使用光盤做yum源

(1) 
掛載光盤至某目錄,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
 
(2) 創建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=

[root@ _163_ /media/Packages]# cat /etc/yum.repos.d/Centos_Base.repo 
[base]
name= jiaoshi_ftp
baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/
gpgcheck=0
enable=1

4、yum的命令行選項

yum
的命令行選項:

--nogpgcheck:禁止進行gpg check
-y: 自動回答為“ yes”
-q:靜默模式
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啟用此處指定的repo
--noplugins:禁用所有插件

5、yum倉庫

yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號
$arch: 平臺, i386,i486,i586,x86_64等
$basearch:基礎平臺; i386
$YUM0-$YUM9:自定義變量

創建yum倉庫命令:
createrepo [options] <directory>
實例:

 

 

 

 

原創文章,作者:M20-1--孔祥文,如若轉載,請注明出處:http://www.www58058.com/38312

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-21 20:46
下一篇 2016-08-21 20:46

相關推薦

  • Linux文本處理工具和正則表達式

    概述:     Linux核心哲學思想中很重硬件要的一條內容就是一切皆文件,在Linux系統上,無論硬件、軟件、配置文件等等一切,都以文件形式呈現出來。一般文件類型有:普通文件、目錄文件、鏈接文件、管道文件、套接字文件、字符設備文件、塊設備文件等。而普通文件里面又有一些文本文件、二進制文件等細分化的文件類型,而我們日?!?/p>

    Linux干貨 2016-08-07
  • 三次握手和四次揮手

    TCP三次握手:                              &n…

    2017-09-02
  • linux中find命令的那些事

         概述:在介紹find這個強大的文件查找命令前,我們先介紹兩個較簡單的文件查找命令whereis和locate命令,通常我們都是先使用whereis或者是locate檢查,如果真的找不到了,才用find來查找,因為whereis和locate是利用數據庫來查找數據的,速度相當快,節約時間,缺點就是有可…

    Linux干貨 2016-08-18
  • Zabbix 新版微信告警 [2017]

    Zabbix 新版微信告警 Zabbix 新版微信告警 date 2017-06-14zabbix Zabbix可以通過多種方式把告警信息發送到指定人,常用的有郵件,短信報警方式,但是越來越多的企業開始使用zabbix結合微信作為主要的告警方式,這樣可以及時有效的把告警信息推送到接收人,方便告警的及時處理。 關于郵件報警可以參考: Zabbix 使用腳本發送…

    2017-06-17
  • 馬哥教育Net20第二十二天:在Centos7上實現lmnp

    要求: vhost1: pma.stuX.com, phpMyAdmin, 同時提供https服務; vhost2: wp.stuX.com, wordpress vhost3: dz.stuX.com, Discuz  環境說明: DNS是:192.168.100.7 vhos…

    Linux干貨 2016-07-02
  • 重構與模式:改善代碼三部曲中的第三部

    一、改善代碼的三部曲    《設計模式》-> 《重構》-> 《重構與模式》。也就是設計->重構->重構出新設計。    《設計模式》主要詳細說明20幾種模式,為我們帶來了常見設計問題的經典解決方案,從而改變了整個面向對象開發的面貌。為設計而著。    《重構》改善既有代碼的設…

    Linux干貨 2015-04-07
欧美性久久久久