日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux_09 Linux软件包管理 rpm与yum

發布時間:2024/4/30 linux 95 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux_09 Linux软件包管理 rpm与yum 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux軟件包管理 rpm與yum

  • 文件的壓縮與打包
  • rpm安裝軟件
  • yum安裝刪除軟件
  • yum進階

一、 文件的打包 與壓縮

  • 壓縮:指通過某些算法,將文件尺寸進行相應的縮小,同時不損失文件的內容。
  • 打包:指將多個文件(或目錄)合并成一個文件,方便傳遞或部署。
  • 壓縮文件或打包文件常見的擴展名:.tar, .tar.gz, .gz, .bz2 , .tar.bz2, .Z;linux系統一般文件的擴展名用途不大,但是壓縮或打包文件的擴展名是必須的,因為linux支持的壓縮命令較多,不同的壓縮技術使用的壓縮算法區別較大,根據擴展名能夠使用對應的解壓算法。
  • 常見的文件擴展名

    *.gz gzip程序壓縮的文件 *.bz2 bzip2 程序壓縮的文件 *.Z compress(舊的加密算法,目前基本不用) 程序壓縮的文件 *.tar tar命令打包的數據,并沒有壓縮過 *.tar.gz tar程序打包的文件,并且經過 gzip 的壓縮 *.tar.bz2 tar程序打包的文件,并且經過 bzip2 的壓縮
  • 常見的壓縮\打包命令

    compress壓縮效率低下,壓縮比也較差,幾乎已經不再使用 gzip 與 bzip2 gzip比bzip2性能好,但bzip2可以獲得更高壓縮比。 tar可以將很多文件打包成為一個文件
  • gzip命令: 可以解壓compress 、 zip 、 gzip等算法壓縮的文件

  • 選項與參數

    -c :將壓縮的數據輸出到標準輸出(stdout)上 -d :解壓縮 -t :可以用來檢驗一個壓縮文件的一致性,看看文件有無錯誤 -v :可以顯示出原文件/壓縮文件的壓縮比等信息 -(1,2,...,9):壓縮等級,1最快,但是壓縮比最差;9最慢,但是壓縮比最好,默認是6。 -l :查看壓縮文件的壓縮比: gzip –l *.gz
  • 示例

    壓縮 命令 gzip -v install.log (如果不加 -v 則默認直接壓縮) 顯示 install.log: 76.8% -- replaced with install.log.gz 注意 : 源文件被壓縮之后 , 自動在源文件名后追加“.gz” , 源文件將不再存在解壓 命令 gzip -d install.log.gz 注意: 源文件被解壓之后 , 自動將源文件名后的“.gz”刪掉 , 源文件將不再存在 。 壓縮或解壓縮之后保留源文件 命令 gzip -c install.log > install.log.gz 查看源文件是否存在 ll | grep install
  • zcat查看壓縮文件的內容

  • cat可以讀取純文本文件,那么zcat則可以讀取純文本文件被壓縮后的壓縮文件
  • 示例

    [root@root tmp]# zcat *.gz #查看全部內容 [root@root tmp]# zcat *.gz |head -n #查看前n行
  • bzip2命令

  • gzip 是為了取代 compress 并提供更好的壓縮比,那么 bzip2 則是為了取代 gzip 并提供更佳的壓縮比而來的。
  • 選項與參數

    -c :將壓縮的過程產生的數據輸出到標準輸出(stdout) -d :解壓縮的參數 -k :保留源文件,而不會刪除原始的文件 -f :強制壓縮 -z :壓縮的參數(有無均可) -v :可以顯示出原文件/壓縮文件案的壓縮比等信息; -(1,2,...,9) :與gzip同樣的,都是在計算壓縮比的參數,-9壓縮率最佳,-1壓縮速度最快
  • 示例

    壓縮 [root@root tmp]# bzip2 -z install.log #刪除源文件 [root@root tmp]# ls install* install.log.bz2 [root@root tmp]# bzip2 -zk install.log#保留源文件 解壓 [root@root tmp]# bzip2 -d install.log.bz2 #刪除源文件 [root@root tmp]# bzip2 -dk install.log.bz2 #不刪源文件
  • compress、uncompress(僅做了解,目前已不用,當前系統內核已不提供該命令)

  • 選項與參數

    -r :可以連同目錄下的文件也同時給予壓縮 -c :將壓縮數據輸出成為standard output -v :可以列出壓縮后的文件信息以及壓縮過程中的一些文件名變化
  • tar命令

  • 選項與參數

    -c :建立打包文件, -t :查看打包文件的內容含有哪些文件 -x :解打包或解壓縮的功能,可以搭配-C(大寫)在特定到特定目錄解開 -j :通過bzip2的支持進行壓縮/解壓縮:此時文件最好為 *.tar.bz2 -z :通過gzip的支持進行壓縮/解壓縮:此時文件最好為 *.tar.gz -v :在壓縮/解壓縮的過程中,將正在處理的文件名顯示出來 -f filename:-f 后面跟處理后文件的全名稱(路徑+文件名+后綴名) -C 目錄:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個 選項 -p :保留備份數據的原本權限與屬性,常用于備份(-c)重要的配置文件 --exclude=FILE:在壓縮的過程中,不要將那些文件打包 注意 -c, -t, -x 不可同時出現在一串指令列中
  • tar命令僅解壓壓縮包中的某一個文件 ,如:shell文件

    1、查詢shells文件在壓縮包中是否存在tar –ztv –f [/路徑/]filename.tar.gz|grep ‘shells’[root@root ~]# tar -ztv -f /tmp/etc01.tar.gz |grep 'shells’或[root@root tmp]# tar -ztv -f etc01.tar.gz |grep 'shells'2、僅解壓出shells文件 [root@root tmp]# tar -zxv -f etc01.tar.gz etc/shells 解壓后在/tmp下生產一個etc文件夾,etc下有shells文件 3、僅解壓出etc/yum目錄:也可以解壓壓縮包中的某一個子目錄
  • 二、 rpm安裝軟件

  • RPM(RedHat Package Manager)安裝管理

    這個機制最早是由Red Hat開發出來,后來實在很好用,因此很多 distributions(發行版)就使用這個機制來作為軟件安裝的管理方式 。包括Fedora,CentOS,SuSE等等知名的開發商。 例如:CDH(Cloudera Distributed Hadoop,Cloudera公司的 Hadoop發行版)提供rpm包(省略部分詳細版本號),使得在 Linux上安裝Hadoop這樣的分布式系統變得更加簡單: hadoop-mapreduce-2.5.0xx.rpm hadoop-mapreduce-historyserver-2.5.0xx.rpm hadoop-yarn-2.5.0xx.rpm
  • RPM的優點

    RPM內含已經編譯過的程序與配置文件等數據,可以讓用戶免除重 新編譯的困擾 RPM在被安裝之前,會先檢查系統的硬盤容量、操作系統版本等,可 避免文件被錯誤安裝 RPM文件本身提供軟件版本信息、相依屬性軟件名稱、軟件用途說明、軟件所含文件等信息,便于了解軟件 RPM管理的方式使用數據庫記錄 RPM 文件的相關參數,便于升級 、移除、查詢與驗證
  • RPM的默認安裝路徑

    /etc 一些配置文件放置的目錄,例如/etc/crontab /usr/bin 一些可執行文件 /usr/lib 一些程序使用的動態鏈接庫 /usr/share/doc 一些基本的軟件使用手冊與說明文件 /usr/share/man 一些man page(Linux命令的隨機幫助說明)文件
  • rpm安裝命令

  • rpm -ivh package_name
  • 選項與參數

    -i :install的意思 -v :察看更細部的安裝信息畫面 -h :顯示指令執行過程。
  • 示例: rpm 按裝JDK

    使用wget http://rpmfind.net/linux/rpm2html/search.php?query=lrzsz,下載lrzsz-0.12.21-15.x86_64.rpm 將所需要的JDK rpm包下載到本地執行rpm -ivh jdk-8u111-linux-x64.rpm 執行完成之后 鍵入 java -version 查看是否安裝成功 這里并不是自動為我們配置了環境變量 具體看這里http://blog.csdn.net/qq_31246691/article/details/79331355 但是有些特定的場合下是需要java的環境變量的 , 最好還是自己也配置一遍: [root@root ~]# vim /etc/profile 加入內容如下:export JAVA_HOME=/usr/java/jdk1.8.0_111 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH [root@root ~]# source /etc/profile [root@root ~]# java -version java version “1.8.0_111?“
  • rpm升級與更新

    rpm -Uvh <package_name> -Uvh后面接的軟件如果沒有安裝過, 系統會直接安裝,若后面接的軟件安裝過但版本較舊,則更新至新版 [root@localhost soft]# rpm -Uvh jdk-8u111-linux-x64.rpm Preparing... ########################################### [100%]package jdk1.8.0_111-2000:1.8.0_111-fcs.x86_64 is already installed rpm -Fvh <pacakge_name> -Fvh如果后面接的軟件并未安裝到Linux系統上,則該軟件不會被安裝,只有已安裝的軟件才會被升級
  • rpm查詢

  • 簡單原理:

    簡單原理:rpm在查詢的時候,其實查詢的地方是在/var/lib/rpm/ 這個目錄下的數據庫文件 [root@localhost ~]# ll /var/lib/rpm/ total 58272 -rw-r--r--. 1 root root 5500928 Mar 8 20:27 Basenames -rw-r--r--. 1 root root 12288 Mar 4 23:06 Conflictname -rw-r--r-- 1 root root 24576 Mar 8 20:42 __db.001 -rw-r--r-- 1 root root 229376 Mar 8 20:42 __db.002
  • rpm查詢已安裝軟件

  • 選項與參數

    -q :僅查詢,后面接的軟件名稱是否有安裝 -qa :列出所有的,已經安裝在本機Linux系統上面的所有軟件名稱 !!! -qi :列出該軟件的詳細信息,包含開發商、版本和說明等 !! -ql :列出該軟件所有的文件與目錄所在完整文件名 !! -qc :列出該軟件的所有配置文件 ! -qd :列出該軟件的所有說明文件 -qR :列出和該軟件有關的相依軟件所含的文件 -qf :由后面接的文件名,找出該文件屬于哪一個已安裝的軟件 查詢某個 RPM 文件內含有的信息: -qp[icdlR]: 注意 -qp 后面接的所有參數以上面的說明一致。但用途僅在于找出 某個 RPM 文件內的信息,而非已安裝的軟件信息
  • rpm檢查

    -V :后面加軟件名稱,若該軟件安裝之后被改動過,會列出被修改過的 文件。!! -Va :列出目前系統上面rpm安裝的所有包中被修改過的文件。! -Vp :后面加的是rpm文件名,列出rpm包中的文件在當前系統中是否修改。 -Vf :列出某個文件(直接列出軟件包安裝之后的文件名)是否被改動過。!!
  • rpm 卸載

    找出與apr有關的軟件名稱,并嘗試移除apr這個軟件 [root@root ~]# rpm -qa | grep apr apr-1.3.9-5.el6_2.x86_64 [root@root ~]# rpm -e apr [root@root ~]# rpm -qa | grep apr
  • 三、 yum安裝 、 刪除 、 更新軟件

  • 為什么要有yum?

  • rpm頭疼的依賴關系 (例如安裝某個游戲時)

    當安裝一個rpm包時,發現它依賴于其它的rpm包,只能先去下載及安裝這個依賴包。 當這樣的依賴關系非常復雜時,一個個rpm安裝對于大數據工程師來說,安裝這件事演變成一個災難。 卸載,也一樣!刪除某個rpm包時,如果有其它的rpm依賴于它,也得先刪掉他們。如果有一個集中的地方管理多如牛毛的rpm,簡化“下載+解決依賴問題+安裝”這樣的繁瑣步驟,該多好啊
  • yum

    yum是通過分析RPM的標頭資料后,根據各軟件的相關性制作出屬 性相依時的解決方案,然后可以自動處理軟件的依賴問題,以解決軟 件安裝、移除、升級中遇到的繁瑣操作的問題
  • 基本配置 /etc/yum.repos.d
  • yum查詢

    search :查詢某個軟件名稱或者是描述的關鍵字 list :列出目前yum所管理的所有的軟件名稱與版本,有點類似 rpm -qa info :同上,格式不太一樣,不過有點類似 rpm -qai 的執行結果 查找jdk相關軟件包 [root@root yum.repos.d]# yum search jdk 查看beakerlib軟件包功能 [root@root yum.repos.d]# yum info beakerlib 列出 yum 服務器上面提供的所有軟件的詳細信息(20條) [root@root yum.repos.d]# yum info | head -20 列出 yum 服務器上面提供的所有軟件名稱(100條) [root@root yum.repos.d]# yum list |head -100 列出目前服務器上可供本機進行升級的軟件有哪些 [root@root yum.repos.d]# yum list updates !!! 列出目前服務器上xz.x86_64可更新版本 [root@root yum.repos.d]# yum list updates|grep xz.x86_64
  • yum 安裝/升級/卸載軟件

    yum [install | update | remove] 軟件名 install :后面接要安裝的軟件 update :后面接要升級的軟件,若要整個系統都升級,就直接update即可 remove:刪除某個軟件時,依賴于該軟件并已經安裝到系統中的 其它軟件或者包,會被一并刪除(rpm方式刪除某個包時,如果依賴于該包的其它包之前也被安裝到系統中,刪除不會成功,需要先手動刪除那些包. )在安裝過程中有時會出現 需要輸入y/n確認的情況 在確定的情況下 使用 yum [install | update | remove] -y 跳過所有的選擇 , 默認為選擇yes
  • 四 、 yum進階

  • yum服務器與客戶端架構圖
  • yum客戶端運行機制

    客戶端每次使用yum調用?install或者search的時候,都會去解析/etc/yum.repos.d下面所有以.repo結尾的文件,這些配置文件指定了yum服務器的地址。 yum會定期去“更新”yum服務器上的rpm “清單” ,然后把“清單”下載保存到yum自己的cache里面,根據/etc/yum.conf里配置(默認是在/var/cache/yum/$basearch/$releasever下、即/var/cache/yum/x86_64/6),每次調用yum安裝包的時候都會去這個cache目錄下去找“清單”,根據“清單”里的rpm包描述從而來確定安裝包的名字,版本號,所需要的依賴包等,如果rpm包的cache不存在,就去yum服務器下載rpm包安裝。
  • yum配置文件信息

    [root@localhost soft]# cd /etc/yum.repos.d [root@root yum.repos.d]# cat CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [base] ?:代表容器的名字,中括號是必須帶的,里面名字可以自定義,但不能有兩個相同的名字,否則yum找不到相關的軟件列表 name:只是描述容器 mirrorlist: “#”注釋掉 baseurl:容器的固定地址 gpgcheck:gpg驗證是否開啟, 1是開啟,0是不開啟;“開啟”會讓yum檢查每個下載的RPM的GnuPG簽名。這么做是因為你需要適當的GnuPG key注冊到您的RPM數據庫。可以防止被欺騙,如:非法入侵發行版網站,木馬導入軟件包,使不知情用戶下載 gpgkey:數字證書公鑰文件所在位置
  • yum服務器端

    所有要發行的rpm包都放在yum服務器上以提供別人來下載,rpm包根據kernel的版本號,cpu的版本號分別編譯發布。yum服務器只要提供簡單的下載就可以了,ftp或者httpd的形式 都可以。yum服務器有一個最重要的環節就是整理出每個rpm 包的基本信息,包括rpm包對應的版本號,conf文件,binary 信息,以及很關鍵的依賴信息。在yum服務器上提供 了createrepo工具,用于把rpm包的基本概要信息做成一張"清 單",這張"清單"就是描述每個rpm包的spec文件中信息。 ?
  • 總結

    以上是生活随笔為你收集整理的Linux_09 Linux软件包管理 rpm与yum的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。