搭建本地YUM倉庫

YUM介紹

  yum(yellow dog updater modified)爲多個Linux發行版的軟件包管理工具,Redhat RHEL CentOS Fedora YUM主要用於自動安裝,升級rpm軟件包,它可以自動查找解決rpm包之間的依賴關係。
YUM自動下載rpm包並安裝,類某軟件的一鍵安裝。php


YUM源是什麼?
  要成功的使用YUM工具安裝更新軟件或系統,就須要有給一個包含各類rpm軟件包的repository(軟件倉庫)這個軟件倉庫咱們習慣成爲yum源。網絡上有大量的yum源,可是因爲受到網絡環境的限制,致使軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包須要更新安裝時,所以優化系統時候咱們都更換國內的源。相比較而言,本地yum源服務器最大的優勢是局域網的快速網絡鏈接和穩定性。有了局域網中的YUM源服務器,即使在internet中斷的狀況下,也不會影響其餘YUM客戶端的軟件安裝和升級。python

 

YUM源工做原理nginx

1.yum -y install httpd
2.查找yum配置文件CentOS-Base.repo這個裏面有下載地址
3.CentOS系統默認到國外的軟件倉庫下載rpm軟件包
4.但國外的源比較慢所以系統優化時換成阿里雲的源
5.可是仍是以爲阿里雲的源不快,所以搭建內網的yum源,公網的和本身作的rpm均可以放進去

說明:更換yum源實質就是更換下載地址web

配置本地YUM倉庫

安裝createrepo軟件
yum -y install createrepo
echo '192.168.1.100 mirrors.liuliya.com' >>/etc/host #提早驗證內網YUM源
建立yum倉庫的目錄數據庫

mkdir -p /application/yum/centos6/x86_64/
cd /application/yum/centos6/x86_64/

rz #上傳包到此目錄,此目錄下還能夠包括文件夾
獲取rpm軟件包的方法apache

1.本身製做的rpm包
2. yumdownloader pcre-devel openssl-devel  #只下載不安裝
3.平時yum安裝軟件時不刪除安裝包

#cat /etc/yum.conf
keepalived=1

#安裝包存儲目錄
cachedir=/var/cache/yum/$basearch/$releasever
#/var/cache/yum/x86_64/base/packages

初始化repodata索引文件
#初始化
createrepo -pdo /application/yum/centos6/x86_64/ /application/yum/centos6/x86_64/
#每加入一個rpm包就要更新一下
createrepo --update /application/yum/centos6/x86_64/
提供yum服務
#能夠用apache或者nginx提供web服務,但用Python的http模塊更簡單,適用於內網環境
注意:先把Nginx關閉防止80端口衝突vim

cd /application/yum/centos6/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &

能夠經過遊覽器輸入本機IP查看
客戶端的配置centos

cd /etc/yum.repos.d
mkdir yum_bak && mv *repo yum_bak
vim liuliya.repo
[liuliya]
name=server
baseurl=http://192.168.1.100
enable=1
gpgcheck=0

yum clean all #清空本機已有yum緩存
yum list   #列表顯示yum倉庫
小技巧:
上面展現的須要新建一個文件,也許工做中有更多的配置,若是手動配置比較麻煩,所以有一種更簡單的方法,將這些操做作成rpm包
fpm -s dir -t rpm -n liuliya_repo -v 1.0 --post-install /server/scripts/liuliya_rpm.sh -f /etc/yum.repos.d/liuliya.repo
liuliya_rpm.sh腳本主要是剛纔咱們的一些操做。緩存

yum 本地安裝nginx

接前面文章定製的nginx rpm包
yum install nginx
安裝完成後咱們來驗證下:
cd /application/
ll -h

顯示
nign -> /application/nginx-1.6.3/
nginx-1.6.3

#查看下id nginx
id nginx
uid=500(nginx) gid=500(nginx) group=500(nginx)

說明本地yum安裝nginx成功
#卸載軟件使用rpm -e 軟件名
yum配置文件簡介說明及命令介紹
cat /etc/yum.conf安全

[main]
cachedir=/var/cache/yum/$basearch/$releasever   #yum緩存的目錄,存儲下載的rpm包和數據庫
keepcache=0  #安裝完成後是否保留軟件包,0爲不保留(默認爲0)1爲 保留
debuglevel=2  #Debug信息輸出等級,範圍爲0-10缺省爲2
logfile=/var/log/yum.log  #日誌文件位置
exactarch=1  #有1和0兩個選項,設置爲1則yum只會安裝和系統架構匹配的軟件包
obsoletes=1  #update的參數至關於upgrade容許更新陳舊的RPM包;有2個選項1和0分別表示首是否進行gpg校驗以肯定每一個rpm的來源是有效和安全的。這個選項若是設置在[main]部分則對每一個repository都有效,默認爲0
gpgcheck=1
plugins=1  #是否啓動插件,默認1爲容許,0表示不容許
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release  #指定一個軟件包,yum會根據這個包判斷髮行版本

yum命令用法
#安裝軟件包
yum install httpd
yum -y install httpd

#列出軟件包,使用list函數,能夠搜索帶名稱的指定軟件包
yun list httpd
#搜索軟件包
yum search http
#查找某個特定文件屬於哪一個軟件包
yum provides /etc/my.cnf
#列出全部可用的羣組
yum grouplist
#安裝羣組軟件包
yum groupinstall 'MySQL Database'
#列出啓動的軟件庫
yum repolist
#安裝來自特定軟件的軟件包
yum --enablerepo=local --disablerepo=base,extras,updates install LNMP
#清理yum緩存內容
yum clean all
#查看yum歷史記錄
yum history
鏡像同步公網yum源
上游yum源必需要支持rsync協議,不然不能使用rsync進行同步
http://mirrors.ustc.edu.cn/status/
#CentOS官方標準源:
rsync://mirrors.ustc.edu.cn/centos/
#epel源
rsync://mirrors.ustc.edu.cn/epel/
#使用rsync同步yum源,爲了節省帶寬,磁盤和下載時間,這裏列舉僅同步CentOS6的rpm包,這樣全部的rpm包,只佔用了21G,所有同步須要300G左右
#同步base源,小技巧咱們安裝系統的關盤含有部分rpm包,大概3G,這些不用從新下載

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x_86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extra/x86_64/ /data/yum_data/centos/6/extra/x_86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/update/x86_64/ /data/yum_data/centos/6/update/x_86_64/

#epel源
/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/centos/epel/6/x_86_64/
下載命令
有些鏡像源不支持Rsync協議,好比阿里雲、Zabbix官方源
解決辦法:
wget -r -p -np -k http://repo.zabbix.com/non-supported/rhel/6/x86_64/

相關文章
相關標籤/搜索