首页 > 系统相关 >CentOS学习笔记-离线下载软件包的方式及对比

CentOS学习笔记-离线下载软件包的方式及对比

时间:2024-03-21 23:48:22浏览次数:175  
标签:kvm CentOS -- yumdownloader 离线 软件包 rpmpkgs

CentOS学习笔记-离线下载软件包的方式及对比

CentOSLinuxrpm离线

以离线部署KVM为例,研究对比下载获取离线软件包的方法和它们各自的特点。CentOS系统的版本是CentOS Linux release 7.9.2009 (Core),目的是能够离线部署kvm。初始情况下,有两个虚拟机,它们的系统情况相同,都是空系统,没有额外装什么软件。区别在于,一个可以联网,称作在线机,一个不能联网,称为离线机。

一、工具一:repotrack

使用repotrack --help可以查看它的帮助手册。可知,repotrack的作用是把给定的pkg和它的依赖的信息更新到最新,它会下载我们所指定的pkg和它所有的依赖。

这里所说的依赖不是以当前的系统为基础,而指的是最原始、最全面的依赖。所以它下载的软件包会很多,体积会很大。但是好处就是,只要是同一个版本的系统,就都可以安装,不会因为在线机本身已有了某个依赖包而不去下载,继而出现在离线机中提示缺少依赖包的情况。

在它的帮助手册中还介绍了可用的选项和功能,其中我认为重要的是选项-p DESTDIR,它的作用是指明下载的pkg将要存放在什么地方。

1. 使用在线机下载需要的pkg及依赖包

使用的命令是:

mkdr kvm-rpmpkgs
repotrack qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers -p kvm-rpmpkgs

结果如下
enter description here

2. 使用zip工具把目录打包

使用的命令是

zip -r kvm-rpmpkgs.zip kvm-rpmpkgs/

生成的压缩包大小为400多M。结果如下:
enter description here

3. 把压缩包拷贝到离线机上

4. 在离线机上安装kvm

4-1. 解压缩

使用的命令是unzip kvm-rpmpkgs.zip
enter description here

4-2. 进入到解压缩的目录中安装

使用的命令是:

cd kvm-rpmpkgs
rpm -Uvh --force --nodeps *.rpm

需要注意的是,这里安装软件包所使用的命令是rpm,完整的格式是rpm -Uvh --force --nodeps *.rpm,这里的几个选项的含义如下:

  • -U:更新软件包,如果rpm比系统现有的版本更高,那么就更新系统的包
  • -v:输出更多执行细节,也就是显示执行过程
  • -h:在软件包安装的过程中打印哈希值
  • --force:等价于--replacepkgs --replacefiles两个选项,前者指重新安装已有的软件包,后者指忽略包之间的文件冲突
  • --nodeps:不验证软件包的依赖关系

4-3. 验证安装结果

安装之后,还要经过一些kvm特有的系统设置(这些设置与离线不离线无关,因此不在这里细讲),然后使用命令virt-manager就可以打开kvm虚拟机管理器的图形界面了。如下图所示
enter description here

二、工具二:yumdownloader

yumdownloader工具只下载指定的软件包本身,不下载它的依赖。如果要下载依赖,需要用--resolve选项来明确指明。但是请注意,这种情况下它下载哪些依赖包,是根据系统本身缺少哪些包来决定的。也就是说,我们必须保证在线机与离线机有完全相同的软件环境,yumdownloader下载的软件包才能正确安装。在我看来,这是一个非常严格的要求。它的优势在于,在线机与离线机环境完全相同的话,要下载拷贝的软件会比较小。

yumdownloader还可以用--destdir=DESTDIR来指定软件包的存放位置。

1. 使用在线机下载需要的pkg及依赖包

使用的命令是:

mkdir kvm-rpmpkgs-yumdownloader-01
yumdownloader --resolve --destdir=kvm-rpmpkgs-yumdownloader-01 qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers

结果下载了59个文件
enter description here

2. 使用zip压缩软件包

使用的命令是:

zip -r kvm-rpmpkgs-yumdownloader-01.zip kvm-rpmpkgs-yumdownloader-01/

这次的压缩包大概20M,比repotrack小了很多

3. 把压缩包拷贝到离线机上

4. 在离线机上解压缩并安装

使用的命令是:

cd kvm-rpmpkgs-yumdownloader-01
rpm -Uvh --force --nodeps *.rpm

5. 验证安装结果

使用virt-manager打开kvm虚拟机管理的图形界面(其实不需要做什么设置,直接就可以打开),如下图所示
enter description here

6. 验证在线机与离线机软件环境不同的情况

6-1. 在线机安装kvm

在线机上,利用刚才已经下载好的软件包,安装kvm,使用的命令是:

cd kvm-rpmpkgs-yumdownloader-01
rpm -Uvh --force --nodeps *.rpm

6-2. 在线机上再次使用yumdownloader工具下载软件包

使用的命令是:

mkdir kvm-rpmpkgs-yumdownloader-02
yumdownloader --resolve --destdir=kvm-rpmpkgs-yumdownloader-02 qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers

这次我们把下载的包放在了02文件夹中。这次下载了7个文件。
enter description here

6-3. 压缩、拷贝到离线机

在这之前,离线机恢复了快照,现在处于没有安装过kvm之前的状态。

这次的压缩包只有3M左右。

6-4. 在离线机上解压缩并安装

使用的命令是:

cd kvm-rpmpkgs-yumdownloader-02
rpm -Uvh --force --nodeps *.rpm

软件安装是没有问题的,因为我们用--nodeps让它不检查依赖关系,但是使用命令virt-manager来启动图形界面的时候就失败了,表示缺少一些模块。
enter description here

三、工具三:yum的downloadonly插件

这个插件的使用方法是yum install --downloadonly --downloaddir=DESTDIR pkg_name1 pkg_name2,它的作用与yumdownloader命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。

在已经安装了kvm的在线机上执行如下命令,下载kvm软件包:

mkdir kvm-rpmpkgs-downloadonly
yum install --downloadonly --downloaddir=kvm-rpmpkgs-downloadonly qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers

结果就是什么都没有下载。
enter description here

可见确实和yumdownloader一样的功能,没有再做更多的测试了。

标签:kvm,CentOS,--,yumdownloader,离线,软件包,rpmpkgs
From: https://www.cnblogs.com/nangongergou/p/18088475

相关文章

  • 语音转文字——sherpa ncnn语音识别离线部署C++实现
    简介Sherpa是一个中文语音识别的项目,使用了PyTorch进行语音识别模型的训练,然后训练好的模型导出成torchscript格式,以便在C++环境中进行推理。尽管PyTorch在CPU和GPU上有良好的支持,但它可能对资源的要求较高,不太适合嵌入式环境或要求轻量级依赖的场景。考虑到模......
  • centos7 编译 qemu 8.1.0
    targetx86_64-linux-user的编译参考链接问题解决qemu官方对centos7的编译支持到2021年4月,所以qemu8.1.0的linux-user在centos7上编译不过,官方是不管的。为了编译通过需要自己手动修改qemu的源码,只能修复一些宏参数的缺失,修改的基本思路是:如果在系统中能够找到对应的宏......
  • linux centos使用rz、sz命令上传下载文件
    一般情况下,我们会使用终端软件,如XShell、SecureCRT或FinalShell、JumpServer堡垒机来连接远程服务器后,使用rz命令上传本地文件到远程服务器,再解压发版上线。一、安装使用安装rz和sz命令yum-yinstalllrzsz使用rz上传文件,会跳出文件选择窗口,选择好文件,点击确认即可r......
  • Linux离线安装Docker-Oracle_11g
    拉取oracle11g镜像dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g创建11g容器dockerrun-d-p1521:1521--nameoracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g查看容器是否创建成功dockerps-a导出oracle容器,查看正在运......
  • 【Linux】Linux系统(如CentOS)宝塔面板 如何安装SQL Server
    在Linux系统(如CentOS)上安装SQLServer是可能的,但是要注意,宝塔面板主要是用于管理Web服务器的,并不直接支持SQLServer的安装。SQLServer是微软开发的一款关系数据库管理系统,而宝塔面板通常用于管理类似于MySQL或MariaDB这样的数据库。不过,你可以在宝塔面板外部安装SQLServ......
  • Linuxcentos7配置网卡的方法(非gui篇)
    网卡配置方法有好几种,本次讲述的是非gui的centos7配置方法 目录 1、普通配置网卡方法: 2、使用命令行工具nmcli(NetworkManager的命令行界面)方法:删除连接:创建新的连接:注意事项:附记:  1、普通配置网卡方法:由于本次操作过程和我之前发布的文章的第一种原理......
  • python及虚拟环境离线部署
     目标环境:离线的类Linux系统源环境:在线的类Linux系统,不能是Windows,有的依赖包是分系统的 1.下载合适版本的python,创建虚拟环境,根据依赖列表(提前准备)安装依赖包。python-mvenvmyenv#将在当前目录下创建一个名为myenv的新目录,其中包含一个新的虚拟环境sourcemyenv......
  • Centos7部署jeecg-boot项目(完整版)
    一、搭建环境1、安装Mysql8.0  安装前先删除原有Mysql、Mariadb以及相应的文件夹rpm-qa|grep-imysql#查看已安装的Mysqlyumremove-ymysql-*#删除Mysqlfind/-namemysql#查看原有Mysql相关目录rm-rf/*/*/mysql#删除原有Mysql目录 下载rpm安装包wget......
  • Centos 7.5基于MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署记录【转】
    前面给大家介绍过:MySQL高可用方案选型解析,今天我将详细的为大家介绍Centos7.5基于MySQL5.7的InnoDBCluster多节点高可用集群环境部署的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!MySQLInnoDBCluster介绍MySQL的高可用架构无论是社区还是官方,一......
  • CentOS 7 使用RPM安装 MySQL5.7
    #下载RPM包https://downloads.mysql.com/archives/community/ #关闭并卸载之前安装的MySQL(没有则跳过)rpm-qa|grepmysqlrpm-e--nodeps要卸载的包#备份配置文件后删除mv/etc/my.cnf/etc/my.cnf.bakmv/var/lib/mysql/var/lib/mysql.bakmv/var/log/mys......