Write the Code. Change the World.

1月 29

由于 Yum 中许多长期存在的问题仍未得到解决,因此 Yum 包管理器 已被 DNF 包管理器 取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。

DNF 使用 libsolv 进行依赖解析,由 SUSE 开发和维护,旨在提高性能。

Yum 主要是用 Python 编写的,它有自己的应对依赖解析的方法。它的 API 没有完整的文档,它的扩展系统只允许 Python 插件。

Yum 是 RPM 的前端工具,它管理依赖关系和资源库,然后使用 RPM 来安装、下载和删除包。

为什么他们要建立一个新的工具,而不是修复现有的问题呢?

Ales Kozamblak 解释说,这个修复在技术上是不可行的,而且 Yum 团队还没有准备好立即接受修改。

另外,最大的挑战是,Yum 有 56000 行代码,但 DNF 只有 29000 行代码。

所以除了分叉,没有办法解决。

不过 Yum 的运行情况还算可以。

编号 DNF(Dandified YUM) YUM(Yellowdog Updater, Modified)
1 DNF 使用 libsolv 来解析依赖关系,由 SUSE 开发和维护 YUM 使用公开的 API 来解析依赖关系
2 API 有完整的文档 API 没有完整的文档
3 由 C、C++、Python 编写的 只用 Python 编写
4 DNF 目前在 Fedora、RHEL 8、CentOS 8、OEL 8 和 Mageia 6/7 中使用 YUM 目前在 RHEL 6/7、CentOS 6/7、OEL 6/7 中使用
5 DNF 支持各种扩展 Yum 只支持基于 Python 的扩展
6 API 有良好的文档,因此很容易创建新的功能 因为 API 没有正确的文档化,所以创建新功能非常困难
7 DNF 在同步存储库的元数据时,使用的内存较少 在同步存储库的元数据时,YUM 使用了过多的内存
8 DNF 使用满足性算法来解决依赖关系解析(它是用字典的方法来存储和检索包和依赖信息) 由于使用公开 API 的原因,Yum 依赖性解析变得迟钝
9 从内存使用量和版本库元数据的依赖性解析来看,性能都不错 总的来说,在很多因素的影响下,表现不佳
10 DNF 更新:在 DNF 更新过程中,如果包中包含不相关的依赖,则不会更新 YUM 将在没有验证的情况下更新软件包
11 如果启用的存储库没有响应,DNF 将跳过它,并继续使用可用的存储库处理事务 如果有存储库不可用,YUM 会立即停止
12 dnf updatednf upgrade 是等价的 在 Yum 中则不同
13 安装包的依赖关系不更新 Yum 为这种行为提供了一个选项
14 清理删除的包:当删除一个包时,DNF 会自动删除任何没有被用户明确安装的依赖包 Yum 不会这样做
15 存储库缓存更新计划:默认情况下,系统启动后 10 分钟后,DNF 每小时会对配置的存储库检查一次更新。这个动作由系统定时器单元 dnf-makecache.timer 控制 Yum 也会这样做
16 内核包不受 DNF 保护。不像 Yum,你可以删除所有的内核包,包括运行中的内核包 Yum 不允许你删除运行中的内核
17 libsolv:用于解包和读取资源库。hawkey: 为 libsolv 提供简化的 C 和 Python API 库。librepo: 提供 C 和 Python(类似 libcURL)API 的库,用于下载 Linux 存储库元数据和软件包。libcomps: 是 yum.comps 库的替代品。它是用纯 C 语言编写的库,有 Python 2 和 Python 3 的绑定。 Yum 不使用单独的库来执行这些功能
18 DNF 包含 29000 行代码 Yum 包含 56000 行代码
19 DNF 由 Ales Kozumplik 开发 YUM 由 Zdenek Pavlas、Jan Silhan 和团队成员开发

文章来源

https://linux.cn/article-12161-1.html

相关文章

https://blog.csdn.net/xaosky/article/details/123034396

阅读全文 >>

1月 29

想做一个完整的项目。服务器是不可缺少的一部分。服务器选什么环境呢,用的比较多的是 centos 和 ubuntu。阿里云基于龙蜥操作系统(Anolis OS)打造的阿里云第三代发行版操作系统 Alibaba Cloud Linux 3(以下简称 Alinux 3) 的 CIS 安全基线(Alinux 3 CIS benchmark v1.0.0 版本)正式完成了 CIS 认证。 Alinux 3 全面兼容 RHEL / CentOS 8 生态。随着 CentOS 8 的停服,使用 Alibaba Cloud Linux 3 来替代 CentOS 也成为部分企业的选择。这里就用 Alibaba Cloud Linux 3 吧。

选配购买好服务器后。在阿里云控制台设置好密码和常用安全组,就可以通过 ssh 进入操作系统了。

常规操作

https://help.aliyun.com/document_detail/416274.html

# 安全更新提醒
dnf upgrade-minimal --security

# 查看服务器环境
lsb_release -a

# 结果如下
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: AlibabaCloud
Description:    Alibaba Cloud Linux release 3 (Soaring Falcon)
Release:    3
Codename:   SoaringFalcon

# 更新 yum 源
yum update

Alibaba Cloud Linux release 3 中 yum 指向了 dnf-3

dnf 和 yun 的区别

相关文章

https://zhuanlan.zhihu.com/p/438572784

https://baijiahao.baidu.com/s?id=1725178032789531647&wfr=spider&for=pc

阅读全文 >>

1月 13

Alt + Enter 导入包,自动修正

Command + N 查找类

Command + Shift + N查找文件

Command + Alt + L格式化代码

Command + Alt + O优化导入的类和包

Ctrl +Enter生成代码

Command + E打开最近更改的代码

Command + R替换

Command + F查找

Alt + Shift + C 对比最近修改代码

Shift + F6 重构、重命名

Command + Y删除行

Command + D 复制行

Command + J 自动代码

Alt + F1快速打开隐藏工具面板

Alt + Command + 左右键 快速回到上次修改的地方

Command + 左右键 快速至行尾、行首

Control + 上下键 方法间快速移动定位

Shift + Command + 上下键 代码向上下移动

F2 快速定位并高亮错误或警告

Command + W 选中代码,连续按有不同效果

选中文本后,Alt + F3,逐个查找相同文本

Command + B 打开光标处的方法或者类

阅读全文 >>

1月 07

下载地址

https://www.jetbrains.com.cn/idea/download/other.html

IDEA的ultimate(最终版)与community(社区版)的区别

https://blog.csdn.net/blbyu/article/details/118201500

IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。
- community(社区版):免费的IntelliJ IDEA community版本是基于开源代码构建的,可以用于纯JVM 和 Android 开发,拥有大部分开发中所需要的功能,但是不能够提供前端css和js的技术支持。
- ultimate(最终版):付费的 IntelliJ IDEA ultimate版本可以支持web端和企业端的开发使用,能支持众多前端和后端框架和技术,可以提供分析和数据库工具、HTTP客户端,允许免费使用30天(①购买正版;②可每30天卸载重新安装哦;)

破解尝试

https://www.hereitis.cn/articleDetails/867

https://www.hereitis.cn/soft/intellijidea

阅读全文 >>

1月 02

eclipse 和 maven

https://maven.apache.org/download.cgi

打开页面,选择对应的版本下载。这里 apache-maven-3.8.7-bin.zip

下载好后,打开 eclipse, 打开 Window → Preferences → Maven → Installations,点击 Add,将刚才下载的 maven 配置进去就可以。因为从零开始,啥都喜欢用最新的。

再来配置 Window → Preferences → Maven → User Settings

/Users/vini123/Java/eclipse/apache-maven-3.8.7/conf/settings.xml

参考

代码补全提示

https://cloud.tencent.com/developer/article/1795246

安装 PropertiesEditor

https://blog.csdn.net/sayyy/article/details/104780196

阅读全文 >>

12月 29

mysql 5.7 之后,默认 only_full_group_by 生效。也就是 select 的字段和 group by 的字段一样,额外的聚合函数除外。这样一来,很影响我们数据输出的需要。比如我想知道上海市每个区有多少家店,要展示区名字,店名字,区号。数据库里边存储的字段有店名、区号、区名字等。这个时候 only_full_group_by 严格模式下,直接请求就会有错误。这里是,可以有两种方法来解决。一是关掉 only_full_group_by 模式。二是使用 ANY_VALUE 函数。不错就是使用 ANY_VALUE 函数。

解决方法

个人喜欢使用 ANY_VALUE 来搞定。

SELECT COUNT(*) AS count, 区号, ANY_VALUE(区名字), ANY_VALUE(店名字) FROM 店表 GROUP BY 区号;

阅读全文 >>

12月 18

在很着急的时候,发现 esc 退出不了 vim 的编辑模式。这个键值太气人了,都想砸键盘了。不过,终究还是有方法。不是关了终端从新进。

操作一波

# 用这个搞定
control + c 

阅读全文 >>