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