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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux yum及yum仓库

發布時間:2025/3/15 linux 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux yum及yum仓库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

source:?http://www.mamicode.com/info-detail-564351.html


標簽:yum yum倉庫配置

1. yum的由來

????為了解決程序間的依賴關系,RedHat曾推出了一款名為update的工具。這款工具雖然達到了目的,但用戶體驗并不是很好。后來一個基于RedHat的二次發行版yellowdog,由此也推出了一個工具:yellowdog update modifier,簡寫為yum. 由于比update好用,于是便流行開來。后來導致RedHat也棄update不用而使用yum


2. yum的特性

????yum相對于rpm來說:rpm為基礎包管理器,yum則是rpm的前端工具。yum無法獨立存在

????系統不允許有兩個yum命令同時運行,如果有兩個,第二次運行時會報錯。這是為了防止yum之間的沖突


3. yum的工作方式

????yum工作需要依賴C/S架構工作模式的文件服務器,服務器中存放了yum工作時所需的程序包。yum接收到需要安裝的程序包的名稱之后,通過文件共享協議(或者文件傳輸協議),在配置文件中指向的yum倉庫(可以是多個)中查詢需要的程序包。找到之后,通過文件下載協議,將程序包下載至本地yum的緩存目錄中,當安裝完成后,緩存目錄便會被刪除

????但如果yum每次到yum倉庫都需要遍歷,就會導致速度很慢。而yum倉庫中有兩類數據:程序和程序的元數據。yum倉庫在創建時,會將所有程序的名字、大小、版本以及依賴關系這類的屬性信息提取出來并保存至repodata目錄中。所以在yum第一次訪問yum倉庫時,會獲取倉庫中元數據(repodata),并下載至本地。因此,下次需要安裝程序包時,只需從本地緩存中獲得信息,直接到倉庫下載即可

??? 如何保持本地緩存repodata和服務器端的repodata實時同步呢?yum每次訪問倉庫都會先獲取repodata目錄中每個文件的特征碼,并與本地的進行比較,如果不相同,就重新下載并覆蓋


4. yum的配置文件

????指向倉庫的位置以及相關的各種配置信息。每個yum命令行可以同時指向多個倉庫,倉庫間可以進行優先級等相關配置,優先級是由開銷決定的

??? 配置文件有兩部分組成:主配置文件以及各倉庫的配置文件。因為如果所有的配置信息都放在一個文件中就顯得太臃腫、不方便。其中主配置文件所在路徑為/etc/yum.conf,它為各倉庫指向提供公共配置文件;而各倉庫的配置文件所在路徑為:/etc/yum.repos.d/*.repo,里面都是以賦值的格式存在

  • 主配置文件

[root?~]#?cat?/etc/yum.conf????#?查看主配置文件 [main]???#?所有倉庫公共的配置 cachedir=/var/cache/yum/$basearch[p1]?/$releasever????#?緩存目錄 keepcache=0????#?程序包在安裝完成后不再保存至緩存中 debuglevel=2????#?程序安裝時的輸出信息,數字越大輸出信息越多。生產環境中關閉最好,但是開啟可以讓我們快速定位安裝中出現問題的所在 logfile=/var/log/yum.log????#?日志文件 exactarch=1????#?安裝程序的版本和當前平臺保持一致 obsoletes=1????#?檢查包已被廢棄 gpgcheck=1????#?檢查來源合法性和包完整性,還應該有個gpgkey,用于指明倉庫的公鑰文件從哪獲取,但這是公共配置,而配置倉庫都不相同,所以不放在這里 plugins=1???#?支持插件 installonly_limit=5????#?一次安裝的程序包限制5個 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php???category=yum????#?bug追蹤的路徑 distroverpkg=centos-release????#?判定當前系統的信息#?This?is?the?default,?if?you?make?this?bigger?yum?won‘t?see?if?themetadata #?is?newer?on?the?remote?and?so?you‘ll"gain"?the?bandwidth?of?not?having?to #?download?the?new?metadata?and"pay"?for?it?by?yum?not?having?correct #?information. #??Itis?esp.?important,?to?have?correct?metadata,?for?distributions?like #?Fedora?which?don‘t?keep?old?packagesaround.?If?you?don‘t?like?this?checking #?interupting?your?command?line?usage,?it‘smuch?better?to?have?something #?manually?check?the?metadata?once?an?hour(yum-updatesd?will?do?this). #?metadata_expire=90m#?PUT?YOUR?REPOS?HERE?OR?IN?separate?filesnamed?file.repo #?in?/etc/yum.repos.d????#?可以往下附加配置信息,也可以放在各配置文件中 #?可通過man?yum.conf進行詳細查看
  • 各配置文件

[root?~]#?cat/etc/yum.repos.d/CentOS-Media.repo????#?隨便打開一個倉庫的配置文件 [c6-media]????#?id,最好能夠見名知意,并且必須唯一 name=CentOS-$releasever?-?Media????#?當前倉庫的描述信息 #mirrorlist=????#?可以將所有的鏡像站點url寫入一個文件,然后指向這個文件,然后會挑一個速度最快的來使用。一般不和baseurl一起使用 baseurl=ftp://????#?指向倉庫的路徑,指向多個備用http://????#?備用的路徑不能頂格寫,至少需要有1個空格file:///media/cdrecorder/ gpgcheck=1????#?此處定義的優先級更高,需要和gpgkey配合 enabled=0???#?此倉庫不被使用 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6??? cost=????#?優先級,數字越小表示開銷小,優先級越高。默認1000 [media]????#?第二個倉庫


5. yum命令

  • -y:自動回答為yes

  • list:列出所有倉庫中的程序包,支持通配符

    • all:所有程序包

    • available:可用的,倉庫中有尚未安裝的

    • installed:已經安裝的

  • clean:清理緩存。yum緩存路徑:/var/cache/yum/

    • yum clean all:清除所有緩存信息,但不會清除目錄

  • repolist:顯示倉庫列表及其簡要信息

    • all:所有的倉庫

    • enabled:已經啟用的倉庫

    • disabled:未啟用的倉庫

  • install:安裝

    • yum install [-y] PACKAGE_NAME

  • remove|erase:卸載。和此程序包有依賴性的其他包也會被一并卸載

  • infoPACKAGE ...?:查詢程序的相關簡要信息。這個包裝不裝都沒有關系,只要倉庫中有就行

  • grouplist:列出所有包組

  • groupinstall:安裝包組

    • 可直接用install、remove或update來管理包組,在包組前面加@用以區分:yuminstall @"Server Platform Development"


6. 配置基于centos發行光盤rpm包的yum倉庫

  • 安裝createrepo命令

[root?Packages]#?yum?install?-y?createrepo
  • 掛載鏡像光盤,上一篇博客中有提到怎么加載并掛載鏡像

[root?Packages]#?mount?-r?/dev/cdrom?/mnt/
  • 使用creatrepo命令創建存放程序包元數據的repodata目錄。因此,創建的時指向的路徑必須是存放rpm包的路徑

[root?Packages]#?mkdir?/var/repo #?新建目錄進行rpm包存放 [root?Packages]#?cd?/var/repo?? [root?repo]#?cp?/mnt/Packages/*?. #?文件很多,需要等會 [root?repo]#?createrepo?/var/repo/ Spawning?worker?0?with?4184?pkgs Workers?Finished Gathering?worker?results Saving?Primary?metadata Saving?file?lists?metadata Saving?other?metadata Generating?sqlite?DBs Sqlite?DBs?complete #?恩,總算創建好了,等的時間夠長 [root?repo]#?cd?repodata/ [root?repodata]#?ls 318f1b79bc13b0daf243cdf4fad87af1e49fef06920b74f135e3d6d9af3a3abf-primary.sqlite.bz2 5015d87cfb7d1484fc9949b398c5d2d4916cb5c257939be34d0b9595e3bd734d-filelists.xml.gz 62d8a6fade0ecb892b8a58601665a77c95f5c278d57927274f9d3afef8378119-filelists.sqlite.bz2 75d262ab21744dd239762ac72543a4ebe74c7b7bd333dd7a96ff0a4636814144-primary.xml.gz 81cdd7de2b2e08780255e5c7e711f0499fc0f2e01e322e4f05b03f61434ea2f7-other.sqlite.bz2 fad987423b71003dbf3661f6bc4f51f50584c4fb0881b6506ccf7baf99c7aa1d-other.xml.gz repomd.xml #?這些就是元數據信息了 [root?repodata]#?cd?/etc/yum.repos.d/ [root?yum.repos.d]#?vim?centos6.6.repo #?新建配置文件,必須以repo結尾!或者就用里面現成的也行 [test2] name=fuck?me baseurl=file:///var/repo enabled=1 gpgcheck=0 #?上面講到了,這里就不重復了,保存退出! [root?yum.repos.d]#?yum?repolist Loaded?plugins:?fastestmirror,?refresh-packagekit,?security Loading?mirror?speeds?from?cached?hostfile test2?????????????????????????????????????????????????????????????????????????????????|?2.9?kB?????00:00?...? repo?id????????????????????????????????????????????repo?name???????????????????????????????????????????status test???????????????????????????????????????????????epel????????????????????????????????????????????????4,184 test1??????????????????????????????????????????????epel???????????????????????????????????????????????????41 test2??????????????????????????????????????????????fuck?me?????????????????????????????????????????????4,184 repolist:?8,409 #?成功顯示
  • 到此,本地yum倉庫配置完畢!但可以將其作為FTP服務器給其他用戶提供服務

[root?yum.repos.d]#?yum?install?-y?vsftpd #?下載FTP服務 [root?yum.repos.d]#?service?vsftpd?start #?啟動服務 [root?yum.repos.d]#?cd?/var/ftp/pub/ #?這是FTP默認目錄,啟動服務后自動創建 [root?pub]#?mv?/var/repo?. [root?pub]#?ls repo [root?pub]#?vim?/etc/yum.repos.d/centos6.6.repo baseurl=ftp://172.16.249.135/pub/repo/? #?就改這一項,必須指向repodata所在的路徑 [root?pub]#?service?iptables?stop #?關閉防火墻 #?可以在瀏覽器下ftp://172.16.249.135/pub/repo/查看了
  • 配置完畢,這個可以說是最傻瓜式的ftp配置了,因為這里只是講yum。另外還可以將其做成http服務器,方法基本一樣


????END

總結

以上是生活随笔為你收集整理的linux yum及yum仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

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