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