Centos下自建本地yum倉庫


Centos系統中安裝軟件主要有yum安裝和源碼安裝兩種,源碼安裝的優勢在於你可以根據你的需要自定義很多安裝參數,但是他有個缺點就是每次都需要執行./configure && make && make install 以及當你需要卸載某個軟件的時候你可能無法完全卸載乾淨,於是對於大多數情況來說,yum安裝就成了最好的選擇。centos官方的源一般是很慢的,因爲是國外的,所以你可以選擇用國內一些著名的比較官方的源,比如新浪,阿里,等等,當然你還可以選擇自己搭建你的yum倉庫,其實很簡單,沒有你想象的那麼難。本文就簡單介紹一下,如何搭建本地的yum倉庫。


一,環境準備:

兩臺虛擬機,系統爲Centos6.5.

192.168.1.22爲yum倉庫以下簡稱爲A,需要安裝apache或者nginx,或者其它的web服務。

192.168.1.23爲實驗機器以下簡稱爲B。


二,建立倉庫:(在A上執行)


這裏採取HTTP的方式傳輸yum文件,因此我們建立一個總目錄,同時建立一個虛擬主機。

mkdir /www/yum

mkdir -p 6.5/i386  6.5/x86_64  6.6/i386  6.6/x86_64  5.8/x86_64  5.8/i386

最簡單的方式是將rpm包全部放在yum目錄下,但是實際生產環境中我們可能需要區分不同的操作系統版本,比如5.8和6.5,6.6,還有不同的位數32位或64位,因此我們在yum目錄下建立這些子目錄。最終效果類似於:

tree /www/yum

├── 5.8

│   ├── i386

│   └── x86_64

├── 6.5

│   ├── i386

│   └── x86_64

└── 6.6

├── i386

└── x86_64

接下來增加一個虛擬主機文件,我用的是nginx,配置如下:

server

{

listen       8001;

server_name  fangqi.veone.cn

index index.html index.htm index.php;

root  /www/yum;


access_log  off;

}

別忘了reload。

如果你沒有域名,你可以任意定義 比如yum.123.com,然後將這個域名和IP綁到B的/etc/hosts中。

這裏我用的公網域名。實際生產環境中一般可以選擇解析在內網DNS中。

接下來就可以放包了,將準備好的rpm包放到/www/yum/6.5/x86_64/路徑下,

網上隨便下一個包,我用的是lrzsz-0.12.20-1.x86_64.rpm

下一步是關鍵的一步,

cd www/yum/6.5/x86_64/

yum -y install createrepo

createrepo ./

這個命令可能會報錯:

Traceback (most recent call last):

File "/usr/share/createrepo/genpkgmetadata.py", line 28, in <module>

import createrepo

ImportError: No module named createrepo

這是因爲python版本被升級過的問題,進入genpkgmetadata.py,將首行的版本指定改爲舊的路徑即可,如:我原來是2.6的版本,後來升級成2.7版本,此時只需要將#!/usr/bin/python 改爲#!/usr/bin/python2.6 ,然後再次執行此命令即可。

執行成功的輸出:

Spawning worker 0 with 1 pkgs

Workers Finished

Gathering worker results


Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

你會發現當前路徑出現了一個repodata的文件夾,此時表示該yum倉庫已經建立完畢了。

事實上我們之前定義的子文件夾,都是一個獨立的yum倉庫,因此都需要執行一下createrepo 這個命令,來生成yum倉庫。




三,配置yum源:(在B上執行)


cd /etc/yum.repos.d

先備份原來的源,然後創建新的文件:

vi Centos-6.5.repo

寫入

[CentOS-6.5]

name=CentOS-6.5

baseurl=http://fangqi.veone.cn:8001/6.5/x86_64

gpgcheck=0


最主要的baseurl不要寫錯。

然後更新本地yum緩存:

sudo yum clean all

sudo yum makecache


此時可以查詢一下lrzsz應用:

yum list lrzsz

正常情況是可以看到結果的

如果能查詢其他應用,例如gcc:

會提示no matching pachages to list


然後安裝:

yum install -y lrzsz

測試lrz,lsz(rz,sz)命令。

到這一步基本就完成了,如果以後還要增加包,別忘了重複這三步:在源倉庫執行createrepo,然後在服務器上執行yum clean all && yum makecache,看起來是有點繁瑣,你可以嘗試寫腳本和靈活使用crontab來解決。

另外,每個不同的系統




最後,如果你不想這麼麻煩,那麼幹脆使用阿里的yum好了,雖然我覺得挺簡單的。

簡單暴力三步曲如下:

第一步:備份你的原鏡像文件,以免出錯後可以恢復。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第二步:下載新的CentOS-Base.repo 到/etc/yum.repos.d/

CentOS 5

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

第三步:運行yum makecache生成緩存

yum clean all

yum makecache

然後就盡情安裝吧。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章