当前位置: 代码网 > 服务器>服务器>Linux > Linux内网环境安装软件,yum下载全量依赖 rpm 包进行安装

Linux内网环境安装软件,yum下载全量依赖 rpm 包进行安装

2024年08月06日 Linux 我要评论
由于最近公司服务器环境部署都是内网环境,安装软件非常不方便,无非就两种方式:源码编译安装,rpm包安装,源码编译过于繁琐复杂,rpm包安装总是缺依赖找依赖也是一个费时费力的活,所以我先在自己的虚拟机内使用 repotrack 工具下载全量的rpm包然后使用u盘等拷贝到服务器上进行安装。

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
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com