标签:root upd 更改 suse 避免 意义 ges 配置方法 由来
3.1、 Centos 8软件仓库本地dnf源配置完毕。
3.5.2、 配置internet源(如阿里源、epel源)
首先将上面配置的本地源禁用
访问https://mirrors.aliyun.com/或https://developer.aliyun.com/mirror/地址
点击上图用红线框起来的链接,如centos
按照上图给出的方法下载仓库文件即可
阿里源配置完成。
3.6、 如何使用DNF
DNF命令的语法类似于YUM,你会发现它们之间有很多相似之处。
dnf [options] <command> [<args>...]
遇到不懂的地方运行 man dnf 查看dnf的man帮助就可以了。
3.6.3、 DNF常用命令
检查并升级可用软件包:dnf update
删除缓存:dnf clean all
列出可用的软件源:dnf repolist
搜索软件:dnf search $package
安装软件:dnf install $package
升级软件包:dnf update $package
删除软件包:dnf remove $package
查看更多命令:dnf help
接下来,我们将学习DNF 包管理器的操作命令,使用这些命令,你可以方便有效的管理您系统中的 RPM 软件包。
3.6.4、 查看 DNF 包管理器版本
该命令用于查看安装在您系统中的 DNF 包管理器的版本
3.6.5、 使用dnf列出系统中的仓库
该命令列出了默认情况下启用的所有仓库,并提供了列出其他信息的选项。 在通过dnf命令添加-v选项时,可提供了更详细的信息。
此外,它不会强制同步过期的元数据,并且你可以强制同步使用--refresh开关启用的所有存储库。
3.6.5.1、 列出系统上启用的软件库
运行以下命令列出系统上启用的仓库
[root@localhost ~]# dnf repolist
或者,你可以运行以下命令以列出系统上已启用的仓库
3.6.5.2、 列出系统上禁用的仓库
运行以下命令以列出系统上禁用的仓库
3.6.5.3、 列出系统上的所有仓库(已启用和已禁用)
运行以下命令以列出系统上的所有仓库(已启用和已禁用)
3.6.5.4、 列出每个仓库的详细信息
要查看有关每个存储库的详细信息,使用dnf命令添加-v开关。 它显示repo-id,repo-name等。
3.6.6、 列出RPM包
3.6.6.5、 列出所有 RPM 包
dnf list命令用于列出系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包。
3.6.6.6、 列出所有安装了的 RPM 包
dnf list installed该命令用于列出所有安装了的 RPM 包
3.6.6.7、 列出所有可供安装的 RPM 包
该命令用于列出来自所有可用软件库的可供安装的软件包(不包括已安装的软件包)
3.6.6.8、 查看是否安装了给定的软件包
以下命令查看是否安装了给定的软件包。如果是,它将显示类似下面的输出。否则,它将显示以下错误消息“Error: No matching packages to list”
3.6.6.9、 列出可用于已安装软件包的升级包
3.6.7、 搜索软件库中的 RPM 包
dnf search命令使你可以根据给定的字符串(关键字)查找可用软件包的列表。当你不知道要安装的确切软件包名称时,你可以用该命令来搜索软件包。你需要在”search”参数后面键入软件的部分名称来搜索,关键字作为不区分大小写的子字符串进行匹配。默认情况下,列出与所有请求的关键字匹配的软件包。在软件包名称和摘要中搜索关键字。
3.6.8、 查找某一文件的提供者
dnf provides命令将查找提供给定文件的软件包。如果您想找出哪个软件包(已安装或未安装)提供了此文件,这将很有用。
例如,我们将查找”/bin/bash”这个文件的提供者
例如,我们都知道sar的使用,而我们大多数人都不知道哪个软件包提供了此文件。使用以下命令找到它。
3.6.9、 查看软件包详情
当你想在安装某一个软件包之前查看它的详细信息时,这条命令可以帮到你
以下命令用于列出有关已安装和可用软件包的描述和摘要信息。它显示了有关软件包的各种信息,例如名称,Arch,版本,发行版,大小,存储库名称等。
3.6.10、 安装软件包
使用该命令,系统将会自动安装对应的软件及其所需的所有依赖,默认情况下,每次DNF要求您确认安装软件包时,都添加-y选项以避免确认。
3.6.10.10、 安装单个软件包:
3.6.10.11、 安装多个软件包:
3.6.10.12、 在dnf中添加-y选项以安装软件包,无需确认直接安装:
3.6.10.13、 安装rpm包文件:
3.6.10.14、 从url安装rpm包:
3.6.10.15、 要安装提供/usr/bin/[xxx]文件的软件包,请运行以下命令。
例如,sar应用程序是“ sysstat”软件包的一部分,但我们大多数人都不知道其父软件包的名称。 但是,很难找到其父程序包名称,但是此命令允许您在不知道父程序包名称的情况下进行安装。
3.6.11、 删除软件包
3.6.11.16、 删除系统中指定的软件包
例如删除一个名为nginx的软件包
3.6.11.17、 删除无用孤立的软件包
当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。
3.6.12、 升级软件包
3.6.12.18、 将所有已安装的软件包更新为最新的可用版本
3.6.12.19、 将给定的一个或多个软件包更新为最新的可用版本
例如,我们将用命令升级”systemd”这一软件包
3.6.12.20、 检查系统软件包的更新
该命令用于检查系统中所有软件包的更新
或者,使用下面的命令检查可用更新。
以下命令检查对指定软件包的更新
3.6.13、 清除系统上的缓存数据
默认情况下,当你执行各种dnf操作时,dnf会将包和存储库元数据之类的数据缓存到“/var/cache/dnf”目录中。该缓存在一段时间内会占用大量空间。这将允许您删除所有缓存的数据。
3.6.14、 获取有关某条命令的使用帮助
该命令用于获取有关某条命令的使用帮助(包括可用于该命令的参数和该命令的用途说明)(本例中我们将使用命令获取有关命令”clean”的使用帮助)
3.6.15、 查看所有的 DNF 命令及其用途
命令用于列出所有的 DNF 命令及其用途
3.6.16、 查看 DNF 命令的执行历史
你可以使用该命令来查看你系统上 DNF 命令的执行历史。通过这个手段你可以知道在自你使用 DNF 开始有什么软件被安装和卸载。
3.6.16.21、 显示dnf历史记录
dnf history命令允许用户查看在过去的事务中发生了什么操作
或者,你可以使用以下命令获得相同的结果。
3.6.16.22、 显示有关历史的详细信息
显示有关历史的详细信息。如果未指定,则显示最近一次历史信息
运行以下命令以查看有关给定ID的历史详细信息。
3.6.17、 查看所有的软件包组
该命令用于列出所有的软件包组
3.6.18、 安装一个软件包组
该命令用于安装一个软件包组
3.6.19、 升级一个软件包组中的软件包
该命令用于升级一个软件包组中的软件包
3.6.20、 删除一个软件包组
该命令用于删除一个软件包组
3.7、 模块化管理功能
3.7.21、 利用AppStream管理软件
随着linux系统越来越庞大,软件包也越来越多,越来越复杂。CentOS 8 跟随上游RHEL8中引入了一种新的结构来管理软件内容,所有的软件内容被划分成了两个repository:BaseOS 和AppStream
BaseOS:类似于原来的软件仓库,主要提供了OS系统的基础组件,提供的是RPM形式的包,因为都是RPM包形式所以它支持与之前版本兼容。
AppStream:这是一个特殊类型的仓库,它提供的是用户空间的应用,运行时语言等,它提供了两种形式的内容:第一种是RPM形式的独立的软件包,第二种是Module形式的包集合,Module是代表着一组通常一起安装的RPM包,一个典型的module包含应用,依赖库,文档库,帮助组件等,即将相关的包组合在一起。
为什么要引入AppStream?
CentOS 8引入了新的仓库 AppStream,这个仓库通过流式更新可以为 CentOS 带来新的版本,不会像以前那样,软件包过于陈旧。但是这样带来一个问题,如何保证用户的迁移成本,比如一些程序运行时,主版本对于大部分人来说不能轻易更新。解决问题的方法是引入模块化。模块化让软件包仓库可以同时分发相同软件的不同版本,一个模块代表一个版本,需要指定版本安装或启用对应模块即可,一个模块可以包含多个软件包以解决依赖性问题。
当你在 CentOS 8 添加新的没有模块的软件仓库,比如 NodeJS 的官方仓库,然后准备运行dnf install nodejs安装的时候,却发现软件版本没有变,并没有使用第三方软件仓库的包,这是因为模块拥有更高的优先级,而第三方软件仓库没有引入模块化或者是模块没有被启用,解决方法是禁用掉当前启用的模块或者启用新的模块。
请注意,并非AppStream软件仓库中的所有包都分布在一个模块中。
3.7.22、 模块化基础知识
AppStream这个软件仓库有一个不同的管理软件的方法,将它分为几个子类:
Packages:作为常规包处理(即RPM形式的独立的软件包)。
Module:是代表着一组通常一起安装的RPM包,一个典型的module包含应用,依赖库,文档库,帮助组件等。
Module stream:代表一组组件的不同版本,模块通常有多个流,这通常代表软件的主要版本。它可以并行使用,但在给定系统上只能安装每个模块的一个流。
Module profiles:代表为了某个功能需要一起安装的包列表,module stream中可以包含多个profiles,可以根据profiles 选择性地安装模块。例如,数据库模块可以作为客户端,服务端或同时安装。
3.7.23、 dnf module命令来管理模块
你可以通过dnf module命令来管理模块,常用的用法:
注:可通过man dnf查看dnf的帮助手册中关于module的的命令用法
3.7.23.23、 模块列表:dnf module list
输出模块列表,显示每个模块关联的流、版本和可用安装配置文件。模块流旁边的 [d] 表示安装命名模块时使用的默认流。
执行该命令后会有如下的输出信息
要显示有关特定模块的信息,请提供名称作为上一个命令的参数:
可以看到四列输出,分别是:Name、Stream、Profiles、Summary
Name代表模块(module)名,stream代表模块流即软件版本,模块流旁边的 [d] 表示安装命名模块时使用的默认流。Profile代表为了某个功能需要一起安装的包列表。比如mysql模块,包含了一个8.0版本的流,其下有client、server两种安装组合,其中,server组合后,有一个“[d]”,那是缺省的安装组合。如果你安装的时候没有指定组合,则会安装这个server组合。下面两条命令的最终效果是一样的:
module stream中可以包含多个profiles,可以根据profiles 选择性地安装模块。例如,mysql模块可以作为客户端,服务端或同时安装。
3.7.23.24、 查看模块:dnf module info <module_spec>…
要获取有关该模块的一些详细信息,请运行以下命令:
关于 module_spec 取值,不同的命令有些许不同,先列出模块列表,可以看到四列输出,分别是:Name、Stream、Profiles、Summary,除了 Summary 之外其他三列都有用。
例如:显示nginx模块流1.14的详细信息
如要显示更加详细的信息可以视同-v选项
3.7.23.25、 安装模块:dnf module install <module_spec>…
安装模块配置文件命令用法是:
安装模块配置文件,包括其软件包。如果没有提供配置文件,则安装所有默认配置文件。相应地启用模块流。
首先获取模块stream,例如:
你可以看到模块mariadb有一个stream,要安装MongoDB的server,请运行:
因为mariadb模块的stream 10.3和profiles server是默认的,所以也可以执行下面的命令
安装后,你可以使用rpm命令确认包版本:
如果要安装的是mariadb模块的配置文件client,就需要指定profiles
3.7.23.26、 卸载模块:dnf module remove <module_spec>…
删除已安装的模块配置文件,包括其软件包。如果没有提供配置文件,则会删除所有已安装的配置文件。
3.7.23.27、 启用模块:dnf module enable <module_spec>…
这将启用module stream并使包RPM中的流RPM可用。
注:模块不需要启用也可以直接安装
3.7.23.28、 禁用模块:dnf module disable <module-name>…
要禁用模块并使所有相关module streams不可用,请使用:
$ dnf module disable <module-name>
3.7.23.29、 重置模块状态
你还可以重置模块状态,以便不再启用或禁用它:
标签:root upd 更改 suse 避免 意义 ges 配置方法 由来
原文地址:https://blog.51cto.com/hongge/2488168