自动升级

sudo dnf update --refresh  # 更新系统包
sudo dnf install dnf-plugin-system-upgrade # 安装系统更新插件
sudo dnf system-upgrade download --refresh --releasever [32|33|rawhide] # 下载包
sudo dnf system-upgrade reboot # 重启执行升级操作

如果某些依赖不满足,升级将终止,可添加 --allowerasing 选项删除依赖损坏的包。这可能是第三方源还未进行更新。建议卸载这些依赖不满足的包。添加 --best 选项,可查看依赖问题的详细信息。

升级后操作

更新系统配置文件:
更新后,RPM将备份配置文件。搜索 .rpmnew(新配置) .rpmsave(旧配置),根据需要进行修改。或使用 rpmconf 工具进行处理。

sudo rpmconf -a

清理旧软件包:

sudo dnf repoquery --unsatisfied  # 列出依赖问题的包,可以酌情删除这些包
sudo dnf repoquery --duplicated # 列出重复的包,一般的包不会有重复存在
sudo dnf list extras # 列出已从源中删除的包,可能包含第三方源的包$
sudo dnf autoremove # 删除不需要的包

注意:DNF 不需要一个包,是根据您是否明确要求安装它来决定的。这不意味着这个包是无用的。您需要删除您确实不需要的包。注意,PackageKit 有个已知的 Bug,它并不标记包是用户安装。如果您使用 PackageKit(或 GNOME SoftwareApper 等)安装包,则这些包可能会列出,甚至会包含重要的应用程序和系统软件包,务必要十分小心。

解决升级后遇到的问题

如果您升级后,系统有问题,可能需要以下步骤。

重建RPM数据库:

如果您使用RPM/DNF工具时出现警告,可能需要重建RPM数据库。

sudo rpm --rebuilddb

使用 distro-sync 解决依赖问题:
system upgrade 工具默认使用 distro-sync 升级系统。如果您的系统有些未升级的包有依赖问题,可手动执行 distro-sync。这会同步源的软件包(某些包会降级)。

sudo dnf distro-sync
sudo dnf distro-sync --allowerasing # 允许删除依赖损坏的包,务必进行确认

重新标记 SELinux 标签:

如果某些行为被禁止并收到 SELinux 警告,可能有些文件标签不正确。

sudo touch /.autorelabel
reboot

手动升级

升级至 fc30

sudo systemctl isolate multi-user.target  # 切换至 TUI$ sudo dnf upgrade
sudo dnf clean all
sudo dnf distro-sync --releasever=30 --setopt=deltarpm=false --disablerepo=\* --enablerepo=fedora --enablerepo=updates --nogpgcheck
sudo touch /.autorelabel

建议清理 /var/cache/yum/var/cache/dnf/var/cache/mock/var/lib/mock 等目录。

升级至 Rawhide

sudo dnf upgrade
sudo dnf install dnf-plugins-core fedora-repos-rawhide
sudo dnf config-manager --set-disabled fedora updates updates-testing
sudo dnf config-manager --set-enabled rawhide
sudo dnf clean -q dbcache plugins metadata
sudo dnf distro-sync --releasever=rawhide --setopt=deltarpm=false --nogpgcheck
sudo touch /.autorelabel

参考:

Fedora升级操作,轻易不要升级,如果升级请规范操作 (mamicode.com)

fedora版本如何升级的更多相关文章

  1. Linux(Fedora)下NodeJs升级最新版本(制定版本)

    Linux(Fedora)下NodeJs升级最新版本(制定版本) 首先安装n模块: npm install -g n 升级node.js到最新稳定版 n stable 升级node.js到制定版本 n ...

  2. Fedora 30的升级方法

    Fedora 30 已经发布了.你可能希望将系统升级到最新版本的 Fedora.Fedora 工作站版本有图形化升级的方法.另外,Fedora 也提供了一个命令行方法,用于将 Fedora 29 升级 ...

  3. Nginx1.8.0版本平滑升级新版本1.9.7

    原文:http://www.jb51.net/article/79878.htm 首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径: 复制代码代码如下: [root@local ...

  4. SequoiaDB版本在线升级介绍说明

    1.前言 在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本.并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加 ...

  5. PostgreSQL版本快速升级

    PostgreSQL版本快速升级 写在前面 PostgreSQL9.5版本支持数据分片的功能,为以后做分布式考虑,准备将生产环境的9.1版本升级至9.5.中间需要做数据迁移. 在迁移操作中,为保证数据 ...

  6. c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down

    c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down http://blog.csdn.net/delphizhou/article/details/30 ...

  7. asp.net 版本一键升级,后台直接调用升级脚本

    应客户需求,要求实现一个版本一键升级的功能,咨询过同事之后弄了个demo出来,后台代码如下: //DBConnModelInfo:连接字符串的对象 (包含数据库实例名,数据库名,登陆名,登陆密码) p ...

  8. 将旧版本jQuery升级到新版本的jQuery

    需要将项目中的旧版本jQuery升级到新版本的jQuery,为解决兼容性问题得下载一个js兼容包.例子:升级的项目中jQuery1.x到jquery3.x,需要一个jquery-migrate-3.1 ...

  9. 滴滴HBase大版本滚动升级之旅

    桔妹导读:滴滴HBase团队日前完成了0.98版本 -> 1.4.8版本滚动升级,用户无感知.新版本为我们带来了丰富的新特性,在性能.稳定性与易用性方便也均有很大提升.我们将整个升级过程中面临的 ...

随机推荐

  1. 企业中真实需要的集中管理软件SVN即Subversion版本控制

    一.SVN基本概念 SVN是Subversion的简称,是一个自由开源的版本控制系统. checkout: 把整个项目源码下载到本地 update: 从服务器上更新代码,使本地达到最新版本 commi ...

  2. cookie的简单介绍

    思考: HTTP是一个无状态的协议,当一个客户端向服务端发送请求,在服务器返回响应后,连接就关闭了,在服务器端不保留连接信息. 当客户端发送多次请求且需要相同的请求参数的时候,应该如何处理?这个时候就 ...

  3. 经典c程序100例==51--60

    [程序51] 题目:学习使用按位与 & . 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 2.程序源代码: #include " ...

  4. 对pipe downstream的思考&分析

       回到ngx_http_upstream_send_response,如果是buffering,就会进入后面的处理过程,准备一个ngx_event_pipe_t结构的数据,这个结构可以通过upst ...

  5. Flink Native Kubernetes实战

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 如何开发一个maven插件

    maven是当下最流行的项目管理工具,其丰富的插件为我们的工作带来了很大的便利. 但是在一些情况下,开源的插件并不能完全满足我们的需求,我们需要自己创建插件,本文就从0开始带大家一起创建自己的插件. ...

  7. centos7下做内存盘的方法

    在找这个资料的时候,基本没几个能用的或者过时了的,或者是换了概念,做的不是需要的那种盘,只有少数文章有提到关键部分应该怎么去操作,现在还是自己总结一下 内存盘tmpfs和ramdisk的区别 这个在网 ...

  8. python菜鸟教程学习4:基本数据类型

    变量:python中的变量不需要声明,但在使用前都必须要赋值,变量赋值之后才会被创建 在python中变量是没有类型的,所有的数据类型是对内存中对象的类型. 赋值:使用等号=来给变量赋值 python ...

  9. Collectors工具类

    Collector是专门用来作为Stream的collect方法的参数的:而Collectors是作为生产具体Collector的工具类. Collectors是一个工具类,是JDK预实现Collec ...

  10. 关于C# Span的一些实践

    Span这个东西出来很久了,居然因为5.0又火起来了.   相关知识 在大多数情况下,C#开发时,我们只使用托管内存.而实际上,C#为我们提供了三种类型的内存: 堆栈内存 - 最快速的内存,能够做到极 ...