Linux下的安装,尤其是离线系统和应用的安装,真是情况千奇百怪。之前我们在CentOS7上谈离线安装的时候,由于使用的everything安装镜像,似乎一些工具会默认的安装好。迁移到CentOS8上的时候,一开始使用boot镜像在线安装,似乎也是有一些工具会默认安装好的;但是使用dvd1,就是那个10G的镜像的时候,默认安装似乎就会少安装不少组件了。直接的效果就是——yumdownloader和createrepo这两个命令没有了,之前几篇文章【(一)(二)(三)】中用得很爽的离线造库大法被釜底抽薪,玩不转了……
所以这里借地儿再多记录一下这种情况下的应对方法:
实际上yumdownloader实在系统自带的yum-utils包中,如果在在线系统上使用该命令而没有安装的话,系统会提示是否安装这个包,但是在离线系统上就没有这个待遇了。
所以需要我们把dvd1的镜像挂载到虚拟机上/或者插入光驱里,对于CentOS 8 Stream来说,光盘会自动识别并挂载,挂载位置在/run/media/root(我一直root登录,别的用户没试过)。一般来说光盘的名字会是CentOS-Stream-8-x86_64-dvd,这个文件夹下有个BaseOS的文件夹,就是官方自带的离线库,该文件夹下会有packages和repodata两个文件夹。
有repodata,代表依赖关系已经解析好了,可以直接使用。
老办法,在/etc/yum.repos.d/文件夹下把原先的repo文件都请走,新建一个local.repo,如下图设置,把地址导向本地前面提到的光盘里面,然后yum clean all,yum makecache。
完成上述步骤后,就将安装源导向到镜像光盘中的repo库了。此时就可以直接执行yum install yum-utils命令,安装完成后yumdownloader一类的工具即可用了。
坏消息是,对于离线机器来说,yumdownloader并不是必要的,createrepo才是。而通常离线机上直接运行createrepo时,命令时不存在的。当然,我们也可以把这一步直接搬到在线机器上,造好了库再离线用。但是,如果能够在离线机上装全乎,心里还是更踏实些。
在在线机器上yumdownloader --resolve createrepo,会得到3个rpm包:
需要注意的是,如果没有在在线机器上做好repo,那么由于在离线机上还无法createrepo,也就无法yum install,所以这3个依赖包只能通过rpm的方式依序安装:
yum install -y drpm-0.4.1-3.el8.x86_64.rpm
yum install -y createrepo_c-libs-0.17.7-5.el8.x86_64.rpm
yum install -y createrepo_c-0.17.7-5.el8.x86_64.rpm
这样,离线机就具备了createrepo的能力,可以接着玩离线造库大法了。
安装wireshark通常是为了采集网络数据并观察网络数据。有时候,尤其是在离线系统的很多场景中,会遇到需要读取不知从哪里来的存储介质的网络数据的场景。这些介质,可能是exfat格式的,更可能是ntfs格式的,所以如果想在CentOS中都用得起来的话,安装文件系统格式支持的插件必不可少。使用离线造库大法,这一问题实际解决起来就很简单了,下面仅记录过程:
安装exfat-utils
安装fuse-exfat
安装ntfs-3g
这样就可以啦!
按说安装wireshark是不需要事先安装epel-release的,不过出于强迫症,反正我也先安过了,有兴趣可以 参考这里。
现在在线机器上yumdownloader解析下载wireshark的全部依赖包,有点多,不过也挺简单,然后造库、挂库,不知道还是可以参考这里。
然后就只需要
yum install wireshark
就搞定,然后命令行里直接wireshark就可以弹出图形界面了。简单到没啥可写的。
当然,需要多说一句,在CentOS 8 Stream里,仅仅只需要做到这样就够了。但是在CentOS 7中,还需要下载安装wireshark-gnome,才能使用图形界面。