tar,cpio,rpm,yum的使用詳解(適合初學者)

基于linux下的tar包管理和yum源配置

友情提示:對于這些實際操作的,還是需要進行手工的嘗試,由于這幾個對于包管理的是比較常用和實用的,

所以,一定要熟練使用。

1.tar

tar是對于系統中文件,目錄等進行打包,解包的工具。tar也可以對文件進行打包存放到別的目錄下,

所以在很早的時候,一些老的工程師經常使用tar對文件進行備份。很大程度上,所謂的tar包也指備份。

tar的的文本格式為:tar [option]

(1).創建歸檔(通俗的說就是進行打包)

tar -c -f /PATH/TO/SOMEFILE.tar FILE #前面打包的名稱必須以.tar 結尾,其中-c -f可以縮寫為cf,

#因為后面跟隨為文件名,所以-f是必須要加的。打包到指定的目錄下直接在SOMEFILE.tar前加路徑就可以了。

再者就是,如果后面的文件加絕對路徑時系統會提示“/”,由于有/根目錄的話進行解包時如果根目錄下有相同的

文件名會進行覆蓋,為避免這種情況系統會提示,如果忽略提示在參數中加上-P (大寫)

(2).查看歸檔文件中的文件列表 (預覽)

tar -t -f /PATH/TO/SOMEFILE.tar

(3).展開歸檔(通俗的說就是進行解包)

tar -x -f /PATH/TO/SOMEFILE.tar

#  tar也可以結合壓縮工具(bzip2,gzip,xz)進行打包和解包

-j :bzip2 ,-z :gzip -J: xz 

(4).展開歸檔到別的目錄下

tar -x  -f /PATH/TO/SOMEFILE.tar -C /otherfile  #使用-C(大寫)后面跟目錄可以把文件

#解包到特定目錄下,不加-C的情況下默認為當前目錄。

tar1.png

補充:

2.cpio

cpio 可以理解為copy input/ouput,從中可以看出來這個命令是和copy有關的,是實現復制功能的。

它是通過重定向的方式對文件進行打包備份,還原恢復的。它可以解壓以 .cpio 和 .tar 結尾的文件。

其格式為:

cpio [選項] > 文件名或者設備名

cpio [選項] < 文件名或者設備名

[選項]:

-o :將文件拷貝打包成文件或者將文件輸出到設備上

-i :解包,將文件進行解包或者將備份還原到系統上

-t :預覽, 查看文件內容或者輸出到設備上的文件內容

-d :解包生成目錄,在cpio還原時自動建成目錄

-c :一種較新的存儲方式

將etc目錄備份: (備份到當前所在的目錄下)

find ./etc -print |cpio -ov >etc.cpio

? 內容預覽

cpio –tv < etc.cpio

? 要解包文件

cpio –iv <etc.cpio

cpio –idv < etc.cpio

cpio.png

3.rpm

tar是歸檔,rpm包是安裝軟件

rpm包就相當于exe

yum是管理rpm包的

可以自動解決包與包的依賴關系

rpm管理單個軟件包的

比如:

rpm -ql 顯示包安裝的路徑

rpm -qf 顯示文件屬于那個包

yum沒這功能

安裝:

rpm { -i |install} [install-option]PACKAGE_FILE…

-h :hash, 以#來表示安裝進度

-v :–verbose 顯示安裝過程中的詳細信息

-vv :顯示更加詳細的信息 -vvv是一樣的效果

–test :不自信真正的安裝過程,而僅報告依賴關系以及沖突信息;

–nodeps :忽略依賴關系,副作用是能安裝成功,但未必能運行成功。

–replacepkges :覆蓋安裝–重新安裝并覆蓋原有的文件

–force:強制安裝

安裝時常用的組合有:-ivh ,-ivvh

升級:

rpm {-U|–upgeade}[install-option] PACKAGE_FILE

-U:升級或者安裝

rpm {-F|–freshen}[install-option] PACKAGE_FILE

-F :升級

組合使用: -Uvh -Fvh

并覆蓋原有的文件

–test :不自信真正的安裝過程,而僅報告依賴關系以及沖突信息;

–nodeps :忽略依賴關系,副作用是能安裝成功,但未必能運行成功。

–replacepkges :覆蓋安裝–重新安裝并覆蓋原有的文件

–oldpackage: 降級到舊版本

卸載:

rpm {-e|–erase}[–allmatches][–test]PACKAGE_NAME

簡單的用法就是:rpm -e PACKAGE_NAME

–nodeps :忽略依賴關系,副作用是能安裝成功,但未必能運行成功

–allmatches :如果一個程序包同時安裝多個版本,則此選項一次全部卸載

–test :測試卸載;dry-rum模式

查詢:

查詢某包是否安裝,以及檢查安裝的所有包,還可以查看某包的詳細信息

rpm {-q | –query} [select-option][query-option]

[select-option]:

1.查詢某包或者某些包是否安裝:

rpm -q PACKAGE_NAME

2.查詢已經安裝的所有包

rpm -qa

3.查詢某文件是由哪個包安裝生成

rpm -qf /PATH/TO/SOMEFILE

4.查詢尚未安裝的包文件的文件列表

rpm -qpi PACKAGE_FILE

[query-option]:

1.查詢某包的簡要說明信息

rpm -qi PACKAGE_NAME

2.查詢某包安裝生成的文件列表

rpm -ql PACKAGE_NAME

3.查詢某包安裝完成后生成的所有的幫助文件

rpm -qd PACKAGE_NAME

4.查詢某包安裝完成后的生成的所有的配置文件

rpm -qc PACKAGE_NAME

5.查看某包提供的capabilities

rpm -q –changelog PACKAGE_NAME

腳本有四類:

preinstall:安裝過程開始之前執行的腳本

postinstall:安裝過程完成之后執行的腳本

preuninstall:卸載開始之前執行的腳本

postuninstall:卸載完成之后執行的腳本

校驗:

rpm {-V|–verify}[select-option][verify-option]

常見的用法: rpm -V PACKAGE_NAME ,當沒有輸出結果時表示軟件包完整ok,當有相應的結果輸出表明對應的內容有修改。

S :文件的容量大小是否被改變 M:文件的類型或者文件的屬性(rwx)是否被改變? 如是否可運行等參數已經被改變

5 :MD5這一種指紋碼的內容已經不同 D:裝置的主/次 代碼已經改變 L:link路徑已經被改變

U:文件的所屬人已被改變 G :文件的所屬組已經被改變 T: 文件的創建時間已經改變 P:caPabilities differ

創建rpm管理器的數據庫:

rpm {–initdb|–rebuilddb} [-v][–depath DIRECTORY]

–initdb :初始化數據庫,即數據庫完全不存時,可新建。。

–rebuilddb:無論當前數據存在與否,都會直接重建此庫;構建的數據庫存放在/var/lib/rpm中。

4.yum

yum 的配置文件有2種:  

       /etc/yum.conf:為所有倉庫提供公共配置

       /etc/yum.repos.d/*.repo:為倉庫的指向提供配置

  

  

***   一般而言xx.d目錄下的文件就是.conf文件的補充

  

這個yum默認在etc/下 ,需要分清楚yum.conf文件 和yum.repo目錄下文件的作用,其中yum.conf 是yum的各種配置及信息,

yum.repo是對yum源的設定。yum.conf是通過yum.repo目錄下以.repo為后綴的文件中的路徑中提供的文件包的信息進行提供

yum服務的。

倉庫配置文件路徑 /etc/yum.repos.d/*.repo

對于yum源的配置是在/etc/yum.conf/目錄下通過新建一個以 .repo為后綴的文件進行編譯,其中base 名稱

還有baseurl路徑是必需要有的。其中gpgcheck是對路徑的合法性進行檢測的,如果其值為0,意味著不檢測

yum源的來源路徑,其值為1時進行檢測;不寫默認為0,使用#進行注釋會為1。

使用yum repolist 可以查看當前yum的源。

使用yum clean all 可以清理yum的緩存

使用yum makecache 可以生成緩存:作用為:裝軟件包時它會自動和yum源repo對比,不一樣會自動創建元數據。

yum倉庫的組成部分:

          1.數據 :包含所有的軟件包文件

          2.元數據:指的是數據文件:包括每個包的包名、版本信息、各包所包含的文件列表、包與包之間的依賴關系、

包的分組信息.

yum倉庫管理:

yum repolist :列出已經配置idea所有可用倉庫。

yum repolist [all|enabled |disabled]

yum緩存管理:

yum clean :清理緩存

yum lean [packages |metadata|xpire-cache|rpmdb|plugins|all]

yum makecache :創建緩存,自動連接至每一個可用倉庫,下載其沒有的數據,將其創建為緩存。

程序包查看:

yum list [all|glob_expl][glob_exp2][…]

yum grouplist [hidden][groupwildcard][…]

yum list{available|updates|installed|extras|obsoletes} [glob_expl][…] 

程序包安裝:

yum install packages [packages2]…

注意:

1.只需要提供包名

2.如果某包有在不同的倉庫中有多個不同的版本,默認會安裝最近的版本

3.如果要安裝制定的版本: install PACKAGE-VERSION

重新安裝(覆蓋原來的安裝):

yum reubstall package1 package2 …

程序包升級:

yum update package1 package2…

程序包降級:

yum downgrade package1 package2 …

檢查有哪些升級可用:

yum check-update 

程序包卸載:

yum remove|erase package1 package2…

注意: 所有依賴于正在卸載的程序包的程序包也會一并卸載。

安裝或者升級本地的程序包文件:

yum localinstall rpmfile1 rpmfile2…

yum localupdate rpmfile1 rpmfile2…

用于安裝或升級中并不存在的程序包文件,這些程序包有可能又依賴于倉庫中的某些程序包

包組管理:

列出所有的包組: yum grouplist 

顯示指定包組詳情: yum groupinfo group1 group2…

安裝:yum groupinstall group1 group2 …

卸載:yum groupmove group1 group2 …

升級: yum groupdate group1 group2 …

注意: 也可直接使用install remove update  來管理包組,此時需要在組名前面加@符號,

如:yum install @"server platform develpment"

——————————————————————————

制作yum源是及其重要的,應該我們在網絡配置的時候會經常安裝一些軟件包,而一旦我們的yum源出現問題,我們需要會重新的進行配置。

  1. 在配置yum源時 ,我們先需要找一個yum的鏡像網站 ,比如:http://mirrors.aliyun.com/centos/aliyun.png

然后再/etc/yum.repo.d/目錄下新建一個以.repo 結尾的文件,對.repo 的文件進行編譯,其中yum源的基名是必須要寫的,還有的就是路徑是一定要寫的。

寫好了之后可以使用yum clean all 清除一下之前yum源所留的緩存,防止對當前的yum源造成影響,再使用yum repolist 查看一下當前的yum源的基名是不是

重新安裝的,如果是的話可是安裝兩個程序包進行檢測一下。

yum2.png

原創文章,作者:zhong,如若轉載,請注明出處:http://www.www58058.com/38072

(0)
zhongzhong
上一篇 2016-08-21 20:46
下一篇 2016-08-21 20:46

相關推薦

  • linux第一周學習

      一周過去了,這周學習并新認識了不少內容。由一開始的萌逼狀態,逐步清晰的認識了不少內容。相信我會越來越好的。 文件與目錄 touch touch newfile         創建空文件touch oldfile          更新文件的三個…

    Linux干貨 2017-09-02
  • N26第二周博客作業

    1.Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 ?  ls 查看文件與目錄 ls [選項] 文件或目錄 常用選項 -a:全部的文件,連同隱藏文件(以.開頭)一起列出來 -d:列出目錄本身,而不是列出目錄里的文件 -l:列出詳細信息,如文件的屬性與權限等數據 -h:將文件容量以易讀的方式顯示(例如:GB,KB等) -t:…

    Linux干貨 2017-01-08
  • bash編程尾聲

    數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 數組名和索引     索引:編號從0開始,屬于數值索引     注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引, bash4.0版本之后開始支持。  &nb…

    Linux干貨 2016-08-25
  • 從Linux小白到大?!c狼共舞的日子9

    馬哥教育網絡班21期+第9周課程練習 1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; [root@localhost ~]# cat shell.sh  #!/bin/bash # declare…

    Linux干貨 2016-12-05
  • rsyslog同步history日志

    前言   由于公司業務是由公司內部開人員及外包團隊共同開發,所以需要使用rsyslog對history日志做收集、審計。雖然搭建及配置非常簡單,但是在日常運維工作中很實用,所以記錄下,方便日后快速搭建。如果有錯誤,望大神指正。 syslog簡介 syslog是Linux系統默認的日志守護進程。默認的syslog配置文件是/etc/sysl…

    Linux干貨 2015-04-03
  • 【招聘】北京/互聯網/運維工程師/7-15K/雙休,五險一金

    崗位職責:   1、負責服務器的規劃、調試優化、日常監控、故障處理、數據備份、日志分析等工作;   2、參與運維流程制定,確保任何突發情況都能高效響應;  3、負責服務器部署,對服務器構架和網絡進行優化和改進;  4、負責運維相關數據的收集、分析和總結;  5、負責技術運維相關的文檔、手冊…

    Linux干貨 2016-04-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-21 22:07

    文檔壓縮,yum源的配置,rpm包管理工具的使用是基本技能,需要熟練掌握,其中rpm的查詢語句是最為常用需要多加練習,熟練使用。

欧美性久久久久