此次搭建Centos7yum源演示
一、搭建简单官方镜像yum源
1、下载Centos7完整镜像,此次使用的镜像:CentOS-7-x86_64-DVD-2009.iso 大小为4.38GB,解压该镜像,并重命名为Centos7。
2、创建一个网站,并修改该网站的配置文件,在server配置文件中插入以下配置参数
location / {
autoindex on; #列出整个目录
autoindex_exact_size off; #默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on; #默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
}
注意:如果列出的文件名中有中文一定要加上:charset utf-8; 否则中文会显示乱码
3、将解压好的文件夹上传至网站根目录,即可web访问文件
4、创建local.repo文件添加以下参数
vim /etc/yum.repos.d/local.repo
[local]
name=local
#在虚拟机网络环境中,服务端地址是这个
baseurl=http://内网IP或域名/Centos7
#是否可用,1表示可用,0表示不可用
enabled=1
gpgcheck=1
gpgkey=http://内网IP或域名/Centos7/RPM-GPG-KEY-CentOS-7
禁用或删除其他repo,进行测试
编辑其他repo文件,将enabled设置为0即可禁用
yum相关命令:
yum clean all #清理无用源
yum repolist #查看列表中是否存在
rpm --rebuilddb #表示重建rpm数据库
rpm --initdb #是初始化rpm数据库的意思。
yum check-update #列出所有可更新的软件清单命令
yum update #更新所有软件命令
yum install <package_name> #仅安装指定的软件命令
yum update <package_name> #仅更新指定的软件命令
yum list #列出所有可安裝的软件清单命令
yum remove <package_name> #删除软件包命令
yum search <keyword> #查找软件包命令
yum makecache #更新新的元数据缓存
yum clean packages #清除缓存目录下的软件包
yum clean headers #清除缓存目录下的 headers
yum clean oldheaders #清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
yum clean all #清理无用源
yum repolist #查看列表中是否存在
yum install xpp3 #实际安装一个软件试试看,比如xpp3
二、搭建与阿里云yum源定时同步的本地yum源
1、创建一个网站,并修改该网站的配置文件,在server配置文件中插入以下配置参数
location / {
autoindex on; #列出整个目录
autoindex_exact_size off; #默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on; #默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
}
注意:如果列出的文件名中有中文一定要加上:charset utf-8; 否则中文会显示乱码
2、新建创建rpm包的存放目录,下载阿里镜像的repo安装包,centos6就下载6的,7的就下载7的地址:https://mirrors.aliyun.com/repo/
还有下载一个epel源:地址可以百度
我们以centos7的镜像为例:
mkdir -p /www/wwwroot/内网IP或域名/centos/7/ #创建源rpm包的存放目录
cd /etc/yum.repos.d/
mkdir bak
mv Centos* bak #将系统自带的源备份到bak目录下
wget https://mirrors.aliyun.com/repo/Centos-7.repo
#还有下载一个epel源:地址可以百度
yum clean all #清理无用源
yum repolist #查看阿里的可用仓库,有需要的源标识表示已经成功了
yum makecache #更新新的元数据缓存
3、从阿里服务器将rpm同步到本地需要两个rpm软件createrepo 和 yum-utils #yum-utils包含reposync
yum install createrepo yum-utils -y #yum安装这两个包
4、使用reposync将已经配置好的阿里仓库镜像内的rpm包拉到本地,x86_64为本地已经配置好的仓库名,可以用yum repolist查看到有三个源标识(按需求拉取)
reposync -r base -p /www/wwwroot/内网IP或域名/centos/7/ #将base源同步至指定目录,此处需要大量等待时间
reposync -r extras -p /www/wwwroot/内网IP或域名/centos/7/ #将extras源同步至指定目录,此处需要大量等待时间
reposync -r updates -p /www/wwwroot/内网IP或域名/centos/7/ #将updates源同步至指定目录,此处需要大量等待时间
reposync -r epel -p /www/wwwroot/内网IP或域名/centos/7/ #将epel源同步至指定目录,此处需要大量等待时间
reposync -r epel-debuginfo -p /www/wwwroot/内网IP或域名/centos/7/ #将epel-debuginfo源同步至指定目录,此处需要大量等待时间
reposync -r epel-source -p /www/wwwroot/内网IP或域名/centos/7/ #将epel-source源同步至指定目录,此处需要大量等待时间
cd /www/wwwroot/内网IP或域名/centos/7/
createrepo -pdo /www/wwwroot/内网IP或域名/centos/7/ #创建源repo依赖关系
createrepo --update www/wwwroot/内网IP或域名/centos/7/ #更新源依赖关系
同步完成之后,本地的yum仓库已经基本完成了,只剩下定时更新了
mkdir /cron
vim /cron/repository.sh #编写同步脚本
reposync -r base -p /www/wwwroot/内网IP或域名/centos/7/os/x86_64/ -d #来删除本地老旧
reposync -r base -p /www/wwwroot/内网IP或域名/centos/7/os/x86_64/ #同步新的
reposync -r extras -p /www/wwwroot/内网IP或域名/centos/7/os/x86_64/ -d #来删除本地老旧
reposync -r extras -p /www/wwwroot/内网IP或域名/centos/7/os/x86_64/ #同步新的
reposync -r updates -p /www/wwwroot/内网IP或域名/centos/7/os/x86_64/ -d #来删除本地老旧
reposync -r updates -p /www/wwwroot/内网IP或域名/centos/7/os/x86_64/ #同步新的
reposync -r epel -p /www/wwwroot/内网IP或域名/centos/7/ -d #来删除本地老旧
reposync -r epel -p /www/wwwroot/内网IP或域名/centos/7/ #同步新的
reposync -r epel-debuginfo -p /www/wwwroot/内网IP或域名/centos/7/ -d #来删除本地老旧
reposync -r epel-debuginfo -p /www/wwwroot/内网IP或域名/centos/7/ #同步新的
reposync -r epel-sourcel -p /www/wwwroot/内网IP或域名/centos/7/ -d #来删除本地老旧
reposync -r epel-source -p /www/wwwroot/内网IP或域名/centos/7/ #同步新的
createrepo --update /www/wwwroot/内网IP或域名/centos/7/ #更新依赖关系
chmod 777 /cron/repository.sh
crontab -e #添加定时任务
0 0 1 * * sh /cron/repository.sh #每月1日0时更新yum仓库
5、接下来写自建yum源的repo文件
vi /etc/yum.repos.d/CentOS7.repo
[base]
name=Centos7-base
baseurl=http://yum.yft.local/centos/7/
enabled=1
gpgcheck=0
[extras]
name=Centos7-extras
baseurl=http://yum.yft.local/centos/7/
enabled=1
gpgcheck=0
[updates]
name=Centos7-updates
baseurl=http://yum.yft.local/centos/7/
enabled=1
gpgcheck=0
[epel]
name=Centos7-epel
baseurl=http://yum.yft.local/centos/7/
enabld=1
gpgcheck=0
[epel-debuginfo]
name=Centos7-epel-debuginfo
baseurl=http://yum.yft.local/centos/7/
enabld=1
gpgcheck=0
[epel-source]
name=Centos7-epel-source
baseurl=http://yum.yft.local/centos/7/
enabld=1
gpgcheck=0
使用该yum源报错时需要执行该命令
yum clean all
rpm --rebuilddb #表示重建rpm数据库