使用yum管理RPM軟件包

yum概念

  • 對比rpm命令,rpm命令須要手動尋找安裝該軟件包所須要的一系列依賴關係。當軟件包須要卸載時,容易因爲卸載掉了某個依賴關係而致使其餘的軟件包不能用。
  • yum(Yellow dog updaterModified)起初由TerraSoft研發的,其宗旨是自動化地升級、安裝和刪除RPM軟件包,收集RPM軟件包的相關信息,檢查依賴性而且一次安裝全部依賴的軟件包,無須繁瑣地一次次安裝。

yum的關鍵之處是要有可靠的軟件倉庫,能夠是HTTP站點、FTP站點或者是本地軟件池,但必須包括rpm的header,header包括了RPM軟件包的各類信息,包括描述、功能、提供的文件以及依賴性等。正是收集了這些header並加以分析,其才能自動化地完成餘下的任務。python

yum的特色
  • 能夠同時配置多個軟件倉庫。
  • 簡潔的配置文件/etc/yum.conf
  • 自動解決安裝或者刪除RPM軟件包是遇到的依賴性問題
  • 使用yum很是方便
  • 保持與RPM數據庫的一致性。
repo是yum源軟件倉庫的配置文件

默認存儲在/etc/yum.repos.d目錄中linux

例如:方括號[]裏面是軟件源的名稱,會被yum識別;Centos是軟件倉庫的名稱,$releaserver定義了發行版本,baseurl是指定了軟件包來源,支持的協議有http://(HTTP網站)、ftp://(FTP網站)以及file:///(本地源)這三種。enabled表示倉庫中定義的源是否啓用,0表示禁用,1表示啓用。gpgcheck表示對從這個軟件倉庫中下載的RPM軟件包將進行GPG校驗,已肯定該軟件包的來源是有效和安全。gpgkey是定義用於校驗的GPG密鑰正則表達式

[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Sources.repo # CentOS-Sources.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # #  [base-source] name=CentOS-$releasever - Base Sources baseurl=http://vault.centos.org/centos/$releasever/os/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates-source] name=CentOS-$releasever - Updates Sources baseurl=http://vault.centos.org/centos/$releasever/updates/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras-source] name=CentOS-$releasever - Extras Sources baseurl=http://vault.centos.org/centos/$releasever/extras/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus-source] name=CentOS-$releasever - Plus Sources baseurl=http://vault.centos.org/centos/$releasever/centosplus/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
建立本地軟件倉庫

要在本地磁盤上建立本地軟件倉庫配置軟件倉庫配置文件,還要將linux系統安裝光盤中的軟件包複製到系統中。算法

  • 安裝軟件包 deltarpm、python-deltarpm和crearterepo軟件包 1.使用cd切換到linux系統按光盤軟件包目錄 2.再使用rpm -ivh [軟件包] 進行安裝。
  • 複製安裝包
  • 建立軟件出口配置文件

例如:建立配置文件/etc/yum.repos.d/rhel.repo內容以下shell

[root@localhost ~]# mkdir /root/yum.repos.d [root@localhost ~]# vi /root/yum.repos.d/rhel.repo [root@localhost ~]# cat /root/yum.repos.d/rel.repo cat: /root/yum.repos.d/rel.repo: No such file or directory [root@localhost ~]# cat /root/yum.repos.d/rhel.repo name=Red Hat Enterprise Linux 7 baseurl=file:///root/fhel enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
  • 使用createrepo命令建立軟件倉庫
[root@localhost ~]# createrepo /root/rhel 

若是提示createrepo命令不存在時執行如下命令數據庫

[root@localhost ~]# yum -y install createrepo 
yum命令能夠安裝、更新、刪除、顯示軟件包。yum能夠自動進行系統更新,基於軟件倉庫的元數據分析,解決軟件包依賴性關係。

命令語法:yum [選項] [命令]centos

選項 含義
-y 安裝過程全部問題都回答yes
-q 安靜模式操做
-v 顯示詳細信息
-c<配置路徑> 指定配置文件路徑
-x<軟件包> 排查指定軟件包
--nogpgcheck 禁用GPG簽名檢查
--installroot=路徑 設置安裝根目錄路徑

yum目錄部分描述緩存

命令 描述
install<軟件包名> 按指定的軟件包
reinstall<軟件包名> 從新安裝軟件包
search<軟件包名> 經過給定的字符串搜索軟件包
list 列出目前yum所管理的全部的軟件包名稱和版本
list <軟件包名> 列出指定軟件包安裝狀況
list installed 列出全部已安裝的軟件包
ist installed<正則表達式> 列出軟件倉庫中與正則表達式匹配的因此已經安裝的軟件包
list extras 列出全部已安裝但不在yum軟件倉庫內的軟件包
list extras<正則表達式> 列出與正則表達式匹配的已安裝的但不包含在軟件倉庫中的軟件包
list updates 列出全部可更新的軟件包
list updates<正則表達式> 列出軟件倉庫中與正則表達式匹配的全部能夠更新的軟件包
list aviailable 列出軟件倉庫中全部能夠安裝的軟件包
list aviailable<正則表達式> 列出軟件倉庫中與正則表達式匹配的全部能夠安裝的軟件包
list recent 列出最近被添加到軟件倉庫中的軟件包
info 列出目前yum所管理的全部的軟件包名稱、版本和詳細信息
info<軟件包名> 列出指定的軟件包安裝狀況和詳細信息
info installed 列出全部已安裝的軟件包和詳細信息
info extras 列出全部已安裝但不在yum軟件倉庫內的軟件包
info updates 列出全部可更新的軟件包信息
provides<軟件包> 查找提供指定內容的軟件包
deplist<軟件包名> 查看知道軟件包的依賴關係
update 所有更新
update<軟件包名> 更新指定的軟件包
check-update 檢查可更新的軟件包
upgrade<軟件包名> 更新指定的軟件包
updateinfo 顯示軟件倉庫更新信息
localupdate<軟件包名> 本地更新軟件包
remove<軟件包名> 刪除指定軟件包
erase<軟件包名> 從系統中刪除一個或多個軟件包
clean packages 清除緩存目錄下的軟件包
clean headers 清除緩存目錄下的頭文件
clean 清除緩存數據
clean all 清除緩存目錄下的軟件包及舊的頭文件
version 顯示機器或可用倉庫的版本
shell 運行交互式的yum shell
history 顯示yum使用歷史
load-transaction 從文件名加載保存的事物
makecache 生成數據緩存
repolist 顯示配置的軟件倉庫
resolvedep 肯定哪一個軟件包提供了給定的依賴
distibution-synchronization 同步安裝的軟件包到最新版本
tar包:用戶將文件和目錄進行歸檔或壓縮以作備份用。好比:將許多文件一塊兒一個單獨的磁帶或磁盤歸檔,並能從歸檔中單獨還原所需文件

命令語法:tar [選項] [文件|目錄]安全

選項 含義
-c 建立新的歸檔文件
-A 追加tar文件支歸檔
-r 追加文件至歸檔結尾
-t 列出歸檔文件的內容,查看已經備份了那些文件
-u 僅追加比歸檔中副本更新的文件
-x 從歸檔文件中釋放文件
-f 使用歸檔文件或設備
-k 保存已經存在的文件。在還原文件時遇到相同的文件時,不會進行覆蓋
-m 不要解壓文件的修改時間
-M 建立多卷的歸檔文件,以便在幾個磁盤中存放
-v 詳細報告tar處理的信息
-w 每一步操做都要求確認
-C<目錄> 解壓縮到特定目錄
-z 經過gzip過濾歸檔
-j 經過bzip2過濾歸檔
-J 經過xz過濾歸檔
-a 使用歸檔後的後綴名來決定壓縮程序

例如:歸檔/root/abc目錄,生成文件爲/root/abc.tarless

[root@localhost ~]# tar cvf /root/abc.tar /root/abc tar: Removing leading `/' from member names /root/abc [root@localhost ~]# ls -l /root/abc.tar -rw-r--r--. 1 root root 10240 Jul 23 18:21 /root/abc.tar 

使用tar命令指定選項時能夠不在選項前面輸入-,好比cvf和-cvf起到做用是同樣的

例2:將文件/root/abc/d添加到/root/abc.tar歸檔文件中

[root@localhost ~]# touch /root/abc d [root@localhost ~]# tar rvf /root/abc.tar /root/abc/d tar: Removing leading `/' from member names tar: /root/abc/d: Cannot stat: Not a directory tar: Exiting with failure status due to previous errors [root@localhost ~]# tar tvf /root/abc.tar -rw-r--r-- root/root 282 2019-07-17 18:20 root/abc 
tar命令特殊使用:在打包或解包的同時調用其餘的壓縮程序,好比調用gzip、bzip2和xz等。
  • tar調用gzip

gzip是GNU組織開發的一個壓縮程序,以".gz「結尾的文件就是gzip壓縮的結果,與gzip想對應的解壓縮程序是gunzip、tar目錄中使用-z選項來調用gzip 例子:將/root/abc目錄壓縮成/root/abc.tar.gz文件

[root@localhost ~]# tar tvf /root/abc.tar -rw-r--r-- root/root 282 2019-07-17 18:20 root/abc [root@localhost ~]# tar zcvf /root/abc.tar.gz /root/abc tar: Removing leading `/' from member names /root/abc [root@localhost ~]# ls -l /root/abc.tar.gz -rw-r--r--. 1 root root 243 Jul 23 18:54 /root/abc.tar.gz 
  • tar調用bzip2

bzip2是一個壓縮能力更強的壓縮程序,以".bz2"結尾的我呢見就是bzip2壓縮的結果,與bzip相對應的解壓程序是bunzip2.

tar命令中使用-j選項來調用bzip2

例子:將/root/abc目錄壓縮成/root/abc.tar.bz2文件

[root@localhost ~]# tar jcvf /root/abc.tar.bz2 /root/abc tar: Removing leading `/' from member names /root/abc [root@localhost ~]# ls -l /root/abc.tar.bz2 -rw-r--r--. 1 root root 0 Jul 23 18:59 /root/abc.tar.bz2 
  • tar調用xz

xz是一個使用LZMA壓縮算法的無損數據壓縮文件格式,以".xz"結尾的文件就是xz壓縮的結果。tar目錄中使用-J選項來調用。

例子:將/root/abc目錄壓縮成/root/abc/tar.xz

[root@localhost ~]# tar Jcvf /root/abc.tar.xz /root/abc tar: Removing leading `/' from member names /root/abc [root@localhost ~]# ls -l /root/abc.tar.xz -rw-r--r--. 1 root root 300 Jul 23 19:07 /root/abc.tar.xz 

查看壓縮文件/root/abc.tar.xz

root@localhost ~]# tar Jtvf /root/abc.tar.xz -rw-r--r-- root/root 282 2019-07-23 18:47 root/abc 

將壓縮文件/root/abc.tar.xz文件解壓縮出來

root@localhost ~]# tar Jxvf /root/abc.tar.xz root/abc
-rw-r--r--. 1 root root 300 Jul 23 19:07 /root/abc.tar.xz 

查看壓縮文件/root/abc.tar.xz

root@localhost ~]# tar Jtvf /root/abc.tar.xz -rw-r--r-- root/root 282 2019-07-23 18:47 root/abc 

將壓縮文件/root/abc.tar.xz文件解壓縮出來

摘自:《Linux實用教程》人民郵電出版社出版發行 於嶽編著root@localhost ~]# tar Jxvf /root/abc.tar.xz root/abc
相關文章
相關標籤/搜索