案例七:shell实现开机自动挂载本地YUM仓库程序

本文介绍了一种通过shell脚本实现的自动化程序,用于在Linux系统中搭建YUM本地仓库,确保即使在网络不可用的情况下也能使用yum进行软件包的安装。脚本包括光盘的挂载、配置文件的创建、缓存清理以及开机自动挂载设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell实现开机自动挂载本地YUM仓库自动化程序,可以在没有网络的情况下也可以使用yum安装程序。Linux就该这么学

#!/bin/bash
#自动搭建yum本地仓库
#
cdrom () {
mount /dev/cdrom /media/cdrom &> /dev/null
[ $? -eq 0 ] && echo "挂载成功"
}
 
[ -d /media/cdrom ] || mkdir /media/cdrom
mount | grep -q /dev/sr0
if [ $? -eq 0 ]
then
umount /dev/sr0
cdrom
else
cdrom
fi

[ -d /etc/yum.repos.d/bak ] || mkdir /etc/yum.repos.d/bak
ls -l /etc/yum.repos.d/ | grep *repo > /dev/null
if [ $? -ne 0 ]
then
echo "正在移动文件到目录下"
mv /etc/yum.repos.d/*repo bak
else
echo "文件已经移动目录!"
fi
[ -e /etc/yum.repos.d/centos-media.repo ] || echo "[media]
name=CentOS-$releasever - Media
baseurl=file:///media/cdrom/
gpgcheck=0
enabled=1" > /etc/yum.repos.d/centos-media.repo
 
echo "清除yum缓存"
yum clean all &> /dev/null
echo "YUM已经搭建完成"
echo -n  "共有软件包:" 
yum repolist | tail -1 | awk -F':' '{print $2}' 
 
cat /etc/fstab | grep /dev/sr0 &> /dev/null
if [ $? -ne 0 ]
then
echo "正在写入开机自动挂载光盘"
echo "
/dev/sr0     /media/cdrom       iso9660 defaults 0 0
">> /etc/fstab
fi
<think>好的,我现在需要帮助用户解决在RedHat系统中配置开机自动挂载本地仓库的问题。用户提到了使用fstab和yum的方法。我需要先理清楚正确的步骤,并确保引用的资料准确。 首先,用户提到的参考资料中,引用[1]和[3]提到了使用mount命令挂载光驱到目录,比如/mnt或/opt/redhat。引用[4]则指出需要配置yum源的repo文件放在/etc/yum.repos.d/目录下,并且以.repo结尾。而引用[2]提到了使用autofs服务来实现开机自动挂载,不过用户可能更倾向于使用fstab的方法,所以可能需要比较这两种方法。 接下来,配置开机自动挂载通常有两种方法:一种是修改/etc/fstab文件,另一种是使用autofs服务。用户明确提到了fstab和yum,所以重点应该放在fstab配置和yum仓库设置上。 首先,关于挂载本地仓库,用户需要将光盘或ISO镜像挂载到一个目录。例如,使用/dev/cdrom或/dev/sr0设备,挂载到/mnt或自定义目录。然后,在/etc/fstab中添加相应的条目,确保开机自动挂载。这里需要注意文件系统类型,比如iso9660,以及挂载选项,如defaults,ro等。 然后,配置本地yum源需要创建.repo文件,指定baseurl为挂载目录的路径。需要确保.repo文件中的enabled=1,并且gpgcheck根据情况设置。引用[4]提到必须将.repo文件放在/etc/yum.repos.d/目录下,所以这一步是关键。 用户的问题可能涉及到如何正确编辑fstab,避免错误导致系统启动问题。需要提醒用户备份fstab,使用blkid获取UUID,或者确认设备名称正确。此外,挂载后运行mount -a测试,以及使用yum clean all和yum makecache更新缓存。 同时,参考资料中提到的autofs(引用[2])虽然用户没有特别要求,但可能作为备选方案。不过用户主要问的是fstab和yum配置,所以可能只需要简要提及,或者作为另一种方法。 现在需要将步骤分点说明,确保逻辑清晰,并正确引用资料中的内容。例如,挂载步骤引用[1]和[3],repo配置引用[4],而autofs作为替代方法引用[2]。 最后,生成相关问题需要考虑用户可能的后续疑问,比如故障排查、其他挂载方法、yum源优先级或网络源配置,这些都能帮助用户进一步解决问题。</think>在Red Hat系统中配置开机自动挂载本地仓库的方法可分为以下步骤: ### 一、配置fstab自动挂载 1. **创建挂载目录** ```bash mkdir -p /mnt/local_repo ``` 2. **获取设备标识** - 对于物理光驱,设备名通常为$ /dev/sr0 $或$ /dev/cdrom $ - 若使用ISO镜像文件,需通过$ blkid $命令获取UUID: ```bash blkid /path/to/your.iso ``` 3. **编辑/etc/fstab文件** 添加以下行(以ISO镜像为例): ```bash /dev/sr0 /mnt/local_repo iso9660 defaults,ro,auto 0 0 ``` 或使用UUID方式: ```bash UUID=xxxx-xxxx-xxxx /mnt/local_repo iso9660 defaults,ro 0 0 ``` [^3][^4] 4. **验证挂载** ```bash mount -a # 立即挂载所有配置 df -h # 查看挂载结果 ``` ### 二、配置本地YUM仓库 1. **创建repo文件** ```bash vi /etc/yum.repos.d/local.repo ``` 输入以下内容: ```ini [Local-Repo] name=Local Repository baseurl=file:///mnt/local_repo enabled=1 gpgcheck=0 ``` [^4] 2. **刷新YUM缓存** ```bash yum clean all yum makecache ``` ### 三、替代方案:autofs自动挂载 ```bash # 安装autofs yum install autofs # 配置/etc/auto.master /misc /etc/auto.misc # 编辑/etc/auto.misc添加 cdrom -fstype=iso9660,ro,nosuid,nodev :/dev/sr0 # 启动服务 systemctl enable --now autofs ``` [^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值