赞
踩
生产环境中,一般不会允许所有服务器都能访问公网,理想的情况是有几台服务器作为访问代理,同时作为缓存服务器。当服务器中有所需包时通过内网获取,如无则通过公网获取同时在本地保存。(镜像搭建yum源、版本兼容性最好)
常用搭建私有yum源的方法是createrepo生成本地仓库
本地源,一般是给内网机器用的,机器数量多的时候,还是有个自建源比较方便批量更新或者不能访问公网的时候用,比如你一千台服务器同事upgrade,要是走公网,你们的网管想打死你。在每台服务器上安装软件,都要先把安装盘上传上去,在配置本地yum服务,即麻烦又费时。可以在内网的一台linux服务器上安装yum服务,然后其他服务器直接修改repo文件使用yum服务就可以了。安装步骤如下:
1.RHEL版本
[root@oracle ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
即通过MobaXterm上传系统镜像文件到服务器指定目录(这个目录后续你能找到就行,我选择的是/home目录,如图所示)
mkdir /home/rhel/
- cd /home #切换用户
- mount -o loop /home/rhel-server-7.9-x86_64-dvd.iso /home/rhel
- df -h
重启之后,就会失效,可以设置开机自动挂载
打开终端或命令行界面,并使用 root 用户或具有 sudo 权限的用户登录到系统。
使用文本编辑器创建一个新的脚本文件,例如 mount_iso.sh
:
sudo vi /etc/init.d/mount_iso.sh
将以下内容复制并粘贴到脚本文件中:
- #!/bin/bash
-
- # 定义镜像文件和目标挂载目录
- ISO_FILE="/home/rhel-server-7.9-x86_64-dvd.iso"
- MOUNT_DIR="/home/rhel"
-
- # 检查挂载目录是否存在,若不存在则创建
- if [ ! -d "$MOUNT_DIR" ]; then
- mkdir "$MOUNT_DIR"
- fi
-
- # 挂载镜像文件
- mount -o loop "$ISO_FILE" "$MOUNT_DIR"
请确保替换 ISO_FILE
和 MOUNT_DIR
的路径为正确的镜像文件和目标挂载目录路径。
:wq保存并关闭文件。
接下来,让脚本可执行:
sudo chmod +x /etc/init.d/mount_iso.sh
使用以下命令将脚本添加到启动过程中:
- sudo ln -s /etc/init.d/mount_iso.sh /etc/rc.d/rc.local
- sudo chmod +x /etc/rc.d/rc.local
这将在每次系统启动时执行 /etc/init.d/mount_iso.sh
脚本。
最后,重新启动系统验证脚本是否成功挂载镜像文件。
也可以:
直接在启动过程中加上
1.执行安装命令
yum install vsftpd*
2.安装完成后,复制/home/rhel/ 目录下的所有文件到/var/ftp/pub 目录中
cd /home/rhel
cp -rv * /var/ftp/pub3、切换到 /var/ftp/pub目录
删除*.html
删除CentOS/repodata/TRANS.TBL
cd /var/ftp/pub
rm -rf *.htmlrm -rf repodata/TRANS.TBL
1. 安装createrepo
1. yum -y install createrepo#下载createrepo
2.createrepo -g /var/ftp/pub/repodata/3df90817a193baef023d53222cc4ce8f4d15209e593bee361bf72016022008fb-comps-Server.x86_64.xml /var/ftp/pub注:这里3df90817a193baef023d53222cc4ce8f4d15209e593bee361bf72016022008fb-comps-Server.x86_64.xml名称可能每个系统不一样,找准后面是comps-rhel6-Server.xml就行了。
使用管理员权限登录到 Red Hat 系统。
打开终端或命令行界面。
输入以下命令以停止防火墙服务:
sudo systemctl stop firewalld
输入以下命令以禁用防火墙服务的自动启动:
sudo systemctl disable firewalld
这将确保系统在下次启动时不会自动启动防火墙服务。
最后,您可以验证防火墙服务是否已成功停止和禁用。输入以下命令:
sudo systemctl status firewalld
如果输出中显示防火墙服务为 “inactive”(非活动状态),则表示防火墙已成功关闭。
- cd /etc/yum.repos.d/
- mkdir bak/
- cp * bak/
- vi rhel.repo
- [redhut7] //仓库描述(可自定义)
- name=redhut //对软件源的描述(与上面上面保持一致)
- baseurl=ftp://192.168.134.208/pub/ //镜像的挂载入地址 file:// --格式
- gpgcheck=0 //不检查gpgkey
- enabled=1 //此yum源语句块立即生效
baseurl=ftp://192.168.134.208/pub/ 这里的baseurl是你的服务器端的地址,根据自己的情况进行设定
- yum clean all
- yum update
- yum makecache
这个错误提示表明另一个应用程序(yum)当前正在持有 yum 锁,并且正在访问软件包管理器。您可以尝试以下方法来解决这个问题:
等待一段时间:根据错误提示,该应用程序已经运行了一段时间,可能正在执行某些任务。您可以等待一段时间,让该应用程序完成操作并释放 yum 锁。通常情况下,它会在一段时间后自动释放。
结束相关进程:如果等待时间过长没有效果,您可以尝试手动终止相关进程。可以使用以下命令找到并终止 yum 进程:
sudo pkill yum
请注意,这样做可能会导致未完成的软件包操作被中断,因此请确保您在操作之前备份重要数据,并确保中止进程不会对系统的稳定性和安全性造成负面影响。
删除 yum 锁文件:如果以上方法仍然无效,您可以尝试手动删除 yum 锁文件。运行以下命令来查找并删除 yum 锁文件:
sudo rm /var/run/yum.pid
删除锁文件后,您可以尝试重新运行 yum 命令,看看问题是否已经解决。
问题2:
重启一下服务端的ftp就可以解决:
如果您使用的是 vsftpd(Very Secure FTP Daemon)服务器,可以使用以下命令重新启动服务:
sudo systemctl restart vsftpd
搭建完成
yum install package 安装指定的安装包package1
yum localinstall package 本地安装软件包
yum update 全部更新
yum update package 更新指定程序包package
yum check-update 检查可更新的程序
yum info <package> 显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list <package> 显示指定程序包安装情况
yum search <keyword>查找软件包
yum remove | erase package1 删除程序包
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除.
yum clean headers清除header
yum clean packages清除下载的rpm包
yum clean all 清除header与rpm包
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。