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
下一篇 2016-08-21

相關推薦

  • MySQL入門書籍和方法分享

    原文:http://cenalulu.github.io/mysql/mysql-book-for-newbie/           作者: 盧鈞軼     本文羅列了一些適用于MySQL及運維入門和進階使用的書籍。 背景:各大論壇上總是…

    Linux干貨 2015-04-09
  • tomcat

    tomcat 簡述 tomcat的結構 tomcat配置 總結與問題 簡述 什么是tomcat? tomcat是一個java2ee的web容器的殘缺實現,提供了serverlet,asp轉換等組件。 tomcat的功能? tomcat能夠將asp文件通過轉換,轉換為serverlet格式,這樣子就可以被java識別運行并將結果轉為asp響應,并且tomcat…

    2016-06-24
  • nginx_http_proxy,upstream,stream模塊簡析

    一. ngx_http_proxy_module模塊:         模塊功能: 為后端httpd服務做反向代理, 并且與Httpd 之間使用http進行通信       1、proxy_pass URL;  &nbs…

    Linux干貨 2016-10-29
  • 馬哥教育網絡21期+第七周練習博客

    馬哥教育網絡21期+第七周練習博客 1、創建一個10G分區,并格式為ext4文件系統; 首先掛載一個新的硬盤使用fdisk /dev/sdb進入相應的磁盤空間劃分一個10G的磁盤空間; Command (m for help): n Command action    …

    Linux干貨 2016-08-22
  • LVS NAT + Keepalived HOWTO

    LVS NAT + Keepalived HOWTO   這篇文章主要講解了,基于LVS/NAT,安裝,運行與檢測keepalived 目錄     1、什么是keepalived?     2、規劃你的網絡 &nbsp…

    Linux干貨 2015-09-21
  • N22-第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i log_user declare -i notlog_user while read&n…

    Linux干貨 2016-10-24
欧美性久久久久