1、简介
由于最近公司服务器环境部署都是内网环境,安装软件非常不方便,无非就两种方式:源码编译安装,rpm包安装,源码编译过于繁琐复杂,rpm包安装总是缺依赖找依赖也是一个费时费力的活,所以我先在自己的虚拟机内使用 repotrack 工具下载全量的rpm包然后使用u盘等拷贝到服务器上进行安装。
2、查看依赖包
1、使用"yum provides <command>"查看某个命令来自于哪个rpm包
[root@localhost home]# yum provides gcc
已加载插件:fastestmirror, langpacks
loading mirror speeds from cached hostfile
* base: mirrors.nju.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
gcc-4.8.5-44.el7.x86_64 : various compilers (c, c++, objective-c, java, ...)
源 :base
2、使用"yum deplist <>"查看rpm包所需的全部依赖,这里以gcc为例
[root@localhost gcc]# yum deplist gcc
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
this system is not registered with an entitlement server. you can use subscription-manager to register.
loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
软件包:gcc.x86_64 4.8.5-44.el7
依赖:/bin/sh
provider: bash.x86_64 4.2.46-35.el7_9
依赖:/sbin/install-info
provider: info.x86_64 5.1-5.el7
依赖:binutils >= 2.20.51.0.2-12
provider: binutils.x86_64 2.27-44.base.el7_9.1
依赖:cpp = 4.8.5-44.el7
...
3、repotrack 的方式全量下载
首先使用"yum install yum-utils"安装 repotrack 工具,然后使用 repotrack -p ./ <rpm>
下载全量依赖包。-p参数指定下载到哪里。
[root@localhost gcc]# repotrack -p ./ gcc
downloading basesystem-10.0-7.el7.centos.noarch.rpm
downloading bash-4.2.46-35.el7_9.x86_64.rpm
downloading binutils-2.27-44.base.el7_9.1.x86_64.rpm
downloading ca-certificates-2023.2.60_v7.0.306-72.el7_9.noarch.rpm
downloading centos-release-7-9.2009.1.el7.centos.x86_64.rpm
downloading chkconfig-1.7.6-1.el7.x86_64.rpm
downloading coreutils-8.22-24.el7_9.2.x86_64.rpm
downloading cpp-4.8.5-44.el7.x86_64.rpm
...
4、还可以使用 yumdownloader 和 downloadonly 下载
这两种方式并不是全量下载依赖包,只会下载软件包和当前系统所缺少的依赖包
1、yumdownloader --resolve --destdir=./ gcc,可以看到使用该命令只下载了少量的rpm包
[root@localhost gcc]# yumdownloader --resolve --destdir=./ gcc
--> 正在处理依赖关系 kernel-headers,它被软件包 glibc-headers-2.17-326.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 kernel-headers.x86_64.0.3.10.0-1160.105.1.el7 将被 安装
--> 解决依赖关系完成
(1/5): glibc-headers-2.17-326.el7_9.x86_64.rpm
(2/5): glibc-devel-2.17-326.el7_9.x86_64.rpm
(3/5): cpp-4.8.5-44.el7.x86_64.rpm
(4/5): kernel-headers-3.10.0-1160.105.1.el7.x86_64.rpm
(5/5): gcc-4.8.5-44.el7.x86_64.rpm
2、yum -y install gcc --downloadonly --downloaddir=/tmp,该命令也只下载部分rpm包
[root@localhost gcc]# yum -y install gcc --downloadonly --downloaddir=./
background downloading packages, then exiting:
(1/5): glibc-headers-2.17-326.el7_9.x86_64.rpm
(2/5): glibc-devel-2.17-326.el7_9.x86_64.rpm
(3/5): cpp-4.8.5-44.el7.x86_64.rpm
(4/5): kernel-headers-3.10.0-1160.105.1.el7.x86_64.rpm
(5/5): gcc-4.8.5-44.el7.x86_64.rpm
exiting because "download only" specified
5、将下载的rpm包迁移到服务器进行安装
1、将软件拷贝到服务之后直接执行安装所有rpm包
-uvh: 这是rpm命令的选项参数
-u: 表示升级已安装的包。如果该包尚未安装,则将其安装
-v: 显示详细输出,使命令在执行过程中输出更多的信息
-h: 以人类可读的格式显示进度(例如,使用k、m和g来表示千字节、兆字节和吉字节)
--force: 这个选项强制rpm执行操作,即使某些操作可能会失败或导致问题
--nodeps: 这个选项告诉rpm在安装或升级软件包时不检查依赖关系。这意味着rpm将忽略任何依赖关系问题并尝试安装或升级软件包
./*.rpm: 这是命令的参数,指定了要处理的rpm包的路径和文件名模式。这里,它将处理当前目录下所有以.rpm为扩展名的文件。
6、也可以通过 createrepo 创建本地 yum 仓库进行安装
1、创建yum源
yum install -y createrepo #createrepo这是创建本地yum仓库的工具得先安装,可以使用步骤5进行安装
createrepo /home/yumrepo #createrepo后面跟的是目录,需提前把下载好的rpm包放进去
执行成功后会产生一个 /home/yumrepo/repodata 目录
2、备份现有repo文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
3、配置本地仓库repo文件
vi /etc/yum.repos.d/yumrepo.repo
# 写入如下内容
[offline]
name=offline
baseurl=file:///home/yumrepo/
gpgcheck=0
enabled=1
4、修改yum的gpg检查选项
vi /etc/yum.conf
把其中的 gpgcheck设置为0,这样在安装时,就不会做gpg检查了,修改后的文件如下
5、清空yum缓存,验证是否成功
yum clean all
yum makecache
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror
loading mirror speeds from cached hostfile
源标识 源名称 状态
yumrepo yumrepo 65
repolist: 65
6、仓库中新增软件包后 更新仓库
createrepo -update /home/yumrepo
7、也可以使用 yum localinstall /home/*.rpm 安装,会自动解决依赖关系
1、把rpm拷贝到服务器中,执行以下命令
yum localinstall /usr/local/rpms/nginx/*.rpm
发表评论