目录

1. 配置DNF

1.1 DNF配置文件

1.2 配置main部分

1.3 配置repository部分

1.4 创建本地软件源仓库

2. 管理软件包

2.1.搜索软件包

2.2.列出软件包清单

2.3.显示 RPM 包信息

2.4.安装 RPM 包

2.5.下载、删除软件包

3.管理软件包组

3.1 列出软件包组清单

3.2 显示软件包组

3.3 安装、删除软件包组

4. NFS共享存储服务

4.1 使用NFS发布共享资源

4.2 在客户机中访问NFS共享资源


1. 配置DNF

借助于 DNF 软件仓库,可以完成安装、卸载、自动升级 rpm 软件包等任务,能够自动査找并解决 rpm包之间的依赖关系,而无须管理员逐个、手工地去安装每个 rpm 包,使管理员在维护大量 Linux 服务器时更加轻松自如。特别是在拥有大量 Linux 主机的本地网络中,构建一台“源”服务器可以大大缓解软件安装、升级等对 Internet 的依赖。DNF 与YUM 完全兼容,提供了 YUM兼容的命令行以及为扩展和插件提供的 API。

DNF与YUM的核心区别

特性 YUM DNF
依赖解析引擎 基于 Python 的简单算法 基于 libsolv(SUSE 开发的高效依赖解析库)
性能 较慢(尤其是复杂依赖场景) 显著更快,内存占用更低
事务历史管理 基础功能 支持更详细的事务历史(dnf history
API 和扩展性 旧代码,扩展性差 现代化 API,支持更好的插件和模块化
社区支持 已停止维护(标记为遗留工具) 活跃维护,持续更新

1.1 DNF配置文件

DNF 的主要配置文件是 /etc/dnf/dnf.conf,该文件包含两部分:

“main” 部分保存着DNF的全局设置。

“repository” 部分保存着软件源的设置,可以有零个或多个“repository”

另外,在/etc/yum.repos.d 目录中保存着零个或多个 repo 源相关文件,它们也可以定义不同的“repository" 。所以 openEuler 软件源的配置一般有两种方式,一种是直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,另外一种是在/etc/yum.repos.d 目录下增加.repo 文件。

1.2 配置main部分

/etc/dnf/dnf.conf 文件包含的“main”部分,配置示例如下:

常用选项说明:

参数名称 说明
cachedir 缓存目录,该目录用于存储 RPM 包和数据库文件
keepcache 可选值是1和0,表示是否要缓存已安装成功的那些RPM包及头文件,缺省值为 0,即不缓存
debuglevel 设置 dnf 生成的 debug 信息。取值范围:[0-10],数值越大会输出越详细的 debug 信息,缺省值为 2,设置为0表示不输出 debug 信息
clean_reguirements_on_remove 删除在 dnf remove 期间不再使用的依赖项,如果软件包是通过 DNF 安装的,而不是通过显式用户请求安装的,则只能通过 clean_reguirements on_remove荆除软件包,即它是作为依赖项引入的,缺省值为 True
best 升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装,缺省值为True
obsoletes 可选值1和0,设置是否允许更新陈旧的RPM包,缺省值为 1,表示允许更新
gpgcheck 可选值1和0,设置是否进行 gpg 校验,缺省值为1,表示需要进行校验
plugins 可选值1和0,表示启用或禁用 dnf插件,缺省值为 1 表示启用 dnf 播件
installonly_limit 设置可以同时安装“installonlypkgs"指令列出包的数量缺省值为 3,不建议降低此值

1.3 配置repository部分

repository 部分允许您定义定制化的 openEuler 软件源仓库,各个仓库的名称不能相同,否则会引起冲突。配置repository 部分有两种方式,一种是直接配置/etc/dnf/dnf.conf 文件中的“repository”部分,另外一种是配置/etc/yum.repos.d目录下的.repo 文件

1.4 创建本地软件源仓库

要在本地创建一个软件源仓库,可以按照以下步骤进行:

1. 首先,选择一个合适的目录用于存放软件包。可以在系统中创建一个新的目录,比如 `/srv/software_repo`。

2. 将您的软件包复制到这个目录中。您可以从互联网上下载需要的软件包,也可以将已有的软件包复制过来。

3. 安装一个软件仓库管理工具,比如 `createrepo`。

4. 在存放软件包的目录中运行 `createrepo` 命令,以创建仓库索引文件:

5. 配置系统,以使其能够访问新创建的软件源仓库。可以通过 HTTP、FTP 或本地路径等方式提供访问。

6. 如果希望其他计算机能够访问这个仓库,还需要在其他计算机上配置相应的软件源,指向搭建的本地仓库地址。

2. 管理软件包

使用 dnf 能够让用户方便的进行査询、安装、删除软件包等操作。

2.1.搜索软件包

可以使用rpm包名称、缩写或者描述搜索需要的RPM包,比如搜索httpd的命令为:

2.2.列出软件包清单

要列出系统中所有已安装的以及可用的 RPM包信息,使用以下命令:

2.3.显示 RPM 包信息

要显示一个或者多个 RPM 包信息,多个包之间以空格分隔,比如httpd、zip使用以下命令:

2.4.安装 RPM 包

要安装一个软件包及其所有未安装的依赖,比如安装httpd命令如下:

2.5.下载、删除软件包

使用dnf下载软件包,比如httpd命令如下:

使用dnf删除软件包,比如httpd命令如下:

3.管理软件包组

软件包集合是服务于一个共同的目的一组软件包,例如系统工具集等。使用 dnf 可以对软件包组进行安装/删除等操作,使相关操作更高效。

3.1 列出软件包组清单

使用 summary 参数,可以列出系统中所有已安装软件包组、可用的组,可用的环境组的数量,命令如下:

要列出所有软件包组和它们的组 ID ,命令如下:

3.2 显示软件包组

要列出包含在一个软件包组中必须安装的包和可选包,例如显示 Development Tools 信息,命令如下:

3.3 安装、删除软件包组

安装

每一个软件包组都有自己的名称以及相应的 ID,可以使用软件包组名称或它的 ID 进行安装。

要安装一个软件包组,例如安装 Development Tools 相应的软件包组,命令如下:

删除

若要卸载软件包组,例如删除 Development Tools 相应的软件包组,命令如下:

4. NFS共享存储服务

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。

4.1 使用NFS发布共享资源

NFS 服务的实现依赖于 RPC(Remote Process Cal1,远端过程调用)机制,以完成远程到本地的映射过程。在 0penEuler 系统中,需要安装 nfs-uti1s、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS共享发布和访问,后者用于RPC支持。

(1)安装 nfs-utils、rpcbind 软件包

提供 RPC支持的服务为 rpcbind,提供 NFS 共享的服务为 nfs,完成安装以后建议调整这两个服务的自启动状态,以便每次开机后自动启用。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs

(2)设置共享目录

NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在 exports 文件中设置共享资源时,记录格式为“目录位置客户机地址(权限选项)”。

(3)启动 NFS 服务程序

安装网络工具否则无法使用netstat

4.2 在客户机中访问NFS共享资源

NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载对应的文件系统类型为 nfs。既可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。

(1)安装并启动 rpcbind

若要正常访问 NFS 共享资源,客户机中也需要安装 rpcbind 软件包,并启动 rpcbind 系统服务

(2)手动挂载 NFS 共享目录

以 root 用户身份执行 mount 操作,将 NFS 服务器共享的/opt/wwwroot 目录挂载到本地目录/var/www/html。与挂载本地文件系统不同的是,设备位置处应指出服务器地址。

(3)fstab 自动挂载设置

修改/etc/fstab 配置文件,加入 NFS 共享目录的挂载设置。注意将文件系统类型设为 nfs,挂载参数建议添加_netdev(设备需要网络);若添加 soft、intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS 共享资源了

(4)强制卸载 NFS

NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载的,需要加上 -1f 才能卸载。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐