本文介绍的内容有:在openEuler系统中配置DNF(修改配置文件、创建本地软件源仓库、添加、启用和禁用软件源)、管理软件包、管理软件包组、检查并更新。
前言 DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查询软件包信息,从指定软件库获取软件包,自动处理依赖关系以安装或卸载软件包,以及更新系统到最新可用版本。 说明: DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供的API。 使用DNF需要管理员权限,本章所有命令需要在管理员权限下执行。 参考:dnf命令_Linux dnf命令使用详解:新一代的RPM软件包管理器。
在openEuler系统中配置DNF 一、修改配置文件 DNF 的主要配置文件是 /etc/dnf/dnf.conf,该文件中“main”部分保存着 DNF 的全局设置。用户可以在该文件中通过添加一个或者多个“repository”部分的方式来设置需要安装的软件源位置。 另外,在/etc/yum.repos.d 目录中保存着一个或多个repo 源相关文件,它们定义了不同的“repository”。 软件源的配置一般有两种方式,一种是直接配置 /etc/dnf/dnf.conf 文件,另外一种是在 /etc/yum.repos.d 目录下增加 .repo 文件。 1、修改main部分 /etc/dnf/dnf.conf 文件包含的“main”部分,配置文件示例如下: [main] gpgcheck=0 installonly_limit=3 clean_requirements_on_remove=True best=True 常用选项说明,如下图:
2、修改repository部分 repository部分允许您定义定制化的软件源仓库,各个仓库的名称不能相同,否则会引起冲突。下面是[repository]部分的一个最小配置示例: [repository] name=repository_name baseurl=repository_url 选项说明: openEuler提供在线的镜像源,地址:https://repo.openeuler.org/。以 openEuler 20.03的aarch64版本为例,baseurl可配置为https://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/。参考下载openEuler 20.03 LTS目录里都放了些什么?以下为你解释。 repository参数说明,如下图:
3、显示当前配置 要显示当前的配置信息: dnf config-manager --dump 要显示相应软件源的配置,首先查询repo id: dnf repolist 然后执行如下命令,显示对应id的软件源配置,其中 repository 为查询得到的repo id: dnf config-manager --dump repository 您也可以使用一个全局正则表达式,来显示所有匹配部分的配置: dnf config-manager --dump glob_expression 二、创建本地软件源仓库 要建立一个本地软件源仓库,请按照下列步骤操作。 1、安装createrepo软件包。在root权限下执行如下命令: dnf install createrepo 2、将需要的软件包复制到一个目录下,如/mnt/local_repo/。 3、创建软件源,执行以下命令: createrepo --database /mnt/local_repo 三、添加、启用和禁用软件源 介绍如何通过“dnf config-manager”命令添加、启用和禁用软件源仓库。 1、添加软件源 要定义一个新的软件源仓库,您可以在 /etc/dnf/dnf.conf 文件中添加“repository”部分,或者在/etc/yum.repos.d/目录下添加“.repo”文件进行说明。建议您通过添加“.repo”的方式,每个软件源都有自己对应的“.repo”文件,以下介绍该方式的操作方法。 要在您的系统中添加一个这样的源,请在root权限下执行如下命令,执行完成之后会在/etc/yum.repos.d/目录下生成对应的repo文件。其中 repository_url 为repo源地址,详情请参见“配置DNF的修改配置文件”部分的“repository参数说明”: dnf config-manager --add-repo repository_url 2、启用软件源 要启用软件源,请在root权限下执行如下命令,其中 repository 为新增.repo文件中的repo id(可通过dnf repolist查询): dnf config-manager --set-enable repository 您也可以使用一个全局正则表达式,来启用所有匹配的软件源。其中 glob_expression 为对应的正则表达式,用于同时匹配多个repo id: dnf config-manager --set-enable glob_expression 3、禁用软件源 要禁用软件源,请在root权限下执行如下命令: dnf config-manager --set-disable repository 同样的,您也可以使用一个全局正则表达式来禁用所有匹配的软件源: dnf config-manager --set-disable glob_expression
在openEuler系统中管理软件包 使用dnf能够让您方便的进行查询、安装、删除软件包等操作。 1、搜索软件包 您可以使用rpm包名称、缩写或者描述搜索需要的RPM包,使用命令如下: dnf search term 示例如下: $ dnf search httpd
2、列出软件包清单 要列出系统中所有已安装的以及可用的RPM包信息,使用命令如下: dnf list all 要列出系统中特定的RPM包信息,使用命令如下: dnf list glob_expression… 示例如下: $ dnf list httpd
3、显示RPM包信息 要显示一个或者多个RPM包信息,使用命令如下: dnf info package_name… 例如搜索,命令如下: $ dnf info httpd
4、安装RPM包 要安装一个软件包及其所有未安装的依赖,请在root权限下执行如下命令: dnf install package_name 您也可以通过添加软件包名字同时安装多个软件包。配置文件/etc/dnf/dnf.conf添加参数strict=False,运行dnf命令参数添加–setopt=strict=0。请在root权限下执行如下命令: dnf install package_name package_name… --setopt=strict=0 示例如下: # dnf install httpd 5、下载软件包 使用dnf下载软件包,请在root权限下输入如下命令: dnf download package_name 如果需要同时下载未安装的依赖,则加上–resolve,使用命令如下: dnf download --resolve package_name 示例如下: # dnf download --resolve httpd 6、删除软件包 要卸载软件包以及相关的依赖软件包,请在root权限下执行如下命令: dnf remove package_name… 示例如下: # dnf remove totem
在openEuler系统中管理软件包组 软件包集合是服务于一个共同的目的一组软件包,例如系统工具集等。使用dnf可以对软件包组进行安装/删除等操作,使相关操作更高效。 1、列出软件包组清单 使用summary参数,可以列出系统中所有已安装软件包组、可用的组,可用的环境组的数量,命令如下: dnf groups summary 使用示例如下: # dnf groups summary
要列出所有软件包组和它们的组ID ,命令如下: dnf group list 使用示例如下: # dnf group list
2、显示软件包组信息 要列出包含在一个软件包组中必须安装的包和可选包,使用命令如下: dnf group info glob_expression… 例如显示Development Tools信息,示例如下: # dnf group info "Development Tools"
3、安装软件包组 每一个软件包组都有自己的名称以及相应的ID(groupid),您可以使用软件包组名称或它的ID进行安装。 要安装一个软件包组,请在root权限下执行如下命令: dnf group install group_name dnf group install groupid 例如安装Development Tools相应的软件包组,命令如下: # dnf group install "Development Tools" # dnf group install development 4、删除软件包组 要卸载软件包组,您可以使用软件包组名称或它的ID,在root权限下执行如下命令: dnf group remove group_name dnf group remove groupid 例如删除Development Tools相应的软件包组,命令如下: # dnf group remove "Development Tools" # dnf group remove development
在openEuler系统中检查并更新 dnf可以检查您的系统中是否有软件包需要更新。您可以通过dnf列出需要更新的软件包,并可以选择一次性全部更新或者只对指定包进行更新。 1、检查更新 如果您需要显示当前系统可用的更新,使用命令如下: dnf check-update 使用实例如下: # dnf check-update
2、升级 如果您需要升级单个软件包,在root权限下执行如下命令: dnf update package_name 例如升级rpm包,示例如下: # dnf update anaconda-gui.aarch64
类似的,如果您需要升级软件包组,在root权限下执行如下命令: dnf group update group_name 3、更新所有的包和它们的依赖 要更新所有的包和它们的依赖,在root权限下执行如下命令: dnf update 等待命令执行完毕即可完成。
相关主题 |