1,运行环境,一台centos虚拟机即可,最好两台,这里我们使用虚拟机本地挂载的ISO文件,如果你想要更多可以去百度自己找。

2,接着我们先安装apache,然后启动apache,并且把80端口打开(nginx同理,这里我们就演示apache了)

1
2
[root@localhost]#yum install apache -y && systemctl start apache ; systemctl enable apache
[root@localhost]#firewall-cmd --add-port=80/tcp --permanent ; firewall-cmd --reload

3,进入到源目录,把目录下所有文件拷贝到/backup下

1
2
[root@localhost]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# makedir /backup && cp * /backup

4,观看虚拟机右下角光盘是否连接,如果未连接请手动连接然后挂载至/mnt目录下,再把元数据和RPM包拷贝至apache网页目录下

1
2
3
4
5
6
7
8
9
[root@localhost yum.repos.d]mount /dev/sr0 /mnt && mkdir -p /var/www/html/CentOS/8/
[root@localhost yum.repos.d]cp -r /mnt/AppStream /var/www/html/CentOS/8/
[root@localhost yum.repos.d]cp -r /mnt/BaseOS /var/www/html/CentOS/8/
tips:为了省时间,这里我们也可以做软连接过去
[root@localhost yum.repos.d]ln -s /mnt/AppStream /var/www/html/CentOS/8/AppStream
[root@localhost yum.repos.d]ln -s /mnt/BaseOS /var/www/html/CentOS/8/BaseOS
tips2:当然我们也可以在网上自行下载相关文件,不过不推荐
[root@localhost yum.repos.d]yum reposync --repoid=localbase --download -p /var/www/html/CentOS/8/BaseOS
[root@localhost yum.repos.d]yum reposync --repoid=localappstream --download -p /var/www/html/CentOS/8/AppStream

5,接下来我们在当前目录新建一个repo文件,地址指向指向本地http,如需其他源请自行百度,推荐阿里源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@localhost yum.repos.d]vim test.repo
//这是我的配置,仅供参考
[localbase] //repo id
name=local base //仓库名
#baseurl=file:///mnt/BaseOS //本地源路径,记得使用前先挂载
baseurl=http://localhost/mnt/BaseOS //http路径,这里我使用的一台机器,所以是localhost,也可以填127.0.0.1
#baseurl=https://example/some/path //https路径
#baseurl=ftp:///you/ftp/path //ftp路径
#baseurl=http://pan.alybaba.top/CentOS.Download.RPM.1 //这两个是我搭建的测试站点,如果觉得操作太麻烦,可直接复制该url
#baseurl=http://pan.alybaba.top/CentOS.Download.RPM
gpgcheck=0 //是否校验,默认为1
#enable=1 //是否用,默认为1。为0则不使用该源
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial //配合校验使用
#failovermethod={roundrobin,priority} //有多个baseurl,此项决定访问规则,roundrobin 随机,priority:按顺序访问
#cost=1000 //优先级

[localappstream] //链接可以分多个文件,也可以放在一起,但是名字一定要见名知意
name=local appstream
baseurl=file:///mnt/AppStream
#baseurl=http://localhost/AppStream
gpgcheck=1
enable=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

:wq //保存退出

6,接着使用yum命令做一些操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost yum.repos.d]yum clean all && yum makecache
[root@localhost yum.repos.d]yum repolist //如果想查看RPM包数量,可以加-v选项
repo id repo name
localappstream local appstream
localbase local base
[root@localhost yum.repos.d]yum list //查看所有RPM包
[root@localhost yum.repos.d]yum install package -y //安装软件包
[root@localhost yum.repos.d]yum remove package -y //卸载软件包,不会卸载依赖
[root@localhost yum.repos.d]yum autoremove package -y //卸载软件包及其依赖
[root@localhost yum.repos.d]yum reinstall package -y //重新安装软件包
[root@localhost yum.repos.d]yum search package //搜索包
[root@localhost yum.repos.d]yum info package //查看包信息
[root@localhost yum.repos.d]yum provides command //查看命令所需要安装的包
[root@localhost yum.repos.d]yum clean all //清理缓存
[root@localhost yum.repos.d]yum makecache //生成缓存
[root@localhost yum.repos.d]yum history //查询安装历史
[root@localhost yum.repos.d]yum install --downloadonly package --downloaddir=/you/package/path
//这个命令是指只下载包和该包的依赖包到指定目录且不安装,该命令对于不联网的系统,解决依赖关系非常好用
[root@localhost yum.repos.d]yum·············

7,到这里我们的私仓就搭建完毕了,总结一下,该操作在红帽初级认证必考,所以一定要熟练。其次我们来说重要的点,在repo配置文件中,其实只需要repoid,baseurl,以及gpgcheck这三项,如果没有特殊要求的话,其次baseurl一定要带head,不然一定会报错的,就四种请求头:http,https,ftp和本地。其次好像centos8就把包的作用分的很清楚,8以下都是在一个Base文件下的,所以说有空还是要去了解下包名的意思。还有能够被识别的源目录下一定会有repodata和Packages两个文件夹,不然也会报错。上层文件名无所谓,一个baseurl可以写多条,意思是备份把,就是这一条url挂了,往下一条url找,但是问题是如果是该url没有找到对应的package会不会往下找下去,还是换其他的repo。最后说下dnf命令,8以上才有,两个命令基本上是一样。