linux yum源配置

1. 概述

日常的工作中,經常要安裝和卸載軟件,在linux centos的版本里提供了rpm這個命令進行安裝,但是這個命令經常因為包的依賴性導致了安裝失敗,后面就有了yum這個工具。兩者之間的關系如下

rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。

Yum(全稱為Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

rpm是linux的一種軟件包名稱,以.rmp結尾,安裝的時候語法為:rpm -ivh,rpm包的安裝有一個很大的缺點就是文件的關聯性太大,有時候裝一個軟件要安裝很多其他的軟件包,很麻煩,所以為此RedHat小紅帽開發了yum安裝方法,他可以徹底解決這個關聯性的問題,很方便,只要配置兩個文件即可安裝,安裝方法是:yum -y install,yum并不是一中包,而是安裝包的軟件

簡單點說, rpm只能安裝已經下載到本地機器上的rpm包. Yum不僅能配置本地的yum源進行安裝而且能在線下載并安裝rpm包,能更新系統,且還能自動處理包與包之間的依賴問題,這個是rpm工具所不具備的。

本文主要是講解如何配置本地yum源,網絡yum源,配置ftp yum源倉庫,以及第三方倉庫的制作。

2. yum源配置

yum的配置文件分為兩部分:main和repository

main部分定義了全局配置選項,整個yum配置文件應該只有一個main。常位于/etc/yum.conf中。

repository(定義倉庫)部分定義了每個源/服務器的具體配置,可以有一到多個。常位于/etc/yum.repo.d目錄下以.repo結尾的文件。

2.1 yum.conf配置解釋


cachedir=/var/cache/yum ?//yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,默認設置為/var/cache/yum

keepcache=0 ?//安裝完成后是否保留軟件包,0為不保留(默認為0),1為保留

debuglevel=2 ?//Debug信息輸出等級,范圍為0-10,缺省為2

logfile=/var/log/yum.log ?//yum日志文件位置。用戶可以到/var/log/yum.log文件去查詢過去所做的更新。

pkgpolicy=newest ?//包的策略。一共有兩個選項,newest和last,這個作用是如果你設置了多個repository,而同一軟件在不同的repository中同時存在,yum應該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將服務器id以字母表排序,并選擇最后的那個服務器上的軟件安裝。一般都是選newest。

distroverpkg=redhat-release ?//指定一個軟件包,yum會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。

tolerant=1 ?//有1和0兩個選項,表示yum是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum不會出現錯誤信息。默認是0。

exactarch=1 ?//有1和0兩個選項,設置為1,則yum只會安裝和系統架構匹配的軟件包,例如,yum不會將i686的軟件包安裝在適合i386的系統中。默認為1。

retries=6 ?//網絡連接發生錯誤后的重試次數,如果設為0,則會無限重試。默認值為6.

obsoletes=1 ?//這是一個update的參數,具體請參閱yum(8),簡單的說就是相當于upgrade,允許更新陳舊的RPM包。

plugins=1 ?//是否啟用插件,默認1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。

exclude=selinux*//排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對于安裝了諸如美化包,中文補丁的朋友特別有用。

gpgcheck=1 //有1和0兩個選擇,分別代表是否是否進行gpg(GNU Private Guard)校驗,以確定rpm包的來源是有效和安全的。這個選項如果設置在[main]部分,則對每個repository都有效。默認值為0。


這個配置文件在自己配置的時候,根據實際進行修改,一般也是可以不進行修改。

2.2 yum倉庫配置

在yum倉庫配置里,默認只要三個參數就可以實現功能,配置id [id],指定源地址baseurl,配置每個版本對應的公鑰的地址gpgkey=url,這里如果不檢查包的來源,要添加配置語句gpgcheck=0 即可安裝軟件。

2.2.1 設置本地源


[sunny]? //第一行 id,即倉庫名,可以自己命名,但是.只能一個單詞,所以不能有空格

name=sunny-media-yum-source //自己寫一個名字,相當于描述,格式沒要求

baseurl=file:///misc/cd/? //則該路徑為yum源,選擇是repodata所在文件夾的路徑,該倉庫路徑有四個格式,http,https,ftp,file等,其中file://為本地的路徑

gpgcheck=1 //檢查包的來源,1檢查,0不檢查

enabled=1 //1為啟用改倉庫,0為禁用。這里可以用語句開啟或禁用該倉庫yum-config-manager --enable sunny表示啟用倉庫名為sunny的yum源。disable為禁用。

gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-6 ?// key的地址


2.2.2 設置sohu源


[sohu]

name=sohu-source

baseurl=http://mirrors.sohu.com/centos/6/os/i386/

gpgcheck=1

enabled=1 ?

gpgkey=http://mirrors.sohu.com/centos/6/os/i386/RPM-GPG-KEY-CentOS-6


2.3 yum源倉庫制作

服務器搭建前,先關閉防火墻和selinux,防止對實驗現象產生干擾.以下實驗演示在centOS7上操作

關閉防火墻


centos7上

systemctl disable firewalld.service

systemctl stop firewalld.service

centos6上

chkconfig iptables off

service iptables stop

檢查,運行iptables -vnL查看是否有策略生效,沒有表示關閉成功


?關閉SElinux


vim /etc/selinux/config

SELINUX=permissive

setenforce? 0

getenforce 驗證是否生效,結果為Permissive表示生效


2.3.1 ftp服務器yum源

制作ftp服務器,一般是用來給自己公司內部使用的,我們需要提前準備好所有的軟件,一般也是可以直接把安裝的光驅的內容全部拷貝到ftp服務器上

2.3.1.1 ftp服務器端配置

服務器端運行


rpm -ivh vsftpd-3.0.2-21.el7.x86_64.rpm


新建源倉庫的文件夾,規則操作 如下的語句進行創建,如果只有64為的6和7x86_64,而沒有32為i386的系統,文件夾路徑不需要對同一版本的64位或者32位進行區別,/os/$basearch/就可以省略

baseurl=/var/ftp/pub/centos/$releasever/os/$basearch/

運行語句


mkdir -p /var/ftp/pub/centos/{6,7}


拷貝軟件包和相關數據到對應文件夾

這里做實驗,直接把光盤資料全部拷貝到到這里


cp -r /media/* /var/ftp/pub/centos/7


這里為了做實驗的方便,直接把光盤掛載在對應的文件夾6和7也可以實現效果。光盤掛載,ftp上識別會慢一點,等待10分鐘后再刷新ftp服務器

到這里,ftp服務器yum 倉庫已經創建完成

2.3.1.2 ftp客戶端配置

編輯配置文件vim ?/etc/yum.repos.d/sunny.repo


[sunnyftp]

name=sunny-build-ftp-for-yum

baseurl=ftp://172.18.254.71/pub/centos/$releasever/

gpgcheck=1

enabled=1

gpgkey=ftp://172.18.254.71/pub/centos/$releasever/RPM-GPG-KEY-CentOS-$releasever


測試安裝軟件,如果正常安裝,則實驗完成

2.3.2 http服務器yum源制作

一般我們通過http服務器來制作第三方的源,是為了給其他人或者公司來下載使用的。直接將rpm包拷貝到http服務器上對應的文件夾,然后在通過 工具createrepo來創建倉庫,如果有新的包放到服務器上,建議把repodate刪掉,重新利用createrepo來創建

2.3.2.1 http服務器端配置

安裝http服務器,由于http服務器安裝包具有依賴關系,所以我們通過yum進行安裝



yum install httpd

systemctl start httpd //啟動httpd服務

systemctl enable httpd //設為開機自動啟動 httpd服務


測試http服務器是否正常運行


vim /var/www/html/index.html

welcome to Sunny home


打開網頁http://172.18.254.71/ ,顯示welcome to Sunny home,表示服務已經正常啟用

準備第三方rpm相關包


mkdir /var/www/html/sunny //創建文件夾sunny,用來放置rpm包和repodata

//這里測試兩個軟件 tree和lsof.在實際環境中,第三方放置的軟件可能是公共資源沒有的

//如果存在依賴關系,我們有開啟其他的倉庫源,系統會自動從其他倉庫獲取需要安裝的依賴軟件包

cp /media/Packages/tree-1.6.0-10.el7.x86_64.rpm /var/www/html/sunny

cp /media/Packages/lsof-4.87-4.el7.x86_64.rpm /var/www/html/sunny

createrepo? /var/www/html/sunny? //如有新的服務包放到服務器,都要重新運行該語句


服務器端配置完成了。打開網頁http://172.18.254.71/sunny/可以看到相應的服務包

2.3.2.2 客戶端配置

客戶端的配置如下


[sunnyhttp]

name=sunny-build-for-third-part-packet

baseurl=http://172.18.254.71/sunny/ ? ?//服務器的對應的地址

enabled=1

gpgcheck=0 ? ?//這里如果是大型軟件包,那么第三方軟件的提供方一般會提供對應的key,有key的話在配置gpgkey選項 ?


客戶端配置完成,測試tree 和 lsof是否可以成功安裝即可。

2.4 常用服務包下載源

附上網絡上常用的服務包下載的源。除此之外,還可以通過軟件官網來獲取相關軟件安裝包

https://www.centos.org/download/

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com









最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,362評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內容

  • http://blog.csdn.net/mathewsking/article/details/8211273 ...
    liuboxx1閱讀 6,088評論 1 1
  • Linux 程序包管理 linux系統中的諸多程序都是由源代碼編譯或者由二次發行商選擇性編譯分布,其大部分的程序安...
    魏鎮坪閱讀 5,839評論 1 8
  • 【Linux軟件安裝管理系列】— — 傳送門: — —《Linux軟件安裝管理之——源碼安裝詳解》 — —《Lin...
    四月不見閱讀 10,723評論 0 51
  • 1,老板娘是一個樂于助人的人。而且不求回報。事情是這樣的。 我有一天跟小姨家的婆婆鬧翻了。我想出去租房子住,我就問...
    光芒萬丈_閱讀 350評論 0 0
  • 今天與朋友們分享素描的基礎知識:1.如何畫準形 2.如何畫準明暗。 以一個南瓜為例 第一 如何畫準形 畫形的步驟 ...
    靈魂跡象閱讀 828評論 17 23