Centos下自建本地yum倉庫

來源:互聯網
上載者:User

標籤: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

然後就盡情安裝吧。


本文出自 “linux-聖鬥士” 部落格,請務必保留此出處http://fangqi.blog.51cto.com/10856791/1880395

Centos下自建本地yum倉庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.