目录

RHCERHCSA复习npmdnf源码安装实验

RHCE(RHCSA复习:npm、dnf、源码安装实验)

七、软件管理

7.1 rpm 安装

7.1.1 挂载

[root@localhost ~]# ll /mnt total 0 drwxr-xr-x. 2 root root 6 Oct 27 21:32 hgfs [root@localhost ~]# mount /dev/sr0 /mnt #挂载 mount: /mnt: WARNING: source write-protected, mounted read-only. [root@localhost ~]# [root@localhost ~]# ll /mnt #挂载后再次查看,里面是 ISO 镜像的内容 total 44 drwxr-xr-x. 1 root root 2048 Oct 25 2023 AppStream drwxr-xr-x. 1 root root 2048 Oct 25 2023 BaseOS drwxrwxr-x. 1 root root 2048 Oct 25 2023 EFI -r–r–r–. 1 root root 8154 Oct 25 2023 EULA -r–r–r–. 1 root root 1455 Oct 25 2023 extra_files.json -r–r–r–. 1 root root 18092 Oct 25 2023 GPL drwxrwxr-x. 1 root root 2048 Oct 25 2023 images drwxrwxr-x. 1 root root 2048 Oct 25 2023 isolinux -r–r–r–. 1 root root 103 Oct 25 2023 media.repo -r–r–r–. 1 root root 1669 Oct 25 2023 RPM-GPG-KEY-redhat-beta -r–r–r–. 1 root root 3682 Oct 25 2023 RPM-GPG-KEY-redhat-release AppStream、BaseOS:rpm包的所在目录,是 Red Hat 系列操作系统中的软件仓库分类

7.1.2创建/rpm目录,将/mnt下的仓库拷贝到/rpm下

#新建一个目录,将AppStream、BaseOS拷贝 [root@localhost ~]# mkdir /rpm [root@localhost ~]# cp /mnt/AppStream/ /rpm/ -r #拷贝需要时间,因此要新建一个xshell连接该虚拟机,将BaseOS也拷贝过来 [root@localhost ~]# cp /mnt/BaseOS/ /rpm/ -r 将AppStream、BaseOS作为仓库,供后面的DNF来使用

7.1.3 查看/rpm下的信息

[root@localhost ~]# ll /rpm #列出位于 /rpm 目录下的文件和子目录的详细信息。 total 0 drwxr-xr-x. 4 root root 38 Mar 15 11:40 AppStream drwxr-xr-x. 4 root root 38 Mar 15 11:41 BaseOS [root@localhost ~]# tree /rpm #以树状图的形式列出指定目录( /rpm)下的所有文件和子目录,以及它们的嵌套层次。

7.1.4 切换路径到/rpm/BaseOS/Packages/,查看后发现有大量的软件包

[root@localhost ~]# cd /rpm/BaseOS/ [root@localhost BaseOS]# ll #/rpm/BaseOS下有两个包Packages、repodata total 92 drwxr-xr-x. 2 root root 61440 Mar 15 11:41 Packages drwxr-xr-x. 2 root root 4096 Mar 15 11:41 repodata [root@localhost BaseOS]# cd Packages/ [root@localhost Packages]# ll total 1310536 -r–r–r–. 1 root root 84797 Mar 15 11:41 accel-config-3.5.3-2.el9.i686.rpm -r–r–r–. 1 root root 81657 Mar 15 11:41 accel-config-3.5.3-2.el9.x86_64.rpm -r–r–r–. 1 root root 54604 Mar 15 11:41 accel-config-libs-3.5.3-2.el9.i686.rpm -r–r–r–. 1 root root 54176 Mar 15 11:41 accel-config-libs-3.5.3-2.el9.x86_64.rpm

7.1.5 如果我们要安装zsh-5.8-9.el9.x86_64.rpm包,则使用下面的命令

root@localhost Packages]# rpm -i zsh-5.8-9.el9.x86_64.rpm #-i:这个选项表示你想要安装一个新的 RPM 包。它告诉 rpm 命令执行安装操作。 [root@localhost Packages]# rpm -qa | grep zsh #查询系统中所有已安装的 RPM 包,并过滤出名称中包含 “zsh” 的包。 #-qa 中的 -q 表示查询模式,而 -a 则表示所有包。

7.1.6 删除该包

[root@localhost Packages]# rpm -e zsh #-e:卸载

7.2 dnf 本地安装

7.2.1 切换路径到/etc/yum.repos.d/,清空仓库,为演示dnf安装做准备

[root@localhost Packages]# cd /etc/yum.repos.d/ #cd /etc/yum.repos.d/:这一步将当前工作目录更改到 /etc/yum.repos.d/,这是存放 YUM(Yellowdog Updater, Modified)仓库配置文件的目录。 [root@localhost yum.repos.d]# ll total 8 -rw-r–r–. 1 root root 358 Nov 2 10:02 redhat.repo -rw-r–r–. 1 root root 113 Nov 2 10:00 rpm.repo [root@localhost yum.repos.d]# rm -rf * [root@localhost yum.repos.d]# ll total 0 [root@localhost yum.repos.d]# cd [root@localhost ~]# dnf install http -y Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. Error: There are no enabled repositories in “/etc/yum.repos.d”, “/etc/yum/repos.d”, “/etc/distro.repos.d”. #该错误表明 DNF/YUM 在尝试查找软件包进行安装时,未能找到任何已启用的软件仓库。这通常是因为 /etc/yum.repos.d/ 目录中没有任何有效的 .repo 文件,正如之前命令中所做的那样清空了该目录。 https://i-blog.csdnimg.cn/direct/9ad3425b7a6c49529c8d45d0203d2b68.png 注意:前面还有步骤:7.1.1、7.1.2

7.2.2 定义仓库bendi.repo,一般在/etc/yum.repos.d/目录下

[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ll total 4 -rw-r–r–. 1 root root 358 Mar 15 15:58 redhat.repo [root@localhost yum.repos.d]# vim bendi.repo [root@localhost yum.repos.d]# cat bendi.repo [baseos] name=baseos baseurl=/rpm/BaseOS gpgcheck=0 [appstream] name=appstream baseurl=/rpm/AppStream gpgcheck=0

7.2.3 安装

[root@localhost ~]# dnf install httpd -y Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. baseos 133 MB/s | 2.0 MB 00:00 appstream 150 MB/s | 6.5 MB 00:00 Dependencies resolved.

Package Architecture Version Repository Size

Installing: httpd x86_64 2.4.57-5.el9 appstream 52 k #软件包名 架构信息 具体版本 从 appstream 仓库安装

7.3 dnf网络仓库安装

7.3.1 删除bendi.repo,为网络安装做准备

[root@localhost yum.repos.d]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ll total 8 -rw-r–r–. 1 root root 113 Mar 15 16:24 bendi.repo -rw-r–r–. 1 root root 358 Mar 15 15:58 redhat.repo [root@localhost yum.repos.d]# rm -rf bendi.repo https://i-blog.csdnimg.cn/direct/9ad3425b7a6c49529c8d45d0203d2b68.png 注意:前面还有步骤:7.1.1、7.1.2,然后将本地仓库换成下文中的网络仓库

7.3.2 编写网络仓库

[root@localhost yum.repos.d]# vim wangluo.repo [root@localhost yum.repos.d]# cat wangluo.repo [baseos] name=baseos baseurl=http://47.108.86.156/rhel9.0/x86_64/dvd/BaseOS/ gpgcheck=0 [appstream] name=appstream baseurl=http://47.108.86.156/rhel9.0/x86_64/dvd/AppStream gpgcheck=0 #http://47.108.86.156/rhel9.0/x86_64/dvd/BaseOS/和http://47.108.86.156/rhel9.0/x86_64/dvd/AppStream是网络连接, #baseurl:这个参数指定了软件仓库的 URL 地址。在这个例子中,baseurl 设置为http://47.108.86.156/rhel9.0/x86_64/dvd/BaseOS/ 和 http://47.108.86.156/rhel9.0/x86_64/dvd/AppStream/,这意味着 DNF 将从这个远程服务器上下载所需的软件包。

7.3.3 查看网络仓库

[root@localhost yum.repos.d]# cd [root@localhost ~]# dnf repolist #列出所有已启用的仓库,意味着 DNF 可以从这些仓库下载和安装软件包。 Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. repo id repo name appstream appstream baseos baseos #repo id:仓库的唯一标识符,在你的配置文件中对应于方括号内的名称,例如 [baseos] 和 [appstream]。 #repo name:仓库的描述性名称,对应于 .repo 文件中的 name 字段。

7.3.4 下载

[root@localhost ~]# dnf install vsftpd -y