2023年10月

这篇文章是《Btrfs 详解》系列文章中的一篇。从 Fedora Linux 33 开始,Btrfs 就是 Fedora Workstation 和 Fedora Silverblue 的默认文件系统。

以防你忘记,这是系列文章中的前一篇:Btrfs 详解:基础概念

简介

子卷 Subvolume 允许将一个 Btrfs 文件系统划分成多个独立的子文件系统。这意味着你可以从 Btrfs 文件系统挂载子卷,就好像它们是独立的文件系统。除此之外,例如,你还可以通过 限额组 qgroup (我们将在本系列的另一篇文章里介绍)定义子卷能够占据的最大空间,或者用子卷去包含或排除快照中的文件(我们会后面的文章中会讲到)。自 Fedora Linux 33 后每个 Fedora Workstation 和 Fedora Silverblue 默认安装过程中会利用子卷。在这篇文章中我们会介绍它是如何工作的。

下面你会找到很多关于子卷的例子。如果你想跟着操作,你必须拥有访问某些 Btrfs 文件系统的权限和 root 权限。你可以通过下面命令来验证你的 /home/ 目录是否是 Btrfs 。

$ findmnt -no FSTYPE /home
btrfs

这个命令会输出你 /home/ 目录的文件系统名。如果它是 btrfs,那就可以了。让我们创建一个新的目录去做实验:

$ mkdir ~/btrfs-subvolume-test
$ cd ~/btrfs-subvolume-test

在下面的文本中,你会看到很多像上面显示的那样的命令输出框。请在阅读/比较命令输出时请记住,框中的内容在行末会被换行。这使得识别跨多行的长行变得困难,降低了可读性。如果有疑问,试着调整浏览器窗口的大小,看看文本的变化!

创建和使用子卷

我们可以通过以下命令创建一个 Btrfs 子卷:

$ sudo btrfs subvolume create first
Create subvolume './first'

当我们检查当前目录,我们可以看到现在有一个名为 first 的新目录。注意到下面输出的第一个字符 d

$ ls -l
total 0
drwxr-xr-x. 1 root root 0 Oct 15 18:09 first

我们可以像常规目录一样操作它:我们可以重命名它,移动它,在里面创建新文件和目录,等等。注意到目录属于 root,所以我们必须以 root 身份去做这些事情。

如果它表现和看起来就像个目录,那我们如何知道这是不是一个 Btrfs 子卷呢?我们可以使用 btrfs 工具去列出所有子卷:

$ sudo btrfs subvolume list .
ID 256 gen 30 top level 5 path home
ID 257 gen 30 top level 5 path root
ID 258 gen 25 top level 257 path root/var/lib/machines
ID 259 gen 29 top level 256 path hartan/btrfs-subvolume-test/first

如果你安装的是最新的 Fedora Linux,且未修改过,你很可能会看到和上面一样的输出。我们会在之后检查 homeroot ,还有全部数字的含义。现在,我们看到在我们指定的路径下有一个子卷。我们可以将输出限制在我们当前位置下面的子卷:

$ sudo btrfs subvolume list -o .
ID 259 gen 29 top level 256 path home/hartan/btrfs-subvolume-test/first

让我们重命名子卷:

$ sudo mv first second
$ sudo btrfs subvolume list -o .
ID 259 gen 29 top level 256 path home/hartan/btrfs-subvolume-test/second

我们还可以嵌套子卷:

$ sudo btrfs subvolume create second/third
Create subvolume 'second/third'
$ sudo btrfs subvolume list .
ID 256 gen 34 top level 5 path home
ID 257 gen 37 top level 5 path root
ID 258 gen 25 top level 257 path root/var/lib/machines
ID 259 gen 37 top level 256 path hartan/btrfs-subvolume-test/second
ID 260 gen 37 top level 259 path hartan/btrfs-subvolume-test/second/third

我们也可以移除子卷,就像移除目录一样:

$ sudo rm -r second/third

或者通过特殊的 Btrfs 命令:

$ sudo btrfs subvolume delete second
Delete subvolume (no-commit): '/home/hartan/btrfs-subvolume-test/second'

像单独的文件系统一样操作子卷

前面的简介里说 Btrfs 子卷就好像单独的文件系统。这意味着我们可以挂载子卷并且传递一些挂载选项给它。我们先创建一个小的目录结构去更好的理解发生了什么:

$ mkdir -p a a/1 a/1/b
$ sudo btrfs subvolume create a/2
Create subvolume 'a/2'
$ sudo touch a/1/c a/1/b/d a/2/e

这就是目录结构的样子:

$ tree
.
└── a
    ├── 1
    │   ├── b
    │   │   └── d
    │   └── c
    └── 2
        └── e

4 directories, 3 files

验证现在这里有一个新的 Btrfs 子卷:

$ sudo btrfs subvolume list -o .
ID 261 gen 41 top level 256 path home/hartan/btrfs-subvolume-test/a/2

为了挂载子卷,我们必须知道 Btrfs 子卷所在的块设备路径。下面的命令会告诉我们:

$ findmnt -vno SOURCE /home/
/dev/vda3

现在我们挂载子卷。确保你将参数替换成你 PC 上的:

$ sudo mount -o subvol=home/hartan/btrfs-subvolume-test/a/2 /dev/vda3 a/1/b

观察到我们使用 -o 参数去提供额外的选项去挂载程序。在这里我们告诉它挂载在设备 /dev/vda3 上 btrfs 文件系统里名为 home/hartan/btrfs-subvolume-test/a/2 的子卷。这是 Btrfs 特有的选项,在其他文件系统里没有的。

我们可以看到目录结构变化了:

$ tree
.
└── a
    ├── 1
    │   ├── b
    │   │   └── e
    │   └── c
    └── 2
        └── e

4 directories, 3 files

现在文件 e 出现了两次, d 不见了。我们现在可以用两个不同的路径访问相同的 Btrfs 子卷。在一个路径的所有变化会被立刻反应在其他的位置:

$ sudo touch a/1/b/x
$ ls -lA a/2
total 0
-rw-r--r--. 1 root root 0 Oct 15 18:14 e
-rw-r--r--. 1 root root 0 Oct 15 18:16 x

让我们尝试更多的挂载选项。例如我们可以像这样以只读方式挂载子卷到 a/1/b(插入你 PC 的参数):

$ sudo umount a/1/b
$ sudo mount -o subvol=home/hartan/btrfs-subvolume-test/a/2,ro /dev/vda3 a/1/b

我们和上面使用相同的命令,除了我们加上了 ro 在末尾。现在我们不能在这个挂载点上创建文件:

$ sudo touch a/1/b/y
touch: cannot touch 'a/1/b/y': Read-only file system

但直接访问子卷仍然像之前一样:

$ sudo touch a/2/y
$ tree
.
└── a
    ├── 1
    │   ├── b
    │   │   ├── e
    │   │   ├── x
    │   │   └── y
    │   └── c
    └── 2
        ├── e
        ├── x
        └── y

4 directories, 7 files

在下一步之前不要忘记进行清理:

$ sudo rm -rf a
rm: cannot remove 'a/1/b/e': Read-only file system
rm: cannot remove 'a/1/b/x': Read-only file system
rm: cannot remove 'a/1/b/y': Read-only file system

天啊,发生了什么?噢,因为我们在上面挂载只读子卷,所以不能删除它。从文件系统的角度来看,删除是一种写入操作:为了删除 a/2/b/e,我们从父目录 a/1/b 的内容中删除目录项 e。换句话来说,我们必须 写入 a/1/b 去表明 e 不复存在。所以我们先卸载子卷,然后移除目录:

$ sudo umount a/1/b
$ sudo rm -rf a
$ tree
.

0 directories, 0 files

子卷 ID

还记得 btrfs subvolume list 命令的第一次输出吗?那包含了很多数字,让我们看看这些究竟什么。我在这里复制了输出,以便再次查看:

ID 256 gen 30 top level 5 path home
ID 257 gen 30 top level 5 path root
ID 258 gen 25 top level 257 path root/var/lib/machines
ID 259 gen 29 top level 256 path hartan/btrfs-subvolume-test/first

我们看到有三列数字,每个前面有一些字母来描述它们的作用。第一列是子卷 ID 。子卷 ID 在 Btrfs 文件系统是唯一的,而且唯一地标识子卷。这意味着名为 home 的子卷也可以用它的 ID 256 来引用。之前的挂载命令是这样写的:

$ sudo mount -o subvol=hartan/...

另外一个完全合法的选择是使用子卷 ID :

$ sudo mount -o subvolid=...

子卷 ID 从 256 开始,每创建一个子卷依次递增 1 。但是在这里有一个例外:文件系统的根的子卷名称总是为 /,并且子卷 ID 是 5 。没错,即使文件系统的根技术上也是一个子卷。这是不言而喻的,因此不会出现在 btrfs subvolume 的输出列表里。如果你没有用 subvolsubvolid 参数去挂载一个 Btrfs 文件系统,subvolid=5 的顶级子卷就是默认的挂载对象。下面我们会看到一个想要显式挂载文件系统根的例子。

第二列的数字是生成号,并且在每次 Btrfs 事务中递增。这几乎是一个内部的计数器,我们不会在这里讨论。

最后,第三列数字是 子卷的子卷 ID。在上面的输出我们可以看到子卷 homeroot 的父子卷 ID 都是 5。记住 ID 5 的特殊含义:这是文件系统的根。所以我们知道 homeroot 都是顶级子卷的子卷。另一方面 hartan/btrfs-subvolume-test.first 是子卷 ID 256(也就是 home)的子卷。

在下一节我们会看看子卷 roothome 是怎么来的。

检查 Fedora Linux 的默认子卷

当你从头创建一个新的 Btrfs 文件系统,里面是没有子卷的(当然,除了顶级子卷)。所以 Fedora Linux 里的 homeroot 子卷是哪里来的?

它们是安装程序在安装时创建的。传统的安装经常会为 //home 目录包含单独的文件系统分区。在启动时,它们通过恰当的挂载组成一个完整的文件系统。但这个方法有一个问题:除非你使用像 lvm 这样的技术,想在将来改变分区的大小是非常难的。因而你可能出现 //home 用完空间的情况,然而还有很多其他没被使用的分区和空间剩余。

因为 Btrfs 子卷全都是相同文件系统的一部分,它们共享底层文件系统提供的空间。还记得我们在上面创建的子卷吗?我们从未告诉 Btrfs 它们多大:一个子卷可以占据文件系统拥有的全部空间,默认是不会阻止这种行为的。但是,我们 可以 通过 Btrfs 的 限额组 qgroup 动态地约束其大小,同时也可以在运行时修改(我们将在后续的文章中了解如何做的)。

另外一个分离 //home 的优势是我们可以分别进行 快照 。子卷是快照的边界,对一个子卷的快照永远不会包含该子卷下面的其他子卷的内容。快照的更多细节会在后续的文章中介绍。

理论已经足够了!我们来看看这是怎么回事。首先确保你的根文件系统类型是 Btrfs :

$ findmnt -no FSTYPE /
btrfs

然后我们获取它所在的分区:

$ findmnt -vno SOURCE /
/dev/vda3

记住我们可以通过特殊的子卷 ID 5 挂载文件系统的根(适应文件系统分区!):

$ mkdir fedora-rootsubvol
$ sudo mount -o subvolid=5 /dev/vda3 ./fedora-rootsubvol
$ ls fedora-rootsubvol/
home  root

而且还有 Fedora Linux 安装的子卷!但 Fedora Linux 是如何知道子卷 root 属于 / ,而 home 属于 /home 的呢?

文件 /etc/fstab 包含了所谓的文件系统的静态信息。简而言之,在你系统启动的时候会一行一行地读取这个文件,然后挂载那里列出的所有文件系统。在我的系统上,这个文件长这样:

$ cat /etc/fstab
# [ ... ]
# /etc/fstab
# Created by anaconda on Sat Oct 15 12:01:57 2022
# [ ... ]
#
UUID=5e4e42bb-4f2f-4f0e-895f-d1a46ea47807 /                       btrfs   subvol=root,compress=zstd:1 0 0
UUID=e3a798a8-b8f2-40ca-9da7-5e292a6412aa /boot                   ext4    defaults        1 2
UUID=5e4e42bb-4f2f-4f0e-895f-d1a46ea47807 /home                   btrfs   subvol=home,compress=zstd:1 0 0

(注意上面的 “UUID” 开头行的内容被换行成两行)

每行开头的 UUID 用于标识你系统上的硬盘和文件系统分区(大概相当于我在上面使用的 /dev/vda3 )。第二列是文件系统应该挂载在文件系统树上的路径。第三列是文件系统类型。我们可以看到 //home 都是 btrfs 类型,正如我们期望的那样!最后,第四列是:这些是挂载选项,这里说通过 subvol=root 选项去挂载 / 。这正是我们一直在 btrfs subvolume list / 里看到的输出!

有了这些信息,我们可以重新构建创建这个文件系统项的 mount 命令

$ sudo mount -o subvol=root,compress=zstd:1 UUID=5e4e42bb-4f2f-4f0e-895f-d1a46ea47807 /

(再次,上面的 “UUID” 开头行的内容被换行成两行)

这就是 Fedora Linux 如何使用 Btrfs 子卷!如果你对好奇 Fedora Linux 为什么选择 Btrfs 作为默认的文件系统,请参阅下面链接的更改提议 [1]

Btrfs 子卷的更多内容

Btrfs 维基提供了关于子卷的更多信息,其中最重要的是可应用于 Btrfs 子卷的挂载选项。有些选项,比如 compress 只能应用到文件系统的层面,因而会影响一个 Btrfs 文件系统的所有子卷。你可以通过下面的链接找到entry [2]

如果你对哪些目录是普通目录和哪些是子卷有困惑,你可以对你的子卷采用特殊的命名约定。例如,你可以给子卷名加上 @ 前缀去方便区分。

现在你知道子卷表现得就像文件系统,有人可能会问如何才能最好地将子卷放置在特定位置。比如你想要一个 Btrfs 子卷在 ~/games 下面,然而你的主目录(~)本身就是一个子卷,你该如何实现呢?鉴于上面的例子,你可以使用像 sudo btrfs subvolume create ~/games 的命令。这样,你创建了所谓的 嵌套 子卷:在你的子卷 ~ 里,有一个子卷 games 。这正是一种达成目的的方法。

其他有效的方法就是如同 Fedora 默认行为那样:在根子卷下创建所有子卷(也就是它们的父子卷 ID 是 5 ),然后挂载它们到特定的位置。Btrfs 维基有这些方法的概述和对于各自文件系统管理影响的简短讨论 [3]

总结

在本文中,我们探索了 Btrfs 子卷,它们像是 Btrfs 文件系统内部的独立的 Btrfs 文件系统。我们学习了如何创建、挂载和删除子卷。最后,我们探讨了 Fedora Linux 如何在我们完全没有注意到的情况下使用子卷。

本系列的下一篇文章将讨论:

  • 快照 - 回到过去
  • 压缩 - 透明地节省存储空间
  • 配额组 - 限制文件系统大小
  • RAID - 替代 mdadm 配置

如果你还想了解与 Btrfs 相关的其他主题,请查看 Btrfs 维基 [4] 和文档 [5] 。不要忘记查看本系列的第一篇文章(如果你还没有看过的话)!如果你认为本系列文章缺少了一些内容,请在下面的评论中告诉我们。再会!

参考资料

  1. https://fedoraproject.org/wiki/Changes/BtrfsByDefault#Benefit_to_Fedora ↩︎
  2. https://btrfs.readthedocs.io/en/latest/Subvolumes.html ↩︎
  3. https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Layout ↩︎
  4. https://btrfs.wiki.kernel.org/index.php/Main_Page ↩︎
  5. https://btrfs.readthedocs.io/en/latest/Introduction.html ↩︎

(题图:MJ/f047ea87-2490-40e5-9f91-d48d236675e5)


via: https://fedoramagazine.org/working-with-btrfs-subvolumes/

作者:Andreas Hartmann 选题:lujun9972 译者:A2ureStone 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Firefox 正在不断取得进展,让我们一起看看最新的变化吧!

Mozilla Firefox 是一款极棒的开源多平台浏览器,一直以来都以提供最佳的隐私保护功能而广受好评。

更值得一提的是,它成为了大多数 Linux 发行版的默认浏览器,使得它成为了 Linux 用户的自然之选。

Firefox 当前的状况

尽管 Firefox 一直以隐私优先的策略,并且是 谷歌 Chrome 的最佳开源替代品 之一,它仍然被大众所冷落。

这听起来令人失望,不是吗?

的确是的,就以市场份额来说,谷歌 Chrome 占据了 63.56%,而 Firefox 用户仅占据了 2.94% —— 这是来自 StatCounter 的统计数据。

为什么会这样?

详细来说,你可以回顾一下 Firefox 在 2021 年几乎损失了 5000 万用户

简而言之:Mozilla Firefox 已经尽其所能,但似乎仍然不足以吸引公众的注意

Firefox 的用户体验在不断改善

幸运的是,在过去的两年中,Mozilla Firefox 似乎专注于一步步提升用户体验,并比平常更多地向公众展示自己。

例如,他们正在为 Firefox 117 提供 自动翻译功能支持

总的来说,最近的更新已经简化了用户界面,并为 我为什么总是会回到 Firefox 提供了更多理由。

当然,Firefox 已经提供了 Firefox Relay保护你电子邮箱的工具 之一)等隐私特性。但是,并非每个用户都在乎那些改善了安全性的底层优化。

许多用户希望能够通过网页浏览器无缝的使用他们喜爱的网络服务。这无疑是用户体验的核心部分。

Mozilla Firefox 就是一款能提供这一体验的强大且安全的浏览器。

如果浏览器能满足网民使用他们最喜欢或是主流服务的体验需求,那么 Firefox 就能保留旗下用户,甚至吸引更多新用户。

谷歌的网络服务在 Firefox 上运行得比以前更好了

好消息是:Mozilla 正在全力以赴做出改变!

在最近的 博客文章 中,他们宣布,谷歌 Meet 以及其他谷歌服务如 Workspace、Voice、YouTube、Keep、地图、翻译以及相册 在 Firefox 上运行得比以往任何时候都要好。

他们为此与谷歌的 Workspace 团队一直保持着紧密的合作,他们这样写道:

如果你正在考虑切换,但担心兼容性问题,你可以放心 —— 谷歌的服务在 Firefox 上工作得相当出色,我们也在不断的努力满足你的日新月异的需求。

他们还分享了谷歌 Meet 在 Firefox 上改善后的一些使用体验截图。现在,只需使用 Firefox 115 和更高版本,你就可以在加入视频通话前后应用视效(或背景)。

许多网络用户都一直在使用谷歌的服务,如果他们在 Firefox 上的用户体验也很棒,那么 Firefox 就可能成为一个适合他们替代 Chrome 的选择。

所以,谷歌的网络服务在 Firefox 上的体验得到了改进?

这又是一个使用 Firefox 的理由。

我认为,Mozilla 为了与谷歌 Chrome 及其他竞方保持竞争力,并增强用户对流行网络服务的网络体验,这么做是明智之举。

? 你现在正在使用 Firefox 吗?在读了这篇文章后,你决定再试一次吗?在下方留言分享你的想法吧!

(题图:MJ/7427a77e-ed67-4ac4-bc8a-bb9794c34adc)


via: https://news.itsfoss.com/mozilla-firefox-progress/

作者:Ankush Das 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

谷歌高管曾称其搜索广告利润“堪比非法企业”

在对谷歌搜索反垄断审判中披露的一份文件显示,谷歌财务副总裁 Michael Roszak 在 “为一门关于沟通的课程” 的会议记录中写道,谷歌的搜索广告 “是有史以来世界上最伟大的商业模式之一”,其经济效益只有某些销售 “香烟或毒品” 的 “非法企业” 才能与之匹敌。此外,这份会议记录中还写道,由于用户迷上了谷歌的搜索引擎,谷歌能够 “在很大程度上忽略需求方” 的 “基本经济规律”,“只关注广告商、广告形式和销售等供应方”。Roszak 否认该会议记录反映出他的真实想法,“因为这与商业目的无关”。他称,该课程要求他把 “我不相信的东西作为演讲的一部分” 告诉学生。谷歌多次反对公开该笔记,而在公开后,谷歌又试图封锁 Roszak 就该文件的证词。

消息来源:Ars Technica
老王点评:瞎说什么大实话,有的企业早就这么做了。

数以百万计的 “数字游民” 正在周游世界

据为公司与自由职业人才牵线搭桥的 MBO Partners 公司称,“近 1700 万美国员工自称是‘数字游民’,比大流行病前的数字翻了一番还多”。在大流行病期间突然转向远程工作,让许多人长期以来的空想变成了可能。在多年的限制之后,被压抑的国际旅行需求激增,工作休闲旅行时间延长的趋势也随之加快。数十个国家正在向这些专业人士推销一种新的签证类别。在亚洲旅行的“数字游民”中,大约有 15% 的人严格遵守美国的工作时间,熬夜工作;另外大约三分之一的人工作时间比较灵活,可以在晚上或清晨工作。

而另外一则 报道 称,旧金山的一些空置办公室准备转变为住房,这些写字楼达到了 33.9% 的历史空置率,空置面积超过 3000 万平方英尺。

消息来源:雅虎
老王点评:令人称羡的工作和自由。

研究人员让人工智能帮助反证 P=NP 问题

一个来自国内的研究团队发表了一篇预印本论文,介绍了他们利用 OpenAI 的 GPT-4 来帮助反证 P=NP 问题不成立。该团队的方法相当于从之前的论文中提取论点,然后灌输给 GPT-4,以促使其做出有用的反应。他们通过 97 轮提示,让 GPT-4 扮演“一位睿智的哲学家”、“一位精通概率论的数学家”,诱导 GPT-4 证明 P 事实上不等于 NP。他们观察到,GPT-4 演示了一些论据,从而得出 P 事实上不等于 NP 的结论。他们认为,这项工作表明大型语言模型不仅能吐回大量文本,还能 “发现新的见解”,从而带来 “科学发现”,他们将这一前景命名为 “科学的 LLM”。

消息来源:ZDNet
老王点评:虽然我觉得人工智能可能能够发现人类所忽视的知识,但是能从这些地方找到证明 P=NP 问题的思路已经超过了我的想象。

对于热爱动手实践的你来说,树莓派 5 已经落地,为你绚烂的想法提供热情的舞台!

单板计算机(SBC)领域因树莓派新产品的推出再次活跃起来。

这款被称为 树莓派 5 的新产品,是其非常受欢迎的前身树莓派 4(于 2019 年推出)的进化版。

下面,我们来探讨它的新鲜亮点,以及何时何地可以将其买到手。

? 树莓派 5 的新变化是什么?

树莓派 5 是一款足以称得上强大的后继产品,其全新设计的平台搭载了在英国开发的自行设计的芯片

与树莓派 4 比较,树莓派 5 的性能提升了一倍以上 ,这主要得益于硬件和软件的改进。他们还补充说:

与树莓派 4 相较,我们的 CPU 和 GPU 性能提高了两到三倍,在内存和 I/O 带宽方面也有大约两倍的增长;而且这是我们首次在旗舰树莓派设备上使用了自家的树莓派芯片。

尽管外形并无明显改变,树莓派 5 仍然保留了信用卡大小的尺寸。变化主要体现在端口的位置上。

为了配合这款 SBC 的发布,树莓派团队积极开发了适合的新版本树莓派操作系统。它基于 Debian 12 “Bookworm” 版本,所以你可以期待有很多改进。

这个更新的操作系统预计将在 2023 年 10 月中旬 发布,将过渡到 Wayfire Wayland 合成器系统,摒弃了 X11

? 树莓派 5 的关键参数

那么,你可能对树莓派 5 的硬件配置感到好奇。

首先,树莓派 5 是由 Broadcom 的一款新型 16 纳米应用处理器 BCM2712 驱动的。

它使用了一颗 四核 64 位 Arm Cortex-A76 处理器,在标准运行状态下的频率为 2.4 GHz,拥有 每核 512 KB 的 L2 缓存 和一个 2 MB 的共享 L3 缓存

这一切都融入了一款新的 GPU 中,那就是 Broadcom 的 VideoCore VII。它配备了完全开源的 Mesa 驱动程序

还有新的 RP1 I/O 控制器,它负责操作各种 I/O 端口,如 USB 2.0/3.0千兆以太网MIPI 收发器常见的 GPIO 端口

项目 RP1 自 2016 年启动以来,已经投资了 1500 万美元。 ?

最后,我们看到了新的 DA9091 电源管理 IC,出自 Renesas,它负责处理主板上的电源分配,带有 8 个单独的开关模式电源供应器,以生成树莓派 5 所需的不同电压。

此外,以下是其他一些值得一提的要点:

  • 独立电源按钮
  • 双频 802.11ac Wi-Fi
  • 可选 4 GB / 8 GB 内存版本
  • 2x 4Kp60 HDMI 显示输出
  • 2x 4-通道 MIPI 摄像头 / 显示器收发器
  • 蓝牙 5.0 / 低功耗蓝牙(BLE)

树莓派 5 看上去是一款能助你创建出比当前的 树莓派项目 更棒的新项目的设备。

树莓派 5 配件 ?

树莓派 5 官方配件外壳

一如既往,树莓派 5 与各种官方配件一同发布。

以带有集成风扇的外壳为例,设计精良,适用于低噪声和长期使用。

还有一种叫做 主动冷却器 的冷却配件,它配有一个铝质热散片和可以安装在主板上的风扇。

由于峰值功率需求的增加,他们也提供了一款 27 W 的 USB-C 电源适配器,以便动手玩家们可以最大限度地使用他们的树莓派 5。

我在这里没有提到的还有一些额外的 树莓派配件,如显示线缆、m.2 连接帽等等。我相信在不久的将来会看到更多的配件。

我强烈建议你浏览官方的 公告博客 ,进一步了解这款有趣的单板计算机的详细信息。

? 价格和供应信息

树莓派 5 提供两款版本 ,价格从4 GB 版本的 60 美元 开始,8 GB 版本为 80 美元

目前已经在一些 认证的经销商 开始接受预订,预计将在十月末出货。

树莓派 5(认证的经销商)

他们被限制只能销售给个人购买者,这个限制将持续到今年(2023 年)结束,以避免任何供应链方面的问题。

(题图:MJ/12b9c1e0-414e-42f8-a61b-466dad831eef)


via: https://news.itsfoss.com/raspberry-pi-5/

作者:Sourav Rudra 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

尝试添加一个 PPA,却在 Ubuntu 中收到 “无法添加 PPA: 此 PPA 不支持 xyz” 的错误?下面是解决这一错误的方法。

这是一个场景。你正在尝试使用 PPA 在 Ubuntu 中安装软件。

你使用 sudo add-apt-repository 添加 PPA 仓库,当它更新包缓存时,会出现错误:

Cannot add PPA: "This PPA does not support xyz

其中 “xyz” 是 你正在使用的 Ubuntu 版本的代号

? 这就是发生这种情况的原因以及你可以采取的措施:

  • PPA 不适用于你正在使用的 Ubuntu 版本
  • 你应该寻找其他来源来安装该应用
  • 如果绝望了,你可以从 PPA 网页下载 .deb 文件

我将详细讨论以上所有内容。

检查 PPA 是否适用于你的 Ubuntu 版本

首先,在终端中使用以下命令获取 Ubuntu 版本和代号的详细信息:

lsb_release -a

输出将包含详细信息:

Here, I am using Ubuntu version 23.04 that case codename lunar

现在,访问托管所有 PPA 的 Ubuntu 的 Launchpad 网站:

进入 Launchpad PPA

在这里,查找困扰你的 PPA。为此,你必须使用 PPA 维护者的名字。

例如,如果 ppa:jstaf/onedriver 造成问题,请搜索维护者 jstaf

Enter the PPA's maintainer name and search for it

一名维护者可能拥有多个软件仓库。单击你要安装的那个。

在里,你应该在 “ 发布于 Published in ” 旁边的下拉按钮选择 “ 所有系列 Any Series ”。

Click on Any series dropdown button to see the supported Ubuntu versions

检查你是否看到你正在使用的 Ubuntu 版本的代号。如果不存在,那么此 PPA 不适用于你的 Ubuntu 版本。

如果 PPA 不支持你的 Ubuntu 版本,你该怎么办

你会看到,开发人员(或维护人员)创建一个仓库并使该软件可用于他们正在使用的 Ubuntu 版本。

随着时间的推移,Ubuntu 发布了更新的版本。现在,一位活跃的维护者将发布新 Ubuntu 版本的软件。但情况并非总是如此。如果维护者不再活跃,那么将不会更新。像你这样尝试遵循教程说明的人将会看到此错误。

现在,你有两个选择:

选项 1:在其他地方寻找该软件

这里有几种可能性。

新版 Ubuntu 可能也可以通过其他 PPA 获得相同的软件。请在 Launchpad 网站或互联网上查找。

这是怎么发生的?许多原始软件开发人员只是发布源代码,因此一些志愿者创建 Debian 软件包并从 Launchpad 分发它,以便像你这样的 Ubuntu 用户可以轻松安装该软件。不止一名志愿者可以为同一软件创建自己的个人包存档(PPA)。你应该使用活跃的一个。

例如,如果我查找 onedriver 包,我可以看到它可能在另一个名为 Ubuntu deployment 的 PPA 中可用。

另一个方式是查看该包是否以其他格式提供,例如 Snap、Flatpak、AppImage。

在极少数情况下,该软件可能已经在 Ubuntu 仓库中可用。

为此,你必须是一个聪明的用户并在互联网上进行搜索。如果你找到其他包格式,那就太好了。否则,下一步就是绝望。

选项 2:从 PPA 下载 deb 文件

PPA 仓库为你提供 Debian 软件包。添加仓库后,你还可以直接通过系统更新获得更新(如果有)。

如果你的 Ubuntu 版本的 PPA 没有更新,并且你在其他地方找不到该软件,你可以尝试从 PPA Launchpad 页面下载 deb 软件包。

在包详细信息页面上,单击展开符号并查找 deb 文件。除非你使用类似树莓派的主板,否则你应该选择 amd64。

Download deb package from PPA

? 如果软件太旧,下载的 deb 包可能会因为依赖问题而无法安装成功。此外,你将不会获得已安装软件包的更新(如果已安装)。不过,这个方法还是值得一试。

结论

尽管 Canonical 在大力推动 Snap 打包,PPA 仍然是用户在 Ubuntu 中安装第三方应用的最爱。

但 PPA 也有其自身的麻烦,而不能添加 PPA 错误就是其中之一。同样的问题还会导致 “仓库没有发布文件” 错误。

我希望现在这个问题更加清楚了。如果你仍有疑问,请告诉我。

(题图:MJ/d1013502-d518-4bc8-896c-d8dddd15ae22)


via: https://itsfoss.com/cannot-add-ppa-error/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

GNU 庆祝成立 40 周年,RMS 患癌

本周三,自由软件基金会发布公告,将于 10 月 1 日庆祝 “GNU 操作系统诞生 40 周年暨自由软件运动启动 40 周年”,称其为 “计算机历史上的一个转折点”。1983 年 9 月 27 日,一位名叫 理查德·斯托尔曼 Richard Stallman (RMS)的计算机科学家宣布,计划开发一种类似 Unix 的自由软件操作系统,名为 GNU,意为 “GNU's not Unix”。GNU 是唯一一个专门为用户自由而开发的操作系统。在当天召开的 GNU 黑客会议上,RMS 一改以往的浓密的头发和胡子的形象出席,并发表了演讲。他还顺便 透露,他已经患癌,并已在接受化疗(因而没有了头发)。不过,庆幸的是,他表示,病情是可以控制的,他仍能活很多年。

消息来源:FSF
老王点评:伟大的 GNU,伟大的 RMS,祝愿 RMS 早日康复!

微软解释在云中提供 Python in Excel 的原因

之前,我们 报道 过,微软发布了 Python in Excel 的公开预览版,无需任何设置就可以在同一工作簿中结合 Python 和 Excel 分析。有用户表示,表示希望能够在其他环境中运行 Python,而不是被锁定的、价格待定的 Azure 云容器。微软解释了这样做的原因:1、在本地机器上安全运行 Python 是一个难题。我们将工作簿中的所有 Python 代码都视为不可信任的,因此我们在 Azure 上的一个与管理程序隔离的容器中执行这些代码;2、我们希望确保您共享的工作簿中的 Python 代码在您的同事打开它时表现相同,而不需要他们安装和管理 Python。3、通过在 Azure 上运行,用户或其系统管理员无需在其组织中使用该功能的每台机器上维护 Python 的本地安装。

消息来源:Reddit
老王点评:似乎有道理,但是在本地有一个沙盒化的 Python 环境有多难?

Canonical 的 Snap 商店暂停上传

一些 Snap 用户报告了最近发布的几个可能是恶意的 Snap 软件包。接到这些报告后,Snap 商店团队立即下架了这些软件包。此外,该团队还对所有新的 Snap 注册提出了临时人工审核要求。这不是 Snap 商店第一次遇到恶意软件包,之前就有带有未披露的隐藏的加密挖掘功能的软件包被上传。

消息来源:Snap Craft
老王点评:似乎这种审核机制不够啊,原来是事后审核吗?