在redhat或centos中安装软件时,很多软件在系统光盘都可以找到,可以直接从里面拿到rpm包后用rpm -ivh <包名>命令自行安装。但是安装过程中经常会遇到包依赖性,造成不能顺利安装。
这时,可以使用yum命令安装。yum会在yum源中找到并自行安装各种依赖的包。
系统默认是使用网络yum源。在没有网络的情况下可以设置使用本地yum源。
在/etc/yum.repos.d下有五个文件CentOS-Base.repo CentOS-Media.repo CentOS-Debuginfo.repo CentOS-Vault.repo CentOS-fasttrack.repo,是yum源配置文件。
为使用本地yum源,
需将CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Vault.repo CentOS-fasttrack.repo 重命名,如在文件名后加上.bak,方便恢复。这样就不再使用网络yum源。然后编辑CentOS-Media.repo ,如下
这一行 baseurl=file:///mnt/cdrom 即为自己的yum源文件夹位置,按情况自行配置。
其中/mnt/cdrom为软件包仓库的父目录,该目录下应该有Packages和repodata这两个文件夹 和RPM-GPG-KEY-CentOS*******文件
Packages文件夹保存的是rpm软件包 repodata文件夹下是关于软件仓库的元信息 RPM-GPG-KEY-CentOS*******是验证软件包完整性的数字签名公钥
yum install <软件包名> 安装指定软件包
也可以不用备份重命名CentOS-Base.repo等yum配置文件 在命令行中禁用某些软件源即可
yum --disablerepo=\* --enablerepo=c6-media install <软件包名> 安装指定软件包
其中 c6-media这个软件源的名字来自 CentOS-Media.repo文件 可自行配置
\* 表示禁用所有软件源
该命令表示只用c6-media 这个软件源
其他参数可自行察看 yum命令的帮助文档
查看有哪些可用rpm包:yum list,配合|grep 可查找需要的包是否存在。
仅有rpm软件包是无法进行yum安装的,需要制作yum软件仓库
根据rpm包制作yum软件仓库
新建/home/admin/rpm文件夹并把rpm软件包拷贝进去,然后输入createrepo /home/admin/rpm命令创建仓库,
之后可以看到该目录下会多出来一个repodata目录
在线查找并下载rpm依赖包并使用yum离线安装rpm包
yum install --downloaddir=/home/admin/myrpm --downloadonly <软件包名列表> 将软件包及其依赖下载到指定的目录
再利用createrepo /home/admin/myrpm 命令制作本地yum仓库
把yum仓库复制到不能联网的计算机进行yum --disablerepo=\* --enablerepo=c6-media install <软件包名列表> 安装