有2种方式
1、使用dnf 下载软件包
2、或者开启缓存,安装自动获取rpm
其他事项
3、dnf 安装数据库的机器,应屏蔽数据软件的更新
4、下载的rpm 莫名奇妙的不能安装
1、dnf download 下载软件包
# resolve 解决依赖 ,destdir 指定下载路径
dnf download --resolve --destdir ~/downloads cmake
2、开启缓存
官方原教程:https://docs.openeuler.org/zh/docs/23.09/docs/Administration/使用DNF管理软件包.html
修改 /etc/dnf/dnf.conf ,添加如下内容;修改即生效
# 缓存路径
cachedir=/opt/dnf1
# 1 缓存,0 不缓存
keepcache=1
3、dnf 安装数据库的机器,应屏蔽数据软件的更新
原因:这里参考: https://www.cnblogs.com/kwoky/p/17954596 安装数据库,dnf update 会更新所有源
避免在执行 dnf update
时升级 PostgreSQL,这里采用方法一(其它没测试,注:yum可用,理论也要屏蔽)
dnf 安装数据库简单,稳定经过一定测试,但openEuler 不一定有最新的数据库的软件版本;
源码安装稍微复杂,但是灵活;
方法一:排除特定软件包
你可以创建一个 DNF 的配置文件,其中包含要排除不进行更新的软件包列表。
- 修改/etc/dnf/dnf.conf ,在这个文件中添加如下内容:
#数组,可屏蔽指定开头或软件包:excludepkgs=包名前缀*,包名 excludepkgs=postgresql*
测试,那个低版本的 postgresql 组件没在更新列表内
方法二:锁定PostgreSQL版本
你可以锁定当前安装的 PostgreSQL 版本,这样即使执行了 dnf update
,PostgreSQL 也不会被升级。
-
首先,找出你想要保持的 PostgreSQL 的确切版本号。
-
使用
dnf versionlock
插件来锁定 PostgreSQL 版本。如果还没有安装dnf-plugin-versionlock
,你需要先安装它:sudo dnf install dnf-plugin-versionlock
-
锁定 PostgreSQL 包:
sudo dnf versionlock add postgresql-<version>
将
<version>
替换为你想要锁定的具体版本号。例如:sudo dnf versionlock add postgresql-14.5-1PGDG.rhel7
方法三:手动选择更新
如果你不想永久地锁定或排除 PostgreSQL 的更新,而只是想在某个具体的 dnf update
操作中跳过它,你可以列出除了 PostgreSQL 之外的所有可更新的软件包,并只更新这些软件包。
- 列出所有可以更新的软件包(除了 PostgreSQL):
dnf list updates | grep -v postgresql
- 手动指定你要更新的软件包,或者创建一个脚本来自动化这个过程。
方法四:使用 --exclude
你可以在执行 dnf update
命令时直接加上 --exclude
参数来排除 PostgreSQL 的更新:
sudo dnf update --exclude=postgresql*
通过上述方法之一,你应该能够在更新其他软件包的同时避免 PostgreSQL 被自动升级。记得在更改之前备份你的数据和配置,以防万一出现问题。
4、下载的rpm 莫名奇妙的不能安装
现象:
安装redis 有个软件包:rpm -ivh 软件包,提示软件依赖关系;但是rpm -ivh *.rpm 确没安装该软件
如何判断软件是否损坏
# 执行强制安装命令 ,该软件提示 摘要错误
sudo rpm -ivh --force *.rpm
# 删除软件,并下载该软件包及依赖:/root/downloads 为路径,cmake 为软件
dnf download --resolve --destdir /root/downloads cmake