1. 程式人生 > >yum的工作原理以及如何建立yum倉庫

yum的工作原理以及如何建立yum倉庫

一、yum的工作原理

    yum是一個RPM包的前端管理工具,在rpm包的依賴關係已經被建成資料庫的前提下,它能夠實現自動查詢相互依賴的rpm包,並從repository中下載互相依賴的rpm包到本地。

bubuko.com,布布扣

二、如何建立yum的倉庫repository

如果yumrepository不在同一臺主機上,那麼能夠為yum提供repository倉庫服務的遠端伺服器協議通常有兩類:(1ftp://2http://

如果yumrepository在同一臺主機上,那麼yum就可以直接到某個目錄中提取rpm包,而為了和遠端伺服器形成統一的風格,也會使用一個傳輸協議:file:///,因此如果倉庫建在根目錄

/下,那麼就可以使用file:///yum/這個路徑來提取檔案。

yum倉庫的建立,需要分成服務端和客戶端兩部分:

A.服務端

 將所有需要用到的rpm包存放於某個目錄之下,該目錄可以是遠端的(採用ftphttp協議),也可以是本地的(採用file協議)。目錄建立好了之後,使用createrpo命令來提取目錄下所有rpm包的元資料和依賴關係,生成一些xml格式的檔案,這些xml檔案會存放在repodata目錄下,至此,伺服器端repository就建立好了。注意repodata所在的位置,就是yum倉庫的位置(主要針對紅帽6,紅帽5repository會分成4個目錄,每個目錄下都有一個repodata)。

B. 客戶端

 客戶端的配置非常簡單,只需要使用yum及其子命令installreinstallremove即可。不過使用yum及其子命令之前,需要編輯配置檔案,以告知yum命令倉庫repository在什麼地方。這個配置檔案為:/etc/yum.conf。此外/etc/yum.repos.d/*.repo都被視為/etc/yum/conf的組成部分。

下面來檢視一下/etc/yum.conf

[[email protected] ~]# vim/etc/yum

yum/         yum.conf     yum.repos.d/

觀察yum.conf檔案,其中中括號是用來做倉庫定義的,中括號裡的內容,即為倉庫的名稱,但是

main除外,main是為其他倉庫提供預設配置的。倉庫可以有多個,但是main(全域性配置)只有一個

[[email protected] ~]# vim/etc/yum.conf

[main]
# 全域性配置,為其他倉庫定義預設值
cachedir=/var/cache/yum/$basearch/$releasever
# 快取目錄為/var/cache/yum/$basearch/$releasever
keepcache=0
# rpm包是否需要在本地長久儲存
debuglevel=2
# 除錯級別,執行過程中的資訊是否需要顯示
logfile=/var/log/yum.log
# 日誌檔案,記錄yum命令安裝過的檔案,執行過的操作等等,供以後檢索使用
exactarch=1
# 下載的軟體包是否需要和本地平臺完全匹配(1表示是,0表示否)
obsoletes=1
gpgcheck=1
# 下載rpm包之前是否需要自動進行來源(簽名)合法性檢測,1表示要檢查。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
 
# This is the default, if you make this bigger yum won‘t see if the 
# metadata is newer on the remote and soyou‘ll "gain" the bandwidth of not# having to download the new metadata and"pay" for it by yum not having 
# correct information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don‘t keep oldpackages around. If you don‘t like this 
# checking interupting your command lineusage, it‘s much better to have 
# something manually check the metadataonce an hour (yum-updatesd will 
# do this). metadata_expire=90m  
# PUT YOUR REPOS HERE OR INseparate files named file.repo
# in /etc/yum.repos.d

如果要定義yum的倉庫,可以在/etc/yum.repos.d下新建一個以repo結尾的檔案:

[[email protected] ~]# cd/etc/yum.repos.d/

[[email protected] yum.repos.d]#ls

CentOS-Base.repo  CentOS-Debuginfo.repo  
CentOS-Media.repo  CentOS-Vault.repo
# CentOS-Base.repo是最終會生效的配置檔案,建議先備份,然後對其進行修改

 配置檔案的主要內容有:

[Repository_ID]    ——倉庫的ID,可以取任意名字,只要不和其他的ID衝突即可

name=...               ——倉庫的描述資訊,長短不限,可以有空格,但是必不可少

baseurl=url           ——告訴yum客戶端,通過哪種路徑可以訪問到

enabled={1|0}       ——是否啟用這個倉庫0表示不啟用,1表示啟用,預設是啟用的

gpgcheck=1{1|0}  ——是否進行簽名合法性檢測,0表示不啟用,1表示啟用,預設啟用。

                     如果選擇啟用gpg檢查,則需要告知其key是什麼。

gpgkey=url            ——如果啟用gpg檢測,則需要指定gpgkey的路徑,即使匯入過gpgkey

                     這裡仍然需要手動為其指定路徑,這個路徑可以是遠端伺服器上的,

                     也可以是本地的,只要讓本地客戶端訪問到即可。

cost=1000             ——訪問的代價,定義了cost的,且數字較小的,會被優先訪問。

如果兩個倉庫裡的RPM包是一樣的,一個在遠端伺服器上,另一個在本地光碟上,那麼本地光碟的訪問速度通常會快於遠端伺服器上。在配置檔案中,我們可以定義這樣的兩個倉庫,為其中一個設定優先順序

下面來配置一個倉庫。為了避免其他的倉庫擾亂當前要定義的倉庫,在配置之前,先編輯一下原有的CentOS-Base.repo檔案:

[[email protected] yum.repos.d]#vim 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
enabled=0
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
enabled=0
# 將這個倉庫禁用即可

[[email protected] yum.repos.d]#vim base.repo

[base]
name=CentOS 6.4 x86_64
baseurl=http://mirror.centos.org/centos/6.5/os/x86_64/
enabled=1
gpgcheck=0

下面來檢測已經配置好的repository是否可以正常使用:

[[email protected] yum.repos.d]#yum list all | less
# list命令可以用來檢視倉庫裡的程式包,後文會詳解,這裡只做檢測用
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, refresh-packagekit, security
Repository base is listed more than once in theconfiguration
Loading mirror speeds from cached hostfile
Installed Packages
ConsoleKit.x86_64   0.4.1-3.el6 @anaconda-CentOS-201311272149.x86_64/6.5
# 軟體包名稱.平臺版本  版本號-發行號 @anaconda表示系統已經安裝了,來自於那個yum倉庫
ConsoleKit-libs.x86_64 0.4.1-3.el6 @anaconda-CentOS-201311272149.x86_64/6.5
ConsoleKit-x11.x86_64  0.4.1-3.el6 @anaconda-CentOS-201311272149.x86_64/6.5
apr.i686                 1.3.9-5.el6_2                    base
                                       # base表示該程式在base倉庫中,還沒有安裝
apr-devel.i686           1.3.9-5.el6_2                    base
apr-devel.x86_64         1.3.9-5.el6_2                    base
apr-util.i686            1.3.9-3.el6_0.1                  base

可以使用yum命令檢視repository裡的包,說明倉庫已經建好了。

 

相關推薦

yum工作原理以及如何建立yum倉庫

一、yum的工作原理     yum是一個RPM包的前端管理工具,在rpm包的依賴關係已經被建成資料庫的前提下,它能夠實現自動查詢相互依賴的rpm包,並從repository中下載互相依賴的rpm包到本地。 二、如何建立yum的倉庫repository 如果

yum工作原理

some align -s imp 描述 spa var set not yum工作原理 yum是一個RPM包的前端管理工具,在rpm包的依賴關系已經被建成數據庫的前提下它能夠實現自動查找相互依賴的人rpm包,並從repository中下載互相依賴的rpm包到本地。 Y

tomcat工作原理以及詳解操作

tomcat的工作原理及安裝mkdir /cdrom#創建掛載目錄mount -o loop tomcat.iso /cdromcp -a /cdrom/* .mkdir -p /ly/wwwtar -xf jdk-7u25-linux-i586.gz tar -xf apache-tomcat-7.0.42

Hibernate和Mybatis的工作原理以及區別

增刪改 緩存 .get poj 高效率 ron 大型網站架構 數據訪問 最簡 一、Mybatis的工作流程圖 (1)、原理詳見: MyBatis應用程序根據XML配置文件創建SqlSessionFactory,SqlSessionFactory在根據配置,配置來源於兩

純幹貨詳解iptables工作原理以及使用方法

rip -a sports 公網 寫法 內網ip 行處理 外部 是否 簡介 網絡中的防火墻,是一種將內部和外部網絡分開的方法,是一種隔離技術。防火墻在內網與外網通信時進行訪問控制,依據所設置的規則對數據包作出判斷,最大限度地阻止網絡中不法分子破壞企業網絡,從而加強了企業網絡

基於eMMC芯片技術特點工作原理以及控制器的設計方案

扇區 out 靈活性 可行性 校驗碼 ali 所有 配置 用戶 摘要: 介紹了eMMC芯片的技術特點、工作原理,以及控制器的設計方案。該設計基於Xilinx公司的Virtex6系列FPGA芯片,實現了控制器的設計方案,並給出了仿真結果,驗證了該設計方案的可行性。此外,該設計

ansible工作原理以及使用詳解

內容:1、ansible的作用以及工作結構2、ansible的安裝以及使用3、ansible的playbook使用 一、ansible的作用以及工作結構        1、ansible簡介:    

移動端車牌識別的工作原理以及特點

移動端車牌識sdk可以讓我們的手機掃一掃就能實現車牌號識別。可以運用到多個領域當中:像智慧交通、平安城市、網際網路停車、智慧停車、公安圖偵。 一、移動端車牌識別的工作原理 移動端車牌識別工作原理有以下幾步完成: 1、影象採集:通過手機攝像頭對車輛進行拍照或視訊掃描採集影象; 2、預處理:噪聲過濾、

#12、Sqoop使用過嗎?說一下sqoop的工作原理,以及使用體驗

Sqoop是什麼??? Sqoop:SQL-to-Hadoop 傳統資料庫與Hadoop間資料同步工具 利用Mapreduce分散式批處理,加快了資料傳輸速度,保證了容錯性 Sqoop的工作原理 sqoop1 import原理: 從傳統資料庫獲取元資料資訊(sc

Eureka的工作原理以及它與ZooKeeper的區別

Eureka的工作原理以及它與ZooKeeper的區別 1、Eureka 簡介: Eureka 是 Netflix 出品的用於實現服務註冊和發現的工具。 Spring Cloud 集成了 Eureka,並提供了開箱即用的支援。其中, Eureka 又可細分為 Eureka Server 和

旋轉編碼器的工作原理以及如何在Arduino中使用

在本篇文章中,我們將學習旋轉編碼器的工作原理以及如何將其與Arduino開發板一起使用。旋轉編碼器是一種位置感測器,用於確定旋轉軸的角度位置。它根據旋轉運動產生模擬或數字電訊號。 有許多不同型別的旋轉編碼器,可通過輸出訊號或感測技術進行分類。在本篇文章中,我們使用的特定旋轉編碼

關於ssm的工作原理以及相應的功能開發(一)

SSM框架的Web程式主要用到了三個技術: Spring:用到了註解和自動裝配,就是Spring的兩個精髓IOC(反向控制)和 AOP(面向切面程式設計)。 SpringMVC:用到了MVC模型,將邏輯程式碼放到Controller層處理。 Mybatis:用到了與資料庫打交道的層面,放在所有的

servlet是什麼?工作原理以及生命週期

1、你對servlet的理解?或者servlet是什麼?     1)servlet介面定義的是一套處理網路請求的規範,所有實現servlet的類,都需要實現它那五個方法,其中最主要的是兩個生命週期方法 init()初始化和destroy()銷燬,還有一個處理請求的se

springmvc工作原理以及原始碼分析(基於spring3.1.0)

springmvc是一個基於spring的web框架.本篇文章對它的工作原理以及原始碼進行深入分析. 一、springmvc請求處理流程   引用spring in action上的一張圖來說明了springmvc的核心元件和請求處理流程:       

淺談PPTP的工作原理以及作用

華科雲商是一家專業的動態IP解決方案服務商,現有派克斯、PPTP、HTTP代理、撥號VPS等產品。主要為註冊、搶購、遊戲,、打碼、爬蟲、網賺等需求IP資源的業務提供一站式產品服務。聯絡扣扣:56731523 PPTP(Point to Point Tunneling Pro

線索二叉樹的原理以及建立和遍歷(c++)

這是一篇非常好的關於線索二叉樹的文章,內容詳細到位,敘述清晰。作者應該是很認真、細心的人,估計花了不少時間和精力,向作者致敬! 一、線索二叉樹概念 具有 n 個結點的二叉連結串列中,其二叉連結串列的 n 個結點中共有 2n 個指標域,在這 2n 個指標域中,真正

爬蟲的一些知識點 目錄 1. 網路爬蟲 1 2. 產生背景 垂直領域搜尋引擎 2 3. 1 聚焦爬蟲工作原理以及關鍵技術概述 3 4. 涉及技術 3 4.1. 下載網頁 一般是通過net api

爬蟲的一些知識點   目錄 1. 網路爬蟲 1 2. 產生背景 垂直領域搜尋引擎 2 3. 1 聚焦爬蟲工作原理以及關鍵技術概述 3 4. 涉及技術 3 4.1. 下載網頁  一般是通過net api 3 4.2. 分析網頁(html分析

Struts2工作原理以及核心思想

Struts2 JAVA基礎學完,肯定是要面臨三大框架的學習的,作為初學者,瞭解三大框架的原理,設計目的是首要任務,只有在把握了框架的設計目的以後,才能有針對性的取學習使用框架,這裡從strue2框架開始,介紹三大框架,讓新手能有一個總的瞭解跟思維導圖。

Jetty 的工作原理以及與 Tomcat 的比較

Jetty 目前的是一個比較被看好的 Servlet 引擎,它的架構比較簡單,也是一個可擴充套件性和非常靈活的應用伺服器,它有一個基本資料模型,這個資料模型就是 Handler,所有可以被擴充套件的元件都可以作為一個 Handler,新增到 Server 中,Jetty 就是幫你管理這些 Handler。

乾貨!!c++new和delete工作原理 以及 針對連結串列節點過載operator new 和operator delete 實現連結串列節點使用記憶體池申請和釋放空間

第一部分: new和delete的實現原理 開始談之前我們應該瞭解另一個概念“operator new”和“operator delete”: new操作符呼叫一個函式來完畢必需的記憶體分配,你可以重寫或過載這個函式來改變它的行為。new操