搭建本地yum源
搭建本地yum仓库
m01(yum仓库) | web01(客户端) |
---|---|
172.16.1.61 | 172.16.1.7 |
安装createrepo软件
yum(Yellow dog Updater,Modified)主要的功能是方便添加、删除和更新rpm软件包。可以解决软件包依存问题,更便于管理大量的系统更新问题。它可以同时配置多个仓库或叫资源库(repository),就是存放更新和依存的软件包的地方。
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
[root@m01 base]# yum -y install createrepo
-u --baseurl <url> 指定Base URL的地址
-o --outputdir <url> 指定元数据的输出位置
-p --pretty 确保生成的所有xml都格式化了
-x --excludes <packages> 指定在形成元数据时需要排除的包
-n --includepkg 通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。
-q --quiet 安静模式执行操作,不输出任何信息。
-g --groupfile <groupfile> 指定本地软件仓库的组划分
-v --verbose 输出详细信息。
--update 如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。
-d --database 该选项指定使用SQLite来存储生成的元数据,默认项。
createrepo初始化索引文件
[root@m01 ~]# mkdir -p /html/yum
[root@m01 ~]# createrepo -pdo /html/yum/ /html/yum/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@m01 ~]#
[root@m01 /]# cd /html/yum/
[root@m01 yum]# ll
total 4
drwxr-xr-x 2 root root 4096 Aug 1 18:15 repodata
[root@m01 yum]# tree
.
└── repodata
├── 01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
├── 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
├── 5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
├── 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
├── 7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
├── dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
└── repomd.xml
1 directory, 7 files
[root@m01 yum]#
安装nginx使其提供web服务
[root@m01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[root@m01 ~]# yum -y install nginx
[root@m01 yum]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /html/yum;
index index.html index.htm;
}
}
[root@m01 yum]# systemctl restart nginx
增加新的rpm包
[root@m01 yum]# pwd
/html/yum
[root@mo1 yum]# yum -y install yum-utils
[root@mo1 ~]# yumdownloader nginx
[root@m01 yum]# ls
nginx-1.16.0-1.el7.ngx.x86_64.rpm
[root@m01 yum]#
[root@m01 yum]# createrepo --update ./
Spawning worker 0 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@m01 yum]#
客户端配置yum源地址
[root@web01 yum.repos.d]# vim base.repo
[base]
name=base
baseurl=http://172.16.1.61/
gpgcheck=0
enabled=1
[root@web01 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base base 1
repolist: 1
[root@web01 yum.repos.d]#
同步阿里云镜像并搭建本地yum仓库
更改yum源为阿里源
[root@m01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@m01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装相关软件
[root@m01 ~]# yum -y install createrepo yum-utils
[root@m01 ~]# reposync --help
-c CONFIG, --config=CONFIG ---要使用的配置文件(默认为/etc/yum.conf)
--source ---源代码对源代码包进行操作
-n --newest-only ---只下载最新的软件包
-p ---将包下载到:默认为当前目录
同步阿里源到本地目录
#创建本地目录
[root@m01 ~]# mkdir /mirrors/
#同步阿里源到本地目录
[root@m01 ~]# reposync -p /mirrors/
#创建索引
[root@m01 ~]# createrepo -pdov /mirrors/base/ /mirrors/base/
[root@m01 ~]# createrepo -pdov /mirror/extras/ /mirror/extras/
[root@m01 ~]# createrepo -pdov /mirror/updates/ /mirror/updates/
[root@m01 ~]# createrepo -pdov /mirror/epel/ /mirror/epel/
[root@m01 ~]#
配置nginx服务
[root@m01 ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /mirrors;
index index.html index.htm;
}
}
客户端更改yum仓库
[root@web01 yum.repos.d]# vim Centos-Base.repo
[base]
name=base
baseurl=http://172.16.1.61/base/
path=/
gpgcheck=0
enabled=1
[updates]
name=updates
baseurl=http://172.16.1.61/updates/
path=/
gpgcheck=0
enabled=1
[epel]
name=epel
baseurl=http://172.16.1.61/epel/
path=/
enabled=1
gpgcheck=0
[extras]
name=extras
baseurl=http://172.16.1.61/extras/
enabled=1
gpgcheck=0
[root@web01 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base base 10,019
epel epel 13,329
extras extras 419
updates updates 2,500
repolist: 26,267
[root@web01 yum.repos.d]#
更新阿里源仓库
#更新新的rpm包
[root@m01 ~]# reposync -np /mirror
#更新源数据
[root@m01 ~]# createrepo --update /mirrors/base/
[root@m01 ~]# createrepo --update /mirrors/extras/
[root@m01 ~]# createrepo --update /mirrors/updates/
[root@m01 ~]# createrepo --update /mirrors/epel/