yum安装本地rpm软件

本文提供了一种在无法联网的CentOS系统中安装RPM软件包的方法,通过在可联网的虚拟机环境中下载所有必要的RPM包及其依赖项,然后传输到目标系统并创建本地软件源。

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

yum安装本地rpm软件

概述

面对无法联网的centos系统,安装rpm软件包是一个比较耗时的工作,尤其是那些包含很多依赖的软件包,如果用rpm命令安装,可以说是一个噩梦。这里根据个人实践发布一个比较完整方便的解决方案。(注:本方案在centos 6.5 64bit测试可用)

具体方案

基本环境介绍

目标操作系统:centos 6.5 64bit,下称“目标机” (无法联网用yum安装)
本地环境:在VMware下安装的纯净centos 6.5 64bit,下称“虚拟机”(可以联网用yum下载安装包)

本方案基本思路是在一个可以联网的系统中下载rpm安装包,然后传到无法联网的目标操作系统,建立安装源,进行安装。为了减少不必要的麻烦,在本地用虚拟机安装一个和目标操作系统一模一样的但是没有安装任何额外软件的系统,用于下载各种安装包和依赖包。

配置本地环境

在虚拟机内配置yum只下载RPM包而不安装,这里要使用–downloadonly选项,需要先安装yum-plugin-downloadonly。

# yum install yum-plugin-downloadonly 

在本地环境下载rpm安装包

# yum install --downloadonly --downloaddir=/tmp RPM_Name

/tmp 为指定下载的目录,RPM_Name为目标软件。
yum –downloadonly会只下载RPM包不安装,同时会把依赖的包都下载下来,注意如虚拟机已经安装了依赖包,则不会下载,因此务必确保虚拟机的纯净(如果有方案可以下载已经有的依赖包,欢迎告知)。

需要说明的是,为了在目标机构建软件源,createrepo是必不可少的模块,因此需要在虚拟机上下载createrepo相关模块。

# yum install --downloadonly --downloaddir=/tmp createrepo

一般会下载三个包,一个是createrepo,另外两个是依赖包。

上传rpm安装包到目标机

采用scp 或者 pscp.exe(Windows下)等方式将rpm安装包文件上传到目标机,并修改权限为可执行(chmod 755 RPM_Name)。

在目标机构建本地软件源

安装createrepo

在目标机安装createrepo:

# rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
# rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
# rpm -ivh createrepo-0.9.9-24.el6.noarch.rpm
createrepo构建本地软件源

假设安装包在目标机的/home/user/rpms/目录下。

# createrepo  /home/user/rpms
修改yum软件源
移除现有的软件源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bk
开启本地软件源
# vim /etc/yum.repos.d/CentOS-Media.repo

在baseurl增加一行:

=file:////home/user/rpms/

然后修改: enabled=1
这样就可以使yum采用本地源安装软件。

在目标机安装目标软件

使用yum正常安装软件即可。

# yum install demo

如果用的是纯净的虚拟机环境,并且和目标机保持一致,那么依赖包就会都安装,yum安装就会很顺利。除非个别包会有依赖冲突,A依赖B,B又依赖A,导致无法安装,此时可以用rpm命令强制安装其中一个,再用yum安装软件即可。

# rpm -ivh demo.rpm --nodeps --force

参考:
http://blog.chinaunix.net/uid-20639775-id-2854736.html
http://blog.sina.com.cn/s/blog_4d880dda0100ve7f.html

<think>好的,我需要回答用户关于如何使用yum在Linux上安装本地RPM包的问题。首先,我得回忆一下yum的基本命令和安装本地包的方法。记得yum通常用来从仓库安装软件,但也可以处理本地文件。 用户可能知道用dnf或者yum install来安装网络上的包,但本地包可能需要指定路径。正确的命令应该是使用yum install加上本地文件的路径,比如yum install /path/to/package.rpm。这样yum会自动处理依赖关系,这是比直接使用rpm -i更好的地方,因为rpm不会自动解决依赖问题。 另外,用户可能需要知道如何启用本地仓库,如果有多个包需要安装的话。这时候可以创建一个本地repo,配置.repo文件,然后使用yum install。不过用户的问题可能更倾向于直接安装单个包,所以重点应该放在直接命令上。 还要注意权限问题,可能需要sudo来执行命令。比如sudo yum install ./package.rpm。如果当前目录下的文件,使用./前缀可能更准确,避免路径错误。 可能的相关问题包括如何处理依赖问题,或者如何创建本地仓库,这些可以作为相关问题列出。同时,用户提供的引用中有提到dnf install的例子,比如引用[1]中的dnf install mysql-community-server,这和yum的用法类似,可以借鉴。 需要确保回答结构清晰,先给出直接命令,再解释其他方法,比如创建本地仓库。还要注意LaTeX格式的正确使用,比如变量或命令用行内格式,但这里可能不需要数学公式,主要是一些代码块或命令示例。 最后,生成的相关问题应该围绕安装本地RPM的其他方法、依赖处理、创建仓库等,这样用户可以有进一步了解的途径。</think>要使用`yum`命令安装本地RPM包,可通过以下步骤实现: --- ### 方法1:直接指定文件路径 ```bash sudo yum install /path/to/your-package.rpm ``` - **示例**:若包位于当前目录,使用`sudo yum install ./package.rpm` - **特点**:自动解析依赖(优先从配置的仓库下载依赖包)[^1][^3] --- ### 方法2:启用本地仓库(批量安装场景) 1. 将RPM包放入目录,如`/opt/local-rpms/` 2. 创建仓库元数据: ```bash sudo createrepo /opt/local-rpms ``` 3. 添加仓库配置文件`/etc/yum.repos.d/local.repo`: ```ini [local-repo] name=Local Repository baseurl=file:///opt/local-rpms enabled=1 gpgcheck=0 ``` 4. 安装包: ```bash sudo yum install your-package ``` --- ### 对比`rpm -i`的区别 | 方法 | 依赖处理 | 适用场景 | |------------|-------------------------|------------------------| | `yum install` | 自动从仓库解析依赖[^2] | 需联网/有完整仓库环境 | | `rpm -i` | 需手动安装依赖 | 离线环境/已知无依赖问题| ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值