0


Linux搭建YUM仓库

一、yum仓库简介

1.1简介

  • 基于RPM包构建的软件更新机制

  • 可以自动解决依赖关系

  • 所有软件包由集中的YUM软件仓库提供

  • c/s架构

    1. linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
    2. yum软件仓库中的rpm软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的

1.2yum的实现过程原理

  1. 先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

二、yum配置文件以及操作

2.1 配置YUM本地仓库

首先我们需要挂载:

  1. [root@localhost ~]# mount /dev/sr0/mnt #挂载
  2. mount: /etc/fstab 中找不到 /dev/sr0/mnt
  3. [root@localhost ~]# mount /dev/sr0 /mnt
  4. mount: /dev/sr0 写保护,将以只读方式挂载
  5. mount: /dev/sr0 已经挂载或 /mnt
  6. /dev/sr0 已经挂载到 /run/media/weiran/CentOS 7 x86_64
  7. /dev/sr0 已经挂载到 /mnt
  8. [root@localhost ~]# df
  9. 文件系统 1K-块 已用 可用 已用% 挂载点
  10. /dev/mapper/centos-root 20961280 3773780 17187500 19% /
  11. devtmpfs 917604 0 917604 0% /dev
  12. tmpfs 933524 0 933524 0% /dev/shm
  13. tmpfs 933524 9224 924300 1% /run
  14. tmpfs 933524 0 933524 0% /sys/fs/cgroup
  15. /dev/sda1 5232640 182376 5050264 4% /boot
  16. tmpfs 186708 32 186676 1% /run/user/1000
  17. /dev/sr0 4414592 4414592 0 100% /mnt #挂载成功
  18. tmpfs 186708 0 186708 0% /run/user/0
  19. [root@localhost ~]#

然后我们将repo.d下面的文件放到 创建的bak目录下

  1. [root@localhost ~]# cd /etc/yum.repos.d/ #进入repos.d目录
  2. [root@localhost yum.repos.d]# ls
  3. bak zhu.repo
  4. [root@localhost yum.repos.d]# mkdir bak #创建bak文件
  5. [root@localhost yum.repos.d]# mv *.repo bak/ #将所有的红帽文件复制到bak下面

然后我们需要创建一个centos7.repo文件,并且进入编辑

  1. [root@localhost yum.repos.d]# vim centos7.repo
  1. [centos7] #仓库的名字
  2. name=centos7
  3. baseurl=file:///mnt #所挂载的目录
  4. enable=1 #1开机自启动 0是开机不自启
  5. gpgcheck=0 #是否检测

接下我们需要清楚清空yum并且建立元数据

  1. [root@localhost yum.repos.d]# yum clean all && yum makecache #清理缓存并建立元数据
  2. 已加载插件:fastestmirror, langpacks
  3. 正在清理软件源: centos7
  4. Cleaning up everything
  5. Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
  6. Cleaning up list of fastest mirrors
  7. 已加载插件:fastestmirror, langpacks
  8. centos7 | 3.6 kB 00:00
  9. (1/4): centos7/group_gz | 156 kB 00:00
  10. (2/4): centos7/filelists_db | 3.1 MB 00:00
  11. (3/4): centos7/primary_db | 3.1 MB 00:00
  12. (4/4): centos7/other_db | 1.2 MB 00:00
  13. Determining fastest mirrors
  14. 元数据缓存已建立

2.2安装httpd服务

  1. [root@localhost ~]# yum install httpd -y #安装指令
  2. [root@localhost ~]# rpm -q httpd #查询httpd是否安装成功
  3. httpd-2.4.6-97.el7.centos.4.x86_64
  4. [root@localhost ~]#

最后我们就需要关闭防火墙和selinux

  1. [root@localhost ~]# systemctl stop firewalld.service
  2. [root@localhost ~]# setenforce 0
  3. [root@localhost ~]#

然后我们在浏览器输入自己虚拟机的ip地址,就可以看到安装成功的提示

三、采用内网搭建yum仓库

3.1http方式内网环境搭建yum仓库

  1. setenforce 0
  2. systemctl stop firewalld.service

#两台机子关闭防火墙和selinux
服务端:192.168.109.131上的操作

  1. yum install -y httpd #下载httpd服务
  2. systemctl start httpd #启动服务
  3. cd /var/www/html/ #切换到httpd的目录下
  4. mkdir centos7 #创建centos7文件夹
  5. ls
  6. mount /dev/sr0 /var/www/html/centos7/ #挂载

网页访问本机IP
客户端:192.168.88.100上的操作

  1. cd /etc/yum.repos.d/ #切换到yum.repos.d 目录下
  2. mkdir bak #创建bak文件夹
  3. mv *.repo bak #复制所有的红帽软件到bak文件下
  4. vim http.repo #编辑http.repo

#####################

  1. [http] #仓库名
  2. name=centos
  3. baseurl=http://192.168.88.100/centos7 #目标访问IP地址和文件地址
  4. gpgcheck=0
  5. enabled=1

#######################

  1. yum clean all &&yum makecache
  2. yum list all

3.2 ftp方式搭建yum仓库

首先我们需要下载vsftpd服务

  1. [root@localhost ~]# yum install -y vsftpd
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. 正在解决依赖关系
  5. --> 正在检查事务
  6. ---> 软件包 vsftpd.x86_64.0.3.0.2-22.el7 将被 安装
  7. --> 解决依赖关系完成

启动服务

  1. [root@localhost ~]# systemctl start vsftpd

然后我们需要下载并创建文件夹

  1. [root@localhost ~]# systemctl start vsftpd #启动vsftpd服务
  2. [root@localhost ~]# cd /var/ftp #切换目录
  3. [root@localhost ftp]# mkdir centos7 #创建centos7文件夹
  4. [root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/ #挂载
  5. mount: /dev/sr0 写保护,将以只读方式挂载
  6. [root@localhost ftp]# systemctl restart vsftpd #重启

然后我们需要在第二台机子(192.168.88.99)上操作:

  1. [root@localhost ~]# yum install ftp -y #下载ftp服务
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. 正在解决依赖关系
  5. --> 正在检查事务
  6. ---> 软件包 ftp.x86_64.0.0.17-67.el7 将被 安装
  7. --> 解决依赖关系完成
  1. [root@localhost ~]# cd /etc/yum.repos.d/
  2. [root@localhost yum.repos.d]# mkdir bak
  3. mkdir: 无法创建目录"bak": 文件已存在
  4. [root@localhost yum.repos.d]# mv *.repo bak
  5. [root@localhost yum.repos.d]# vim ftp.repo

ftp.repo的具体内容如下:

  1. [ftp]
  2. name=centos7
  3. baseurl=ftp://192.168.88.100/centos7
  4. gpgcheck=0
  5. enabled=1
  6. ~
  7. ~

baseurl=ftp://192.168.88.100/centos7的意思是:从服务端的centos7目录中读取

ftp的根目录就是/var/ftp

接下来就是清空缓存并建立元数据

  1. [root@localhost yum.repos.d]# yum clean all && yum makecache
  2. 已加载插件:fastestmirror, langpacks
  3. 正在清理软件源: ftp
  4. Cleaning up everything
  5. Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
  6. Cleaning up list of fastest mirrors
  7. 已加载插件:fastestmirror, langpacks
  8. ftp | 3.6 kB 00:00
  9. (1/4): ftp/group_gz | 156 kB 00:00
  10. (2/4): ftp/filelists_db | 3.1 MB 00:00
  11. (3/4): ftp/primary_db | 3.1 MB 00:00
  12. (4/4): ftp/other_db | 1.2 MB 00:00
  13. Determining fastest mirrors
  14. 元数据缓存已建立
  15. [root@localhost yum.repos.d]#

四、总结

搭建yum仓库方式

  1. FTP服务
  2. HTTP服务
  3. 本地仓库

rpm软件包的来源

  1. centos发布的rpm包的集合
  2. 第三方组织发布的rpm包集合
  3. 用户自定义的rpm包集合
标签: 云计算 安全 macos

本文转载自: https://blog.csdn.net/Weiran_001/article/details/123763441
版权归原作者 chiu莓 所有, 如有侵权,请联系我们删除。

“Linux搭建YUM仓库”的评论:

还没有评论