linux离线安装rpm命令 (rpm离线安装)

随着Linux包管理软件的日趋成熟和网络访问的全面普及,现在在Linux操作系统下安装应用软件是越来越方便了。不过这里说的方便、简单的大前提是“网络访问”要正常,更准确的说是待安装应用软件的机器需要能够正常的访问互联网上的软件repo(仓库),如果局域网内有本地化的软件仓库当然也是OK的(我相信这样的场景还是很少见的)。

linuxrpm怎么安装,linux怎么离线安装rpm包

那么在没有互联网访问条件的环境下就没有办法使用简便的Linux软件安装命令,比如yum、dnf,快速简单地安装软件了吗?答案当然是否定的。Linux的开发者已经考虑到了这种“离线”安装应用软件包的需求,在软件安装工具中已经提供了相关的选项供用户按需使用。

以我们目前常用的yum安装命令为例,“离线”安装软件包之前需要找一台同样配置(硬件平台相同,操作系统版本相同,安装选项一致),但是可以访问互联网的设备,在这台设备上先将需要安装的软件包*载下**到本地。在这台设备上执行:

yum install --downloadonly --downloaddir=/tmp name_of_package

就可以将需要安装的软件包(name_of_package)*载下**到本地的/tmp目录下,注意此时只是*载下**软件包,并不会安装。

然后设法将刚刚*载下**的所有软件包复制到没有互联网访问权限的设备上,再在这台设备上执行:

cd /tmp #比如将安装包复制到了这台待安装设备的/tmp目录,那可以先切换到/tmp文件夹

yum localinstall *.rpm

这样刚刚*载下**好的应用软件包就可以在这台“离线”设备上安装好了。

如果是使用dnf安装命令,就要稍微麻烦一些,还是先在能上网的设备上只*载下**,不安装软件包:

cd /tmp

dnf download name_of_package --alldeps --resolve

这样就可以将需要的安装包和这些安装包所依赖的安装包统统*载下**到本地。

将这些安装包全部复制到“离线”设备后,再执行:

yum install --disablerepo=* name_of_package name_of_deps_package name_of_update_package

就可以成功地“离线”安装软件包了。

使用dnf命令“离线”安装软件包时,可能会提示软件包的安装“依赖”问题,需要解决这些问题后软件包才能顺利安装。在这里我给出一个小“窍门”,在dnf离线安装的同时,在能够“联网”的那台设备上同样执行dnf install name_of_package命令,根据命令结果查看安装这个软件包需要安装哪些关联的软件包、哪些需要升级的软件包、哪些依赖的软件包,在“离线”设备上统统都加在dnf install --disablerepo=*命令的后面(最好指定rpm包的版本,少用*通配符),保证命令可以顺利执行!

最后,可能有读者会问,你前面命令执行的是dnf,后面怎么又用yum了?其实这里yum就等于dnf,至于为什么,就留给爱思考的你吧[得意]