作業(練習)內容:
1、總結rpm和yum實現程序包的管理功能.
要求:作業要圖文並茂
一、RPM包管理的用途;
1、可以安裝、刪除、升級和管理軟件;當然也支持在線安裝和升級軟件;
2、通過RPM包管理能知道軟件包包含哪些文件,也能知道系統中的某個文件屬於哪個軟件包;
3、可以在查詢系統中的軟件包是否安裝以及其版本;
4、作爲開發者可以把自己的程序打包爲RPM 包發佈;
5、軟件包簽名GPG和MD5的導入、驗證和簽名發佈
6、依賴性的檢查,查看是否有軟件包由於不兼容而擾亂了系統;
二、RPM 的使用權限;
RPM軟件的安裝、刪除、更新只有root權限才能使用;對於查詢功能任何用戶都可以操作;如果普通用戶擁有安裝目錄的權限,也可以進行安裝;
三、rpm 的一點簡單用法;
我們除了軟件包管理器以外,還能通過rpm 命令來安裝;是不是所有的軟件包都能通過rpm 命令來安裝呢?不是的,文件以.rpm 後綴結尾的才行;有時我們在一些網站上找到file.rpm ,都要用 rpm 來安裝;
RPM數據庫在/var/lib/rpm
RPM數據庫的建立可以利用rpm --rebuilddb命令。
安裝選項參數
命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 將要安裝的RPM包的文件名
通用選項
rpm -i /PATH/TO/PACKAGE_FILE:安裝軟件包
rpm -h :以#顯示安裝進度,每個#表示2%
rpm -v :顯示安裝詳細信息
rpm -vv :更詳細的信息
rpm -ivh :一般都是組合使用
--root 讓RPM將指定的路徑做爲"根目錄",這樣預安裝程序和後安
裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件爲
--dbpath 設置RPM資料庫存所在的路徑爲
上圖其中zsh-5.0.2-7.el7.x86_64.rpm是你要安裝的rpm包的文件名,一般置於當前目錄下。
詳細選項:
-h (or --hash) 安裝時輸出hash記號(``#'')
--test 只對安裝進行測試,並不實際安裝。
--percent 以百分比的形式輸出安裝的進度。
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬於其它軟件包的文件
--force 忽略軟件包及文件的衝突
--noscripts 不運行預安裝和後安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關係
--ftpproxy 用 作爲 FTP代理
--ftpport 指定FTP的端口號爲
這裏列出幾個常用的:
rpm --nodeps:忽略依賴關係。
rpm --replacepkgs|repackage:重新安裝、替換原來安裝。
rpm -ivh --oldpackage:降級安裝。
rpm -ivh --force:強行安裝,可以實現重裝或降級
rpm --test:僅測試有沒有依賴關係
查詢:
rpm {-q|--query} [select-options] [query-options]
查詢選項:
-qa: 查詢本機已經安裝的所有程序包;
-qf /PATH/TO/SOMEFILE: 查詢此處的文件由哪個程序包安裝生成;
如果某個rpm包尚未安裝,我們需要查詢其說明信息,安裝後會生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE
-qc: 查詢指定程序包安裝生成的配置文件
-qd: 查詢指定的程序包安裝生成的文檔
-qi: 查詢指定的程序包的相關信息;
-ql: 查詢程序包安裝生成的所有文件的列表;
查看軟件包的文檔所在的位置;
語法: rpm -qpd file.rpm
查看一個軟件包的依賴關係
語法: rpm -qpR file.rpm
-q --scripts:查詢程序包相關的腳本:
preinstall: 安裝前腳本
postinstall:安裝後腳本
preuninstall: 卸載前腳本
postuninstall: 卸載後腳本
-p: 查詢針對是未安裝的程序包文件;
升級:
rpm{-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options]PACKAGE_FILE ...
-Uvh: 如果有舊版程序包,則升級之;如果沒有,則安裝之;
-Fvh:如果有舊版程序包,則升級之;如果沒有,則不安裝;
--nodeps
--oldpackage:降級;
--force:
卸載:
rpm {-e|--erase} [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...
校驗:
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions andfile 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
包校驗:
來源合法性驗正:非對稱加密
完整性驗正:單向加密
導入密鑰:rpm --import /PATH/TO/KEY_FILE
校驗:rpm -K /PATH/TO/RPM_FILE
校驗都OK 的
YUM: Yellowdog Updater Modified
yum repositories:
文件服務器:
yum程序的配置文件:
/etc/yum.conf
定義全局配置:對所有倉庫都適用的配置
/etc/yum.repos.d/*.repo
一個文件通常用於一個或一組功能相近或相關的倉庫
定義一個倉庫指向:
[REPO_ID]
name=
baseurl=
#mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE
enabled={1|0}
gpgcheck={1|0}
gpgkey=
cost=
定義倉庫指向可用變量:
$releasever:引用當前系統的主版本號;
$basearch:當前系統的基本架構;
i386, i486, i586, i686: i386
http://mirrors.magedu.com/CentOS/$releasever/os/$basearch
默認情況下:yum 安裝好後的rpm包會被自動清除,如果我們想不自動清除的話,
[root@jesse ~]# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1 #將這裏的0修改爲1
debuglevel=2
#保存退出
#我們安裝好後的軟件存放的位置:/var/cache/yum/base/packages
創建本地倉庫:
yum installcreaterepo
createrepo/PATH/TO/RPMFILES/
這裏發現報錯了,錯誤顯示連接不到那個地址,爲什麼會出現這樣的情況咧,是因爲在/etc/yum.conf文件,裏面有包含/etc/yum.repo.d/下面的配置,如下圖:
yum命令:
yum [options][command] [package ...]
命令:
安裝:install
卸載:remove
升級:update
查詢:
Info
searchKEYWORD
listall|installed|availiable
provides/PATH/TO/SOMEFILE: 查詢指定文件由哪個包安裝生成
重新安裝:reinstall
降級:downgrade
清理緩存:clean [ packages | metadata | expire-cache| rpmdb | plugins | all ]
生動生成緩存:makecache
包組:
Grouplist 列出所有包組
groupinfo"GRP_NAME" 查看包組
groupinstall"GRP_NAME" 安裝包組
groupremove"GRP_NAME" 移除包組
倉庫:
repolist[all|enabled|disabled]
repoinfo[all|enabled|disabled]
如何使用光盤當做本地倉庫:
掛載光盤至某目錄
定義倉庫,使用file:///指明其訪問路徑;