建立完整版的仓库

1. 与远程仓库同步

选择稳定的源

保存源,然后makecache

建立一个目录保存软件

与远程源建立同步

以base和epel源为例

reposync -r base /yum/

reposync -r epel /yum/

2. 建立源的元数据

初次建立

createrepo /yum/base

后续同步

createrepo —update /yum/base

3. 编写仓库repo文件

  1. [chaox-base]
  2. name=self-build depo base
  3. baseurl=http://172.16.1.61:8086/base/
  4. enable=1
  5. gpgcheck=0
  6. [chaox-epel]
  7. name=self-build depo epel
  8. baseurl=http://172.16.1.61:8086/epel/
  9. enable=1
  10. gpgcheck=0

4. 开始使用

nginx打开autoindex指向yum目录

  1. server {
  2. listen 8086 default_server;
  3. server_name download.mirror.tang;
  4. location / {
  5. autoindex on;
  6. root /yum;
  7. index index.html index.htm;
  8. }
  9. }

如果需要长期使用这个仓库,建议写一个同步脚本,放到定时任务中运行

建立常用软件仓库

由于我个人同步的是完整版的仓库,并没有进行这个操作,所以仅能提供一个思路,大体上与建立完整版同步类似

1. 创建一台新的空虚拟机

这一步有两个选择,这两个方法都能下载软件及其所需的依赖

  1. 打开yum缓存选项(推荐)

    1. [main]
    2. cachedir=/var/cache/yum/$basearch/$releasever
    3. keepcache=1
  2. yum安装时使用downloadonly选项

    1. yum install -y --downloadonly <package_name>

2. yum安装常用软件

3. 将yum缓存下来的软件包拷贝到yum目录

  1. cd /var/cache/yum/x86_64/7
  2. cp -r * /yum/

4. 创建元数据

如果将目录也拷贝过去的话,这一步与完整版一样

如果仅仅是rpm包拷贝到yum目录下,直接对yum目录进行createrepo

  1. createrepo /yum/
  2. createrepo --update /yum/

5. 编写仓库repo文件

编写仓库repo文件的核心是要将地址指向存放rpm文件的目录

6. 开始使用