1. 程式人生 > >Centos7.1搭建本地Yum倉庫(Centos6&7&epel)

Centos7.1搭建本地Yum倉庫(Centos6&7&epel)

1.系統環境準備

[[email protected] ~]# cat /etc/redhat-release && uname -r
CentOS Linux release 7.1.1503 (Core) 
3.10.0-229.el7.x86_64
[[email protected] ~]# getenforce && systemctl status firewalld;hostname -I
Disabled
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (
/usr/lib/systemd/system/firewalld.service; disabled) Active: inactive (dead) 192.168.56.12

2.安裝createrepo

[[email protected] ~]# yum install createrepo -y
================================================================================================
 Package                     Arch               Version                  Repository        Size
==
============================================================================================== Installing: createrepo noarch 0.9.9-28.el7 base 94 k Installing for dependencies: deltarpm x86_64 3.6-3.el7 base 82 k python-deltarpm x86_64 3.6-3.el7 base 31 k Transaction Summary ==
============================================================================================== Install 1 Package (+2 Dependent packages)

3.建立相關目錄及更改配置

#建立本地yum倉庫repo釋出目錄(rpm包存放目錄)
[[email protected] ~]# mkdir /data/local_yum_data -p
#建立本地yum倉庫同步目錄
[[email protected] Packages]# mkdir /data/local_yum_data/centos/6/os/x86_64/ -p
[[email protected] Packages]# mkdir /data/local_yum_data/centos/6/extras/x86_64/ -p
[[email protected] Packages]# mkdir /data/local_yum_data/centos/6/updates/x86_64/ -p
[[email protected] Packages]# mkdir /data/local_yum_data/epel/6/x86_64/ -p

4.提供yum服務(Http:80)

#可以用Apache或nginx提供web服務,適用於內網環境
##基於HTTP的yum源配置
#安裝apache軟體
    yum install -y httpd
    vim /etc/httpd/conf/httpd.conf
#將預設的www目錄指向本地建立的yum倉庫目錄
    [[email protected] data]# grep -v "#" /etc/httpd/conf/httpd.conf
    ServerRoot "/etc/httpd"
    Listen 80
    Include conf.modules.d/*.conf
    User apache
    Group apache
    ServerAdmin [email protected]
    ServerName 192.168.56.12:80
    <Directory />
        AllowOverride none
        Require all denied
    </Directory>
    DocumentRoot "/data/local_yum_data/"
    <Directory "/data/local_yum_data/">
        AllowOverride None
        Require all granted
    </Directory>
    <Directory "/data/local_yum_data/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
 #修改/usr/local/yumrepo目錄的屬主和屬組為apache
    chown -R apache.apache /data/yum_data/
#刪除預設主頁
    rm /etc/httpd/conf.d/welcome.conf
#啟動服務
    #service httpd restart

瀏覽器輸入http本機IP,顯示出列表檔案 完成後輸入IP結果是這樣就對了

利用python快速搭建http服務,提供yum服務

    cd /data/local_yum_data/ && nohup python -m SimpleHTTPServer 80 &>/dev/null &

瀏覽器輸入http本機IP,顯示出列表檔案 完成後正確結果

5.同步官方rpm包檔案

5.1 Centos-6同步官方rpm包檔案

    #官方源(centos6)
    rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/local_yum_data/centos/6/os/x86_64/
    rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/local_yum_data/centos/6/extras/x86_64/
    rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/local_yum_data/centos/6/updates/x86_64/
    rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/local_yum_data/epel/6/x86_64/

5.2 Centos-7同步官方rpm包檔案

    #官方源(centos6)
    rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/ /data/local_yum_data/centos/7/os/x86_64/
    rsync -av rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/ /data/local_yum_data/centos/7/extras/x86_64/
    rsync -av rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/ /data/local_yum_data/centos/7/updates/x86_64/
    rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/7/x86_64/ /data/local_yum_data/epel/7/x86_64/

5.3 初始化repodata索引檔案

    #初始化repodata索引檔案
    [[email protected] ~]# createrepo -h
    [[email protected] ~]# createrepo -pdo /data/local_yum_data/ /data/local_yum_data/
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete

6.客戶端yum源指定

6.1 Centos-6客戶端yum源指定

    cat>> /etc/yum.repos.d/local_yum.repo <<EOF
    [local_yum]
    name=centos6
    baseurl=http://192.168.56.12/centos/6/os/x86_64/
    enable=1
    gpgcheck=0
    
    [local_extra]
    name=extra
    baseurl=http://192.168.56.12/centos/6/extras/x86_64/
    enable=1
    gpgcheck=0
    
    [local_epel]
    name=epel
    baseurl=http://192.168.56.12/epel/6/x86_64/
    enable=1
    gpgcheck=0
    EOF
    #在每個標籤下面將enabled=1改為0禁用,沒有的新增上
    vim /etc/yum.repos.d/CentOS-Base.repo
    [base]
    name=CentOS-$releasever - Base
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    [updates]
    name=CentOS-$releasever - Updates
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    [extras]
    name=CentOS-$releasever - Extras
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    [centosplus]
    name=CentOS-$releasever - Plus
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    [contrib]
    name=CentOS-$releasever - Contrib
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

6.2 Centos-7客戶端yum源指定

    cat>> /etc/yum.repos.d/local_yum.repo <<EOF
    [local_yum]
    name=centos6
    baseurl=http://192.168.56.12/centos/7/os/x86_64/
    enable=1
    gpgcheck=0
        
    [local_extra]
    name=extra
    baseurl=http://192.168.56.12/centos/7/extras/x86_64/
    enable=1
    gpgcheck=0
    
    [local_epel]
    name=epel
    baseurl=http://192.168.56.12/epel/7/x86_64/
    enable=1
    gpgcheck=0
    EOF
    #在每個標籤下面將enabled=1改為0禁用,沒有的新增上
    vim /etc/yum.repos.d/CentOS-Base.repo
    [base]
    name=CentOS-$releasever - Base
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [updates]
    name=CentOS-$releasever - Updates
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [extras]
    name=CentOS-$releasever - Extras
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [centosplus]
    name=CentOS-$releasever - Plus
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

7.測試(Centos6)

    [[email protected] ~]# ping 223.5.5.5
    connect: Network is unreachable
    [[email protected] ~]# ping www.baidu.com
    ping: unknown host www.baidu.com
    [[email protected] ~]# yum install tree
    Loaded plugins: fastestmirror, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
    local_extra                                                            | 3.4 kB     00:00     
    local_yum                                                              | 3.7 kB     00:00     
    Resolving Dependencies
    --> Running transaction check
    ---> Package tree.x86_64 0:1.5.3-3.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==============================================================================================
     Package           Arch                Version                   Repository              Size
    ==============================================================================================
    Installing:
     tree              x86_64              1.5.3-3.el6               local_yum               36 k
    
    Transaction Summary
    ==============================================================================================
    Install       1 Package(s)
    
    Total download size: 36 k
    Installed size: 65 k
    Is this ok [y/N]: