小胖学LInux day28:自制YUM仓库
Posted 城南花已开。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小胖学LInux day28:自制YUM仓库相关的知识,希望对你有一定的参考价值。
自制YUM仓库
YUM仓库配置文件
# 仓库名称
[base]
# 仓库描述
name=CentOS-$releasever - Base - mirrors.aliyun.com
# 仓库地址
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
# 检测签名机制(1:开启检测 0:关闭检测)
gpgcheck=1
# 签名机制秘钥地址
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
YUM仓库类型
# 1.远程仓库
http:// 端口:80
https:// 端口:443
ftp:// 端口:21
# 2.本地仓库
file:// 没有端口(本地协议)
## 协议:http:// https:// ftp:// file://
http:// 端口:80
https:// 端口:443
ftp:// 端口:21
file:// 没有端口(本地协议)
本地YUM仓库(file://)
## 先决条件
1:创建仓库的命令
- createrepo
2:还要有rpm包
- 网站获取
- 镜像获取
- yum源获取
3:yum源的配置文件
# 1.换一台新的虚拟机 安装创建仓库的命令
[root@localhost <sub>]# yum install -y vim
[root@localhost </sub>]# yum install -y createrepo
# 2:挂载镜像 获取rpm包
[root@localhost <sub>]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
# 3:创建一个仓库目录 必须以.repo结尾
[root@localhost </sub>]# mkdir /local_yum_repo
# 4:拷贝镜像所有rpm包到仓库目录中
[root@localhost <sub>]# cp /mnt/Packages/*.rpm /local_yum_repo/
# 5:先把目录变成仓库
[root@localhost </sub>]# createrepo /local_yum_repo/
Spawning worker 0 with 4070 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
# 6:检查是否把目录变成了仓库
[root@localhost <sub>]# ll -d /local_yum_repo/repodata/
drwxr-xr-x 2 root root 4096 Apr 25 10:10 /local_yum_repo/repodata/
# 7:压缩其他yum源
[root@localhost </sub>]# gzip -r /etc/yum.repos.d/
# 8:手写yum源配置文件(必须以repo结尾)
[root@localhost <sub>]# vim /etc/yum.repos.d/cssd.repo
[wyk_local] # 仓库名称
name=傻逼三三给爷 # 仓库描述
baseurl=file:///local_yum_repo # 仓库的地址 # ///因为系统盘前面是有一个/的
gpgcheck=0 # 关闭签名检测机制
enabled=1 # 开启仓库 默认开启 可写可不写
# 9:使用yum源
[root@localhost </sub>]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
wyk_local 傻逼三三给爷死 enabled: 4,070
repolist: 4,070
# 10:安装yum测试
[root@localhost ~]# yum install -y tree
Installing:
tree x86_64 1.6.0-10.el7 wyk_local 46 k
# ↑看看是不是走的你自己的仓库
Installed:
tree.x86_64 0:1.6.0-10.el7
Complete! # 完成
远程YUM仓库
## 先决条件
1:创建仓库的命令
- createrepo
2:还要有rpm包
- 网站获取
- 镜像获取
- yum源获取
3:yum源的配置文件
# 1:换一台新的虚拟机 安装创建仓库的命令
[root@localhost <sub>]# yum install -y vim
[root@localhost </sub>]# yum install -y createrepo
# 2:挂载镜像 获取rpm包
[root@localhost <sub>]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
# 3:安装vsftpd服务
[root@localhost </sub>]# yum install -y vsftpd
# 4:启动服务
[root@localhost <sub>]# systemctl start vsftp
# 5:检查端口
如果没有netstat 命令,则需要安装
[root@localhost </sub>]# yum install -y net-tools
[root@localhost <sub>]# netstat -lntup
[root@localhost </sub>]# netstat -lntup|grep vsftpd
tcp6 0 0 :::21 :::* LISTEN 1305/vsftpd
# 6:打开浏览器访问:ftp://10.0.0.100/
ftp://IP
# 7:关闭防火墙和selinux
[root@localhost <sub>]# systemctl stop firewalld
[root@localhost </sub>]# setenforce 0
# 8:创建仓库目录
[root@localhost <sub>]# mkdir /var/ftp/pub/base,epel
[root@localhost </sub>]# ll /var/ftp/pub/
drwxr-xr-x 2 root root 6 Apr 25 11:13 base
drwxr-xr-x 2 root root 6 Apr 25 11:13 epel
# 9:拷贝rpm包到base目录下
[root@localhost <sub>]# cp /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm /var/ftp/pub/base/
[root@localhost </sub>]# cp /mnt/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm /var/ftp/pub/base/
[root@localhost <sub>]# cp /mnt/Packages/zip-3.0-11.el7.x86_64.rpm /var/ftp/pub/base/
# 10:启动仓库pub 生成repodata文件夹 代表仓库完成
[root@localhost </sub>]# createrepo /var/ftp/pub
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost <sub>]# ll /var/ftp/pub/
total 4
drwxr-xr-x. 2 root root 92 Apr 26 00:09 base
drwxr-xr-x. 2 root root 6 Apr 25 19:13 epel
drwxr-xr-x. 2 root root 4096 Apr 26 00:05 repodata
### 注意:先生成仓库后拷贝包的的情况下
### 虽然包已存到仓库并在浏览器上可以找到 但远程接受不到 需要删除repodata文件 重新createrepo该仓库
## 在其他机器上手写yum仓库配置文件方法如下
# 1:换一个服务器 打包压缩原来的源仓库
[root@localhost </sub>]# gzip -r /etc/yum.repos.d/
[root@localhost <sub>]# yum repolist
Loaded plugins: fastestmirror
repolist: 0
# 2:vim一个文件 必须以.repo结尾
[root@localhost </sub>]# vim /etc/yum.repos.d/cssd.repo
# 3:写入内容如下
[wyk_base] # 仓库名字
name=这个是创世哥的仓库 # 仓库描述
baseurl=ftp://10.0.0.100/pub/ # 源网站地址
gpgcheck=0 # 关闭签名检测机制
enabled=1 # 开启仓库 默认开启 可写可不写
# 4:检查yum仓库是否加载成功
[root@01:02:51wudidesangege <sub>]\\ yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
wyk_base | 2.9 kB 00:00:00
wyk_base/primary_db | 3.3 kB 00:00:00
repo id repo name status
wyk_base 这个是创世哥的仓库 3
repolist: 3
# 5:使用yum安装测试
[root@localhost </sub>]# yum install -y tree
wyk_base_epel | 2.9 kB 00:00
wyk_base_epel/primary_db | 3.3 kB 00:00
Installing:
zip x86_64 3.0-11.el7 wyk_base 260 k
# ↑看看是不是走的你自己的仓库
Installed:
tree.x86_64 0:1.6.0-10.el7
Complete! # 完成
远程YUM仓库分开写两个仓库的方法
## 先决条件 和 前8步与上方相同
# 9:拷贝rpm包到base目录和epel下
[root@localhost <sub>]# cp /mnt/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm /var/ftp/pub/epel/
[root@localhost </sub>]# cp /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm /var/ftp/pub/base/
[root@localhost <sub>]# cp /mnt/Packages/zip-3.0-11.el7.x86_64.rpm /var/ftp/pub/base/
# 10:启动仓库pub 生成repodata文件夹 代表仓库完成
[root@localhost </sub>]# createrepo /var/ftp/pub/base
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost <sub>]# createrepo /var/ftp/pub/epel
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost </sub>]# ll /var/ftp/pub/base/
total 4
drwxr-xr-x. 2 root root 4096 Apr 26 01:32 repodata
[root@localhost <sub>]# ll /var/ftp/pub/epel
total 4
drwxr-xr-x. 2 root root 4096 Apr 26 01:33 repodata
### 注意:先生成仓库后拷贝包的的情况下
### 虽然包已存到仓库并在浏览器上可以找到 但远程接受不到 需要删除repodata文件 重新createrepo该仓库
## 在其他机器上手写yum仓库配置文件方法如下
# 1:换一个服务器 打包压缩原来的源仓库
[root@localhost </sub>]# gzip -r /etc/yum.repos.d/
[root@localhost <sub>]# yum repolist
Loaded plugins: fastestmirror
repolist: 0
# 2:vim一个文件 必须以.repo结尾
[root@localhost </sub>]# vim /etc/yum.repos.d/cssd.repo
# 3:写入内容如下
[wyk_base]
name=这个是创世哥的仓库
baseurl=ftp://10.0.0.100/pub/base/
gpgcheck=0
enabled=1
[wyk_epel]
name=这个是创世哥的2号仓库
baseurl=ftp://10.0.0.100/pub/epel/
gpgcheck=0
enabled=1
# 4:检查yum仓库是否加载成功
[root@01:44:31wudidesangege <sub>]\\
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
wyk_base | 2.9 kB 00:00:00
wyk_epel | 2.9 kB 00:00:00
(1/2): wyk_epel/primary_db | 1.1 kB 00:00:00
(2/2): wyk_base/primary_db | 1.1 kB 00:00:00
repo id repo name status
wyk_base 这个是创世哥的仓库 0
wyk_epel 这个是创世哥的2号仓库 0
repolist: 0
# 5:使用yum安装测试
[root@02:49:03wudidesangege </sub>]\\ yum install -y tree
wyk_base | 2.9 kB 00:00:00
wyk_epel | 2.9 kB 00:00:00
(1/2): wyk_base/primary_db | 2.5 kB 00:00:00
(2/2): wyk_epel/primary_db | 2.2 kB 00:00:00
Installing:
tree x86_64 1.6.0-10.el7 wyk_base 46 k
[root@03:02:53wudidesangege ~]\\ yum install -y net-tools
Installing:
net-tools x86_64 2.0-0.25.20131004git.el7 wyk_epel 306 k
## 报错:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Nothing to do
# 清除缓存即可 yum clean all
以上是关于小胖学LInux day28:自制YUM仓库的主要内容,如果未能解决你的问题,请参考以下文章