YUM源仓库配置

YUM源仓库配置

YUM简介
  1. 基于RPM包构建的软件更新机制 (下载时是最新版本)
  2. 可以自动解决依赖关系(软件安装时解决依赖关系)
  3. 所有软件包由集中的YUM软件仓库提供(下载来源,yum源)
  4. 有时仓库里有文件但仍然无法下载,原因yum指向问题,没有让仓库生效
  5. 在/etc/repos.d目录下,文件后缀是repo的是YUM仓库的源。
软件仓库的提供方式

1.FTP服务:ftp://… 既可以是在线也可以是本地
2.HTTP服务:http://… 在线源
3.本地目录:file://… 本地源
4.baseurl=file:///mnt 本地源 file://:源自带两个//

RPM软件包的来源

1.CentOS发布的RPM包集合 (光盘自带)
2.第三方组织发布的RPM包集合(网页网站发布,可能会缺少一些依赖包;受网速影响)
3.用户自定义的RPM包集合(先下载软件包,依赖包都存放在一个自定义的目录下,)

以ftp方式构建YUM仓库

1.在服务器上安装ftp

yum -y install vsftpd

2.命名服务器地址
vi /etc/resolv.conf    
yum clean all                       清除缓存
yum makecache                       建立缓存

在这里插入图片描述在这里插入图片描述

3.查看挂载
vi /etc/yum.repos.d/local.repo 
df -Th

在这里插入图片描述

4.进行匿名登录设置
[root@server1 ~]# vi /etc/vsftpd/vsftpd.conf    编辑配置文件

添加:
anon_umask=022                          设置匿名账户的权限为755
anon_other_ write_enable=YES            允许匿名账户其它写的权限
修改:   
anon_upload_enable=YES                  允许匿名账户上传
anon_mkdir_write_enable=YES             允许匿名账户新建文件或目录
listen=YES                              监听IPv4地址的请求
listen_ipv6=NO                          监听IPv6地址的请求

[root@server1 ~]# systemctl restart vsftpd       开启服务
[root@server1 ~]# netstat -anpt | grep vsftpd    查看服务
tcp        0      0 0.0.0.0:21           0.0.0.0:*        LISTEN      62372/vsftpd        
[root@server1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$"    过滤#,空格

在这里插入图片描述

5.在一个客户机上登录安装ftp
[root@server2 ~]# yum -y install ftp
6.查看文件上传是否成功
[root@server2 ~]# ftp 20.0.0.10    

在这里插入图片描述
成功,说明ftp匿名用户登录完成

7.在服务器上查看yum源文件
 [root@server1 ~]# cd /etc/yum.repos.d/
 [root@server1 yum.repos.d]# ls -lh

在这里插入图片描述

8.移动所有源文件到backup中,并创建新的目录源文件f.repo
[root@server1 yum.repos.d]# mv *.repo backup
[root@server1 yum.repos.d]# ls -lh
[root@server1 yum.repos.d]# vi f.repo

在这里插入图片描述

9. 查看配置文件
[root@server1 yum.repos.d]# cd /var/ftp
[root@server1 ftp]# ls -lh

在这里插入图片描述

10.移动所有挂载目录下的文件到ftp下
[root@server1 ftp]# cp -rf /mnt/* /var/ftp
[root@server1 ftp]# cd /var/ftp
[root@server1 ftp]# ls -lh

在这里插入图片描述

11.清除所有缓存,建立缓存
yum clean all
yum makecache
12.安装ftp进行测试,ftp方式的yum仓库源是否可行
yum -y install ftp

在这里插入图片描述

可行,说明以ftp方式的yum源仓库可行

YUM常用命令

1.查询软件包
yum list [软件名]   查询系统中的软件安装情况
yum info [软件名]   详细信息,安装时间,大小等
yum search <关键词>  查询指定的软件包
yum whatprovides <关键词> 查询提供的详细情况
2.查询软件包组
yum  grouplist    [包组名]           列出以该组名命名的软件包
yum  groupinfo    <包组名>
3.安装软件
yum install [软件名]
yum groupinstall <软件名>
4.升级软件
yum update
yum groupupdate
5.卸载软件
yum remove          <软件名>
yum groupremove     <包组名>
<think>好的,我现在需要帮助用户解决在配置yum时遇到的“mount /dev/sr0 找不到媒体”的问题,同时正确配置yum仓库。根据用户提供的引用内容,问题主要出在虚拟机光驱未正确连接或配置上。我需要综合之前的对话和用户给出的引用信息来制定解决方案。 首先,用户提到在挂载/dev/sr0到/iso时多次报错,引用中说明问题原因是设备未连接,勾选后解决。这说明用户可能是在虚拟机环境中,光驱设备未被正确连接或ISO镜像未正确加载。因此,我需要首先确认虚拟机的光驱设置是否正确,包括是否已连接并指向有效的ISO文件。 接下来,用户想配置yum仓库,这通常需要挂载安装镜像作为本地仓库。所以,正确挂载ISO是配置yum的前提。之前的回答已经涵盖了检查设备、加载驱动、挂载步骤等,但用户现在可能需要更具体的指导,特别是在挂载成功后如何配置yum文件。 此外,用户引用的内容中提到“两个都要勾选”,可能是指虚拟机设置中的“已连接”和“启动时连接”选项。需要提醒用户检查这些设置,并确保ISO路径正确。同时,用户可能在挂载时使用了错误的目录,比如未创建挂载点,或者挂载点不存在,这也需要检查。 另外,用户可能在物理机或不同虚拟化平台(如VMware、VirtualBox)中使用,需要通用步骤。例如,创建挂载目录、确保设备识别、处理SELinux或防火墙问题等。还有,用户可能需要了解如何验证挂载是否成功,比如通过ls /mnt/cdrom查看内容。 最后,用户需要配置yum,这涉及到编辑.repo文件,指定baseurl为挂载路径,并测试yum是否正常工作。需要确保.repo文件的正确性,以及gpgcheck等参数的设置是否合适。可能还需要清理旧的yum缓存,避免冲突。 总结步骤应为: 1. 检查虚拟机光驱设置,确保已连接并指向正确ISO。 2. 确认系统识别到/dev/sr0设备。 3. 创建挂载点目录,如/mnt/cdrom。 4. 挂载ISO到该目录,并验证。 5. 配置yum文件,指向挂载路径。 6. 测试yum命令,确保可用。 同时,需要处理可能出现的其他问题,如ISO文件损坏、驱动未加载、权限问题等。需要给出具体命令和检查方法,帮助用户逐步排查。此外,引用中的经验提到右下角DVD未连接,需要提醒用户在虚拟机界面检查连接状态,这可能被忽略。</think>### 分步解决 CentOS/RHEL 配置本地 yum 及处理挂载错误 --- #### **一、解决 `mount /dev/sr0` 找不到媒体错误** ##### 1. **验证虚拟机光驱连接状态** - **VMware/VirtualBox 设置**: 1. 关闭虚拟机 → 右键虚拟机设置 → 选择 **CD/DVD 设备**。 2. 确保勾选 **已连接** 和 **启动时连接**(关键步骤!参考引用[^1][^2])。 3. 指定 ISO 路径:选择本地 CentOS 镜像文件(如 `CentOS-7-x86_64-DVD-2009.iso`)。 - **物理机检查**: ```bash # 检查光驱是否被内核识别 dmesg | grep -i cdrom # 输出应包含 "sr0: CDROM" ``` ##### 2. **挂载 ISO 镜像到本地目录** ```bash # 创建挂载目录(名称可自定义,但需与后续步骤一致) sudo mkdir -p /mnt/cdrom # 执行挂载(指定文件系统类型 iso9660) sudo mount -t iso9660 /dev/sr0 /mnt/cdrom ``` - **若仍报错**: ```bash # 强制重新扫描光驱设备 sudo eject /dev/sr0 # 弹出虚拟光驱(若无反应可跳过) sudo modprobe -r sr_mod && sudo modprobe sr_mod # 重新加载光驱驱动 ``` --- #### **二、配置本地 yum ** ##### 1. **备份原有仓库配置** ```bash sudo mkdir -p /etc/yum.repos.d/backup sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ ``` ##### 2. **创建本地仓库文件** ```bash sudo vi /etc/yum.repos.d/local.repo ``` 输入以下内容(**注意路径与挂载点一致**): ```ini [Local-BaseOS] name=CentOS Local Repository baseurl=file:///mnt/cdrom/BaseOS # 根据 ISO 实际路径调整 gpgcheck=1 enabled=1 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7 [Local-AppStream] name=CentOS AppStream baseurl=file:///mnt/cdrom/AppStream # CentOS 8+ 需此路径 gpgcheck=1 enabled=1 ``` ##### 3. **验证仓库配置** ```bash # 清理缓存并列出可用仓库 sudo yum clean all sudo yum repolist all # 应显示 Local-BaseOS 和 Local-AppStream ``` --- #### **三、关键问题排查** - **场景 1:挂载后目录为空** - 检查 ISO 完整性:`file CentOS-7-x86_64-DVD.iso` 应输出 `ISO 9660 CD-ROM filesystem`。 - 重新下载 ISO 并验证 SHA256 校验码。 - **场景 2:yum 报错 "Cannot find a valid baseurl"** - 确认挂载路径与 `baseurl` 一致:`ls /mnt/cdrom/BaseOS` 应显示 RPM 包。 - 关闭防火墙干扰:`sudo systemctl stop firewalld`(临时测试)。 - **场景 3:物理机光驱无法识别** ```bash # 尝试读取光盘数据 sudo dd if=/dev/sr0 of=~/test.iso bs=2048 count=100 # 测试前 100 块数据 ``` --- ### 最终验证 ```bash # 安装测试软件(如 httpd) sudo yum install httpd -y # 应正常从本地下载 ``` --- ### 附:原理说明 1. **挂载过程**:Linux 通过设备文件 `/dev/sr0` 访问光驱,需内核模块 `sr_mod` 支持。 2. **yum 配置**:`baseurl` 指向挂载路径后,yum 会解析该路径下的 `repodata` 元数据文件[^1]。 --- ### 相关问题 1. 如何为 CentOS Stream 8 配置在线 yum ? 2. 使用 `createrepo` 命令创建自定义本地仓库的步骤是什么? 3. 如何通过 `mount` 命令挂载网络共享(NFS)作为 yum
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值