小胖学LInux day28(自制YUM仓库)

【小胖学LInux day28(自制YUM仓库)】学向勤中得,萤窗万卷书。这篇文章主要讲述小胖学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 idrepo namestatus
wyk_local傻逼三三给爷死enabled: 4,070
repolist: 4,070

# 10:安装yum测试
[root@localhost ~]# yum install -y tree
Installing:
treex86_641.6.0-10.el7wyk_local46 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
tcp600 :::21:::*LISTEN1305/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 root92 Apr 26 00:09 base
drwxr-xr-x. 2 root root6 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 kB00:00:00
wyk_base/primary_db| 3.3 kB00:00:00
repo idrepo namestatus
wyk_base这个是创世哥的仓库3
repolist: 3

# 5:使用yum安装测试
[root@localhost < /sub> ]# yum install -y tree
wyk_base_epel| 2.9 kB00:00
wyk_base_epel/primary_db| 3.3 kB00:00

Installing:
zipx86_643.0-11.el7wyk_base260 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 kB00:00:00
wyk_epel| 2.9 kB00:00:00
(1/2): wyk_epel/primary_db| 1.1 kB00:00:00
(2/2): wyk_base/primary_db| 1.1 kB00:00:00
repo idrepo namestatus
wyk_base这个是创世哥的仓库0
wyk_epel这个是创世哥的2号仓库0
repolist: 0

# 5:使用yum安装测试
[root@02:49:03wudidesangege < /sub> ]\\ yum install -y tree
wyk_base| 2.9 kB00:00:00
wyk_epel| 2.9 kB00:00:00
(1/2): wyk_base/primary_db| 2.5 kB00:00:00
(2/2): wyk_epel/primary_db| 2.2 kB00:00:00
Installing:
treex86_641.6.0-10.el7wyk_base46 k

[root@03:02:53wudidesangege ~]\\ yum install -y net-tools
Installing:
net-toolsx86_642.0-0.25.20131004git.el7wyk_epel306 k

## 报错:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Nothing to do
# 清除缓存即可 yum clean all


    推荐阅读