1. 程式人生 > >自己動手制作一個本地的yum倉庫

自己動手制作一個本地的yum倉庫

完成後 spawn 自己 mirrors 局域網 動手 本地 gen 2.0

制作本地yum源有兩種方式,第一種是使用光盤鏡像,然後在本地進行安裝。第二種是我們自己創建一個本地yum倉庫,然後使用file的形式來向本地提供yum repo(也可以使用http的方式向外部提供,我們這裏就自己給自己創建yum倉庫)

1、把從網上下載的rpm包放在本地的某個文件夾裏面

我們可以這樣子下載,使用yum下載rpm包但是並不安裝

yum groupinstall "Development tools" --downloadonly --downloaddir=./
[root@chaofeng yum]# pwd
/data/yum                                                  #我是把RPM包放在了/data/yum目錄下
[root@chaofeng yum]# ls
autoconf
-2.69-11.el7.noarch.rpm intltool-0.50.2-7.el7.noarch.rpm automake-1.13.4-3.el7.noarch.rpm libquadmath-devel-4.8.5-36.el7.x86_64.rpm bison-3.0.4-2.el7.x86_64.rpm libtool-2.4.2-22.el7_3.x86_64.rpm byacc-1.9.20130304-3.el7.x86_64.rpm patch-2.7.1-10.el7_5.x86_64.rpm cscope-15.8
-10.el7.x86_64.rpm patchutils-0.3.3-4.el7.x86_64.rpm ctags-5.8-13.el7.x86_64.rpm perl-Git-1.8.3.1-20.el7.noarch.rpm diffstat-1.57-4.el7.x86_64.rpm rcs-5.9.0-5.el7.x86_64.rpm doxygen-1.8.5-3.el7.x86_64.rpm redhat-rpm-config-9.1.0-87.el7.centos.noarch.rpm flex-2.5
.37-6.el7.x86_64.rpm rpm-build-4.11.3-35.el7.x86_64.rpm gcc-4.8.5-36.el7.x86_64.rpm rpm-sign-4.11.3-35.el7.x86_64.rpm gcc-c++-4.8.5-36.el7.x86_64.rpm subversion-1.7.14-14.el7.x86_64.rpm gcc-gfortran-4.8.5-36.el7.x86_64.rpm swig-2.0.10-5.el7.x86_64.rpm gettext-devel-0.19.8.1-2.el7.x86_64.rpm systemtap-3.3-3.el7.x86_64.rpm git-1.8.3.1-20.el7.x86_64.rpm systemtap-devel-3.3-3.el7.x86_64.rpm indent-2.2.11-13.el7.x86_64.rpm

2、下載制作本地yum的命令程序包

創建倉庫需要特定的程序包來完成。我們下載這個程序包

yum install createrepo

3、確保防火墻關閉狀態

4、開始創建yum倉庫,在rpm包存放的所在的目錄下執行createrepo命令。

[root@chaofeng yum]# createrepo ./
Spawning worker 0 with 29 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

技術分享圖片

創建完成後我們會看到這個目錄repodata,這個目錄很是關鍵,

5、在/etc/yum.repos.d目錄下創建配置文件。(我這裏是以本地file的形式給自己的主機提供yum源,如果你要在局域網內的其他主機可以訪問到,則使用http或ftp的形式進行,比如:base=http://{當前yum源所在主機的IP}/{RPM軟件包目錄})

[root@chaofeng yum.repos.d]# cat CentOS-BenDi.repo
[Centos-BenDi]
name=centos yum repo
baseurl=file:///data/yum
enabled=1
gpgcheck=0
priority=1

7、更新本地緩存即可

yum clean all
yum makecache

8、嘗試安裝一個本地存在的軟件包gcc

[root@chaofeng yum.repos.d]# yum install gcc
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.zju.edu.cn
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.163.com
 * updates: centos.mirrors.estointernet.in
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 gcc.x86_64.0.4.8.5-36.el7 將被 安裝
--> 解決依賴關系完成

依賴關系解決

========================================================================================================
 Package            架構                  版本                                                   大小
========================================================================================================
正在安裝:
 gcc                x86_64                4.8.5-36.el7                Centos-BenDi                 16 M

事務概要
========================================================================================================
安裝  1 軟件包

總下載量:16 M
安裝大小:37 M
Is this ok [y/d/N]: y

上面我們可以看到下載gcc包使用的正是我們剛剛我們制作的本地yum源。

9、我們還可以這樣子檢測是否使用了本地yum源

[root@chaofeng yum]# yum repolist
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.zju.edu.cn
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.163.com
 * updates: centos.mirrors.estointernet.in
源標識                            源名稱                                                          狀態
Centos-BenDi                      centos yum repo                                                     29
base/7/x86_64                     CentOS-7 - Base                                                 10,019
epel/x86_64                       Extra Packages for Enterprise Linux 7 - x86_64                  12,851
extras/7/x86_64                   CentOS-7 - Extras                                                  321
updates/7/x86_64                  CentOS-7 - Updates                                                 625
repolist: 23,845

你看第一個就是我們自己制作的本地yum源。

自己動手制作一個本地的yum倉庫