草庐IT

Linux搭建YUM仓库

chiu莓 2023-06-17 原文

目录

一、yum仓库简介

1.1简介

1.2yum的实现过程原理

二、yum配置文件以及操作

2.1 配置YUM本地仓库

2.2安装httpd服务

三、采用内网搭建yum仓库

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

3.2 ftp方式搭建yum仓库

 四、总结


一、yum仓库简介

1.1简介

  • 基于RPM包构建的软件更新机制
  • 可以自动解决依赖关系
  • 所有软件包由集中的YUM软件仓库提供
  • c/s架构

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

 

1.2yum的实现过程原理

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

二、yum配置文件以及操作

2.1 配置YUM本地仓库

首先我们需要挂载:

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

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

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

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

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

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

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

2.2安装httpd服务

[root@localhost ~]# yum install httpd -y                         #安装指令

[root@localhost ~]# rpm -q httpd                                 #查询httpd是否安装成功
httpd-2.4.6-97.el7.centos.4.x86_64
[root@localhost ~]# 

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

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

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

三、采用内网搭建yum仓库

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

setenforce 0
systemctl stop firewalld.service


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

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


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

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


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

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


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

yum clean all &&yum makecache
yum list all


3.2 ftp方式搭建yum仓库

首先我们需要下载vsftpd服务

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

启动服务

[root@localhost ~]# systemctl start vsftpd

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

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

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

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

ftp.repo的具体内容如下:

[ftp]
name=centos7
baseurl=ftp://192.168.88.100/centos7
gpgcheck=0
enabled=1

~                                                                               
~                           

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

ftp的根目录就是/var/ftp

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

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

 四、总结

搭建yum仓库方式

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

rpm软件包的来源

  1. centos发布的rpm包的集合
  2. 第三方组织发布的rpm包集合
  3. 用户自定义的rpm包集合

有关Linux搭建YUM仓库的更多相关文章

  1. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  2. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  3. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  4. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

  5. ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件? - 2

    我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby​​所需的包和安装过程;它引

  6. Centos7-yum安装mysql-修改密码-无密码登录-安全配置 - 2

    目录1、yum安装mysql修改密码(1)在mysql里面修改(2)第二种方式,利用mysqladmin修改密码2、没有密码,登录mysql修改密码3、mysql的安全设置1、yum安装mysql在CentOS中默认安装有MariaDB(MySQL的一个分支),安装完成之后可以直接覆盖MariaDB。rpm-qa|grepmariadb查询是否安装了mariadbrpm-e--nodepsmariadb-libs-5.5.60-1.el7_5.x86_64卸载mariadwgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.

  7. Linux网络编程必备的POSIX API的细节 - 2

    目录POSIXAPI大集合五元组三次握手的过程,内核协议栈分析listen函数DDOS攻击,洪水攻击DDOS攻击的应对措施数据发送 怎么保证顺序?如何保证包地顺序到达(序号+确认应答机制+重传)TCP断开连接的过程问题1.大量的CLOSE_WAIT+FIN_WAIT2是为啥?time_wait状态存在的原因?POSIXAPI大集合五元组(sip,sport,dip,dport,protocol)三次握手的过程,内核协议栈分析内核协议栈中是有内核数据结构的.  我们send/write数据,都是先发送到内核协议栈中,然后由内核协议栈封装发送到物理介质中传输到对端的对端的接收过程也是经有内核协议栈

  8. Linux export 命令及如何删除export设置的环境变量 - 2

    背景:Linuxexport命令用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。语法:export[-fnp][变量名称]=[变量设置值]参数说明:-f 代表[变量名称]中为函数名称。-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p 列出所有的shell赋予程序的环境变量。实例:列出当前所有的环境变量#export-p//列出当前的环境变量值定义环境变量赋值#exportMYENV=7//定义环境变量并赋值添加环境变量:默认保存在

  9. Linux操作系统CentOS7安装Nginx[详细版] - 2

    Nginx安装1.官网下载Nginx2.使用XShell和Xftp将压缩包上传到Linux虚拟机中3.解压文件nginx-1.20.2.tar.gz4.配置nginx5.启动nginx6.拓展(修改端口和常用命令)(一)修改nginx端口(二)常用命令1.官网下载Nginxhttp://nginx.org/en/download.html这里我下载的是1.20.2版本,大家按需下载对应稳定版即可2.使用XShell和Xftp将压缩包上传到Linux虚拟机中没有XShell可以参考《Linux操作系统CentOS7连接XShell》3.解压文件nginx-1.20.2.tar.gz1)检查是否存

  10. 【Linux】初识Linux --指令Ⅰ - 2

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法,Linux…感兴趣就关注我吧!你定不会失望。目录1.ls显示当前目录下的文件内内容2.pwd-显示用户当前所在的目录3.cd-改变工作目录。将当前工作目录改变到指定的目录下1.cd-回到上一次待的工作空间2.cd..返回上一层目录1.相对路径:cd../aurora2.绝对路径:cd/home/aurora/lesson1/aurora3.cd~进入用户家目录4.cd/进入root目录4.mkdir-新建目录5.rmdir/rm-删除1.rmdir删除空文件夹2.rm删除1.rm-f2.rm-i3.rm-r1.ls显示当前目

随机推荐