当前位置: 首页 > article >正文

Linux中基于RPM安装YUM的另一种方式

在Linux系统中,YUM(Yellowdog Updater, Modified)是一个广泛使用的软件包管理工具,主要用于Red Hat系的发行版(如RHEL、CentOS、Fedora)。虽然YUM通常是通过预装或者在线仓库安装,但在某些情况下,如离线环境中,我们可能需要基于RPM包来安装YUM。本文将详细介绍这种基于RPM安装YUM的方法。

一、前提条件

在开始之前,确保您有以下准备:

  1. 具有root用户权限。
  2. 可用的RPM包文件,包括YUM及其依赖包。
  3. 目标系统中已安装RPM包管理工具。

二、下载RPM包

在离线环境中,您需要先在有网络连接的机器上下载YUM及其所有依赖包。以CentOS 7为例,可以从CentOS官方仓库下载:

  1. 访问CentOS Vault页面:CentOS Vault

  2. 导航至目标版本目录(如 7.9.2009/os/x86_64/Packages/

  3. 下载YUM及其依赖包:

    • yum-*.rpm
    • yum-plugin-*.rpm
    • python-urlgrabber-*.rpm
    • libxml2-python-*.rpm
    • python-kitchen-*.rpm

确保下载所有YUM运行所需的依赖包。

三、传输RPM包到目标系统

使用USB驱动器、scp等方法将下载的RPM包传输到目标系统。假设传输到 /root/rpms/目录。

scp yum-*.rpm root@target-system:/root/rpms/
scp python-urlgrabber-*.rpm root@target-system:/root/rpms/
scp libxml2-python-*.rpm root@target-system:/root/rpms/
scp python-kitchen-*.rpm root@target-system:/root/rpms/
​

四、使用RPM安装YUM

在目标系统上,切换到存储RPM包的目录并使用RPM工具安装YUM及其依赖

1. 切换到RPM包存储目录

cd /root/rpms/
​

2. 检查并安装依赖包

先安装YUM依赖的所有包,以确保安装顺利进行。

rpm -ivh python-urlgrabber-*.rpm
rpm -ivh libxml2-python-*.rpm
rpm -ivh python-kitchen-*.rpm
​

3. 安装YUM包

安装YUM及其插件包。

rpm -ivh yum-*.rpm
rpm -ivh yum-plugin-*.rpm
​

4. 验证安装

检查YUM是否安装成功,并确认其版本信息。

yum --version
​

五、配置YUM仓库

安装YUM后,需要配置YUM仓库以确保能够从指定的源下载和安装软件包。

1. 创建YUM仓库配置文件

在 /etc/yum.repos.d/目录下创建一个新的仓库文件,例如 custom.repo

vi /etc/yum.repos.d/custom.repo
​

2. 添加仓库配置信息

在文件中添加以下内容:

[custom-repo]
name=Custom Repository
baseurl=file:///root/rpms/
enabled=1
gpgcheck=0
​
  • name:仓库名称。
  • baseurl:仓库的基本URL,这里使用本地文件路径。
  • enabled:启用此仓库。
  • gpgcheck:禁用GPG签名检查(根据需要启用)。

3. 清理和刷新YUM缓存

yum clean all
yum makecache
​

4. 测试YUM安装软件包

安装一个软件包以确保YUM配置正常工作。

yum install vim
​

六、解决常见问题

1. 依赖冲突

在安装YUM及其依赖包时,可能会遇到依赖冲突的错误。使用以下命令可以查看详细信息并解决冲突:

rpm -ivh --nodeps package-name.rpm
​

2. 缺少依赖包

如果缺少依赖包,可以通过手动下载并安装这些包来解决问题。或者将所有依赖包打包成一个压缩文件,在目标系统上解压并逐个安装。

3. 网络配置问题

如果需要从网络仓库下载依赖包,请确保网络配置正确,且系统能够访问外部网络。可以通过配置网络代理或调整防火墙设置来解决网络问题。


http://www.kler.cn/a/530696.html

相关文章:

  • ChatGPT-4o和ChatGPT-4o mini的差异点
  • 第三篇:模型压缩与量化技术——DeepSeek如何在边缘侧突破“小而强”的算力困局
  • CSS Fonts(字体)
  • 62.病毒在封闭空间中的传播时间|Marscode AI刷题
  • Spring WebFlux揭秘:下一代响应式编程框架,与Spring MVC有何不同?
  • 2 MapReduce
  • 自定义数据集 使用scikit-learn中svm的包实现svm分类
  • 冰蝎v3.0 beta7来啦
  • 【C++】B2115 密码翻译
  • Java知识速记:Lambda表达式
  • 连续预测、
  • Compose笔记(三)--DisposableEffect
  • 信息学奥赛一本通 2112:【24CSPJ普及组】地图探险(explore) | 洛谷 P11228 [CSP-J 2024] 地图探险
  • PyQt4学习笔记0】QtGui.QApplication
  • Node 处理客户端不同的请求方法
  • DeepSeek 原理解析:与主流大模型的差异及低算力优势
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录
  • 【数据结构与算法】力扣 5. 最长回文子串
  • [ VS Code 插件开发 ] 使用 Task ( 任务 ) 代替 createTerminal (终端) 来执行命令
  • 数据库和数据表的创建、修改、与删除
  • 冷启动+强化学习:DeepSeek-R1 的原理详解——无需监督数据的推理能力进化之路
  • 基于vue船运物流管理系统设计与实现(源码+数据库+文档)
  • 蓝桥杯学习笔记01
  • 【Qt】常用的容器
  • llama.cpp GGUF 模型格式
  • GWO优化SVM回归预测matlab