The good

  1. DeltaRPM 是个好东西,可以节省更新的流量和本地cache的package空间

    Fedora Linux has supported binary delta updates by default using the  yum presto plugin since June 2009. This is based on  RPM Package Manager’s deltarpm system (2004), which was in turn based on bsdiff.[[1]](https://en.wikipedia.org/wiki/Delta_update#cite_note-1

    https://en.wikipedia.org/wiki/Delta_update

    然而Arch做了与这个相反的操作,把pacman的 delta功能移除了。see Why delta support removed from pacman?

    Because no one really used it pretty much ever.To an extent, yes. But the official repo maintainers decided it was not worth the effort, so they didn’t do it.I’ve got to say - if you’re living in a developing country with shitty internet, Arch might not be the best option for you anyway.

    啥?发展中国家?哈哈,中招了。不过我们现在的网络,跑个Arch更新完全没问题了。 ps: 关于不使用 delta 更新的问题,我觉得 Arch 是对的。引入 delta 同时会引入其它问题,比如patch的时候会需要更多cpu算力,生成 delta 包时也需要更多的算力。

    Overcomplicating pacman and package mirrors for minor bandwith gain kinda defeats the KISS principle of arch

  2. 软件包很新,可能没有ArchLinux新,但是肯定比Ubuntu/Debian这种喜欢用一些古董包的发行版要新(作为一个ArchLinux用户而方,by the way, 请原文我说Ubuntu/Debian用古董包)。

  3. 稳定的发布周期: 每六个月定期发布

  4. 官方博客,时不时会发一些有意思的教程。

  5. 背后有Redhat的支持

  6. 相比于Ubuntu完全受* Canonical的控制, Fedora是一个 完完全全的社区支持的系统*

  7. 自带大型的软件包仓库,包数量众多(不像Ubuntu,全靠ppa撑场子)

  8. 得益于rpm包的流行程度,基本上大部分厂家或Github项目(如果有提供包),都会直接提供rpm包供用户下载

  9. 官方同时提供Workstation/Server/IoT版的iso安装镜像,同时还有Fedora CoreOS和Fedora Silverblue

  10. 多DE支持,官方除了支持GNOME3(默认选项),还有可以在 Fedora Spins 下载到KDE,XFCE , LXQt, MATE Compiz, LXDE 和 Sugar on a stick (SOAS) 版。

  11. 自带SeLinux支持且默认开启,安全性没得说

  12. 对红帽系的很多东西天生支持就很好,比如FirewallD, Kvm-qemu, Cockpit

  13. 开发活跃,引领潮流。比如Fedora最先引入systemd的,后面又率先启用了EarlyOOM功能,默认启用fstrim.timer,用Geary替换了很多发行版中万年不变的Evolution邮件客户端,firewalld默认使用nftables后端, 让Python 2 彻底退休,用更安全的lchsh 代替了chsh, 默认启用 CGroup v2。rpm package压缩算法从xz level 2切换到zstd compression level 19了(从f31起)。当很多发行版还在用ext4时,f33已经将家用版的默认文件系统改成了btrfs。 f34据说要默认开启btrfs的zstd透明压缩功能

  14. 每一次新的版本发布之前,你都可以从官方wiki的 Change Set 看到完整的变更记录以及为什么要这样做的理由。相比于某些发行版一声不响就把东西改了,Fedora这种操作显得非常专业和规范。比如f34准备抛弃PulseAudio and JACK并切换到 PipeWire

  15. 基于图片界面的 Anaconda System installer 使用起来非常方便,尤其是磁盘分区功能非常好用。Anaconda 安装完后系统后会自动生成 kickstart 脚本,方便二次安装或批量自动化安装。

  16. 官方明确支持 Do What The Fuck You Want To Public License (WTFPL)

  17. Fedora 上的 GNOME Software 是原版的, 如果有需要,你可以自行添加添加flatpak源。(不会像 Ubuntu 一样用 Canonical 自家的软件中心强制用户只能安装snap app)

The bad

  1. 社区论坛需要使用Fedora官方的Fedora Account System (FAS) account进行登录。作为一个习惯了使用Github/Gitlab或Google账号一键登录的人,直接导致了我点击了浏览器的x按钮关闭页面,因为我不想浪费太多时间在注册账号这种事情上。

    比如有个人问如何在Fedora上使用百度网盘(因为Fedora和Arch的openssl包都很新,百度那破玩意一跑就崩),我很想帮助他,因为我研究之后,成功地正常运行了。但是当我点击登录的时候,我被重定向到了Fedora Account System (FAS) account,没有使用其它社交账号登录的按钮。这其实也很正常,因为Fedora一直坚持FOSS的理念。使用一个商业公司的账号体系来登录,有违FOSS精神。

  2. Fedora非常提倡FOSS,版权策略简直应用到了变态的地步。比如官方仓库里的p7zip包,因为p7zip官方源码里包含了未经授权的rar相关代码,Fedora直接 用patch将rar相关代码全部移除了。

    Fedora package note: non-Free unrar code have been removed from the sources (#190277)

    7z的作者Igor Pavlov也针对这个回复了一些有疑问的人。 Igor Pavlov (  sourceforge.net/p/sevenzip/discussion/45798/thread/dc2d0438/#8f9f ):

    fedora/centos have removed 7-zip’s unrar code as non-free code. Maybe you can use p7zip compiled for another linux systems with 7-zip’s unrar plugin: p7zip-full and p7zip-rar

    RAR code is divided into two parts in p7zip:

    1. free part of unrar (in p7zip-full)
    2. non-free part of unrar (p7zip-rar)

    But fedora have removed both parts of unrar code.

    等于是别人家的7z命令都能解压rar,你Fedora家的不能。为此老灯专门写了一个 rpm spec用于构建完整功能版的p7zip

  3. 不是开箱即用,对新手极略不友好:比如最基本的需求,安装Nvidia或AMD显卡驱动,或者Intel GPU vaapi 支持驱动,你得从一个叫 rpmfusion的第三方仓库安装。

    RPM Fusion项目是社区维护的软件存储库,提供了由于法律原因无法在Fedora中分发的其他软件包。 软件专利适用于RPM Fusion中的某些软件包,因此,在某些国家/地区安装这些软件包可能不合法:例如,在美国或日本。

    RPM Fusion还提供用于Red Hat Enterprise Linux的软件包

    https://docs.fedoraproject.org/en-US/quick-docs/setup_rpmfusion/#con_the-purpose-of-rpm-fusion_enabling-the-rpmfusion-repositories

  4. 有些常见的包名没有采用通用名字,比如nodejs包管理工具yarn, 在Fedora里叫 yarnpkg

  5. Fedora的文档不是很多(尽管如此,它的文档依旧比Ubuntu的要好),虽然RHEL 的文档非常全面,但是基本上那些是跟Server相关的。一旦你要查找桌面环境相关的问题,你会发现Fedora的文档少得可怜。文档这方面ArchLinux可能是做得最好的(没有之一)。

refs

https://fedoramagazine.org/

Remove support for deltas from libalpm

https://www.reddit.com/r/archlinux/comments/b7zkg5/why_delta_support_removed_from_pacman/

https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Development_Schedule

https://en.wikipedia.org/wiki/List_of_Linux_distributions#Fedora-based

https://spins.fedoraproject.org/

https://ttys3.dev/post/linux/fedora/fedora31-upgrade-to-fedora32/

https://ttys3.dev/post/linux/fedora/fedora32-upgrade-to-fedora33/

https://fedoraproject.org/wiki/Changes/Switch_RPMs_to_zstd_compression

https://fedoraproject.org/wiki/Changes/BtrfsByDefault

https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression

https://fedoraproject.org/wiki/Changes

https://docs.fedoraproject.org/en-US/quick-docs/setup_rpmfusion/

https://codeghar.wordpress.com/2012/09/26/fedora-the-good-the-bad-and-the-ugly/ (很古老的文章,有一定的参考意义,但是其中很多问题已经不存在了)

https://en.wikipedia.org/wiki/Anaconda_(installer)

https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses

https://fedoraproject.org/wiki/Licensing:FAQ

https://fedoraproject.org/wiki/Third_party_repositories