tar、rpm和yum總結
tar工具
tar是Tape ARchive的縮寫,原意是磁帶歸檔,進行數據備份。在linux中,用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,方便網絡傳輸和備份數據。
tar不僅可以打包多個文件和目錄,還可以對打包完的數據包進行壓縮,進一步提升傳輸和備份質量。
選項
-c:設置新的備份文件
-t:列出備份文件的內容
-f:指定備份文件
-r:追加,添加文件到已經壓縮的文件
-x:從備份文件中還原文件
-C(目錄):這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項
-v:顯示操作過程
案例
[root@centos7 scripts]#tar -cf /server/backup1.tar /server/scripts/ <==把/server/scripts/下的所有文件打包
[root@centos7 server]#tar -zcf /server/backup2.tar.gz /server/scripts/ <==打包后,以 gzip格式壓縮
[root@centos7 server]#du -sh .
64K . <==原目錄大小
[root@centos7 server]#ls -lh
-rw-r–r–. 1 root root 20K Aug 3 09:34 backup1.tar <==只打包,未壓縮,20k
-rw-r–r–. 1 root root 1.3K Aug 3 09:36 backup2.tar.gz <==壓縮后的大小,僅為1.3k
在壓縮的時候,可以通過選項-v來查顯示打包的過程。上面例子中是選了一種壓縮方式,也可以通過其他壓縮方式進行壓縮,注意每種壓縮方式的后綴名不一樣。
推薦使用的壓縮方式
1:-j: bzip2(后綴名)
2:-z: gzip
3:-J: xz
在工作中我們可能會需要查看某個歸檔文件中的文件列表,甚至想添加文件到歸檔文件中并且不想解壓。通過tar也可以實現上述兩個問題.
[root@centos7 server]#tar -tf backup2.tar.gz <== -t可以實現查看文件列表(中間省略了一部分內容)
server/scripts/
server/scripts/.etc_2017-08-01.tar.gz
server/scripts/1.sh
server/scripts/test1.sh
server/scripts/08-01_expr.sh
[root@centos7 server]#tar -rf backup1.tar 1.txt <==-r 追加1.txt到打包文件中
[root@centos7 server]#tar -tf backup1.tar
server/scripts/
server/scripts/.etc_2017-08-01.tar.gz
server/scripts/1.sh
server/scripts/test.sh
server/scripts/test1.sh
server/scripts/08-01_expr.sh
1.txt <==可以看到新文件已經追加到包中,注意:不支持對壓縮文件的追加!
解壓包
tar -xf backup3.tar.bzip2 <==直接解壓到當前路徑
tar -xf backup3.tar.bzip2 -C /etc <==通過-C可以解壓到指定路徑
rpm
rpm軟件包的管理工具,專門針對linux中程序包的安裝、卸載、升級、查詢、校驗、數據庫維護。
選項
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p:針對尚未安裝的程序包文件做查詢操作
-i:顯示套件的相關信息
-h:以#顯示程序包管理執行進度
-c: 查詢程序的配置文件
-l:顯示套件的文件列表
-v:顯示指令執行過程
-vv:詳細顯示指令執行過程,便于排錯
rpm包管理
包文件組成: RPM包內的文件
RPM的元數據,如名稱,版本,依賴性,描述等
安裝或卸載時運行的腳本
數據庫(公共):/var/lib/rpm
程序包名稱及版本
依賴關系
功能說明
包安裝后生成的各文件路徑及校驗碼信息
管理程序包的方式:rpm,yum
獲取程序包的途徑:
(1) 系統發版的光盤或官方的服務器
CentOS鏡像:
https://www.centos.org/download/ <==國外官方網站,訪問較慢
http://mirrors.aliyun.com <==推薦使用國內服務器
http://mirrors.sohu.com
http://mirrors.163.com
(2) 項目官方站點:如apache,需要自己編譯安裝
(3)第三方組織:EPEL
推薦使用阿里云EPEL:http://mirrors.aliyun.com
案例
安裝
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
查詢包
1. [root@centos7 Packages]#rpm -q tree
tree-1.6.0-10.el7.x86_64
2. [root@centos7 rpm]#rpm -ql tree <==通過-l查看指定的程序包安裝后生成的所有文件,跟包名。如果跟文件名需用-p
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
3. [root@centos7 rpm]#rpm -qf /usr/bin/tree <==通過-f查看指定的文件由哪個程序包安裝生成
tree-1.6.0-10.el7.x86_64
卸載
rpm -e tree <==后面跟包名,不用寫完整的文件名
yum管理
相對于rpm來說,yum的優勢在可以自動處理依賴性關系,一次安裝所有依賴的軟體包。
yum客戶端配置
最小化配置
cd /etc/yum.repos.d/
vim base.repo <==創建一個repo的文件
[centos7] <==倉庫的名字ID
name=centos 7.3
baseurl=http://172.16.0.1/centos/7/ <==倉庫的路徑。本地光盤路徑file://misc/cd/(centos6)
gpgcheck=0 <==安裝時不檢查鑰匙,不寫或者為1安裝時需要–import,否則安裝報錯
gpgkey=http://172.16.0.1/centos/7/RPM-GPG-KEY-CentOS-7 <==上面不寫,也可以通過指定路徑名指定下載key
enabled=0 <==1和不寫代表啟用。如果當前環境沒網,可以=0暫時禁用
systemctl start autofs <==起自動掛載的服務,autofs需要安裝
cd /misc/cd <==cd目錄 通過df,可看到直接已經掛載
注意:baseurl可以是本地服務器,也可以是網絡epel源,比如阿里云、網易。
相關選項
yum repolist <==查看當前幾個倉庫,加all查看所有,不管禁用不禁用
yum list 包名 <==查看包名
yum remove <==卸載、
yum-config-manager –add-repo=file://misc/cdrom <==自動創建庫文件
—-disable “倉庫名” 禁用倉庫
–enable “倉庫名” 啟用倉庫
[misc_cdrom]
name=added from: file://misc/cdrom
baseurl=file://misc/cdrom
enabled=1 <==自動創建的內容列表
yum reinstall <==重新安裝
yum clean all <==清理倉庫數據 /var/cache/yum/x86_64/7/updates/packages/
yum info <==相當于rpm -qi 查看包的信息
如何卸載依賴包?
[root@centos7 ~]#yum history <==查看yum歷史
Loaded plugins: fastestmirror, langpacks
Repository ‘centos7’ is missing name in configuration, using id
ID | Login user | Date and time | Action(s) | Altered
——————————————————————————-
6 | root <root> | 2017-08-03 19:27 | Install | 1
5 | root <root> | 2017-08-03 19:26 | Erase | 1
4 | root <root> | 2017-08-03 17:50 | Install | 13
3 | root <root> | 2017-08-03 17:37 | Install | 1 <
2 | root <root> | 2017-08-03 17:31 | Install | 2 ><
1 | System <unset> | 2017-07-14 11:16 | Install | 1257 >
history list
[root@centos7 ~]#yum history undo 4 <==通過undo可取消相關的13個依賴包。redu 4重做第四步
使用光盤進行救援模式
內核被卸載后如何使用光盤進行救援?
1、卸載內核
[root@centos6 ~]#rpm -e kernel –nodeps <==忽略依賴性
2、重啟后發現已經沒有系統進入了。這時再重啟按住esc進入選擇啟動盤,這里選擇CD-ROM Drive
3、進入安裝菜單后選擇第三個
4、不設置網絡,選擇繼續
5、選擇第一項,開啟shell進入命令行
6、創建一個目錄掛載磁盤鏡像文件。注意此時的根并不是真正上我們系統的根,而是/mnt/sysimage,后面需要轉換。
7、進入光盤安裝內核,注意安裝路徑,這里需要指定–root=/mnt/sysimage/
8、除了上述方法外,還可以直接切根,現在的根就是真正意義上的根,現在裝的話不用–root=/mnt/sysimage/
9、兩次exit退出重啟設備,然后看到親切的系統啦!
原創文章,作者:eleven,如若轉載,請注明出處:http://www.www58058.com/83604