2022年9月

Colima 是 macOS 和 Linux 上的 Docker Desktop 替代品,它现在由 DDEV 支持。

DDEV 是一个开源工具,可以在几分钟内轻松启动和运行本地 PHP 开发环境。由于其每个项目的环境配置可以扩展、版本控制和共享,所以它很强大和灵活。简而言之,DDEV 旨在允许开发团队在其工作流程中使用容器,而无需复杂的定制配置。

DDEV 用灵活、现代、基于容器的解决方案取代了更传统的 AMP 栈解决方案(WAMP、MAMP、XAMPP 等)。因为它使用容器,DDEV 允许每个项目使用任何一组应用、Web 服务器版本、数据库服务器、搜索索引服务器和其他类型的软件。

2022 年 3 月,DDEV 团队 宣布支持 Colima,这是 macOS 和 Linux 上的开源 Docker Desktop 替代品。Colima 是开源的,据所有报告显示,它比其替代方案有所 性能提升,所以使用 Colima 似乎是一个没有问题的选择。

迁移到 Colima

首先,Colima 几乎是 Docker Desktop 的替代品。我说几乎是因为在将它用于现有的 DDEV 项目时需要重新配置。具体来说,必须重新导入数据库。解决方法是先导出数据库,然后启动 Colima,然后再导入。很简单。

Colima 要求安装 Docker 或 Podman 命令。在 Linux 上,它还需要 Lima。

Docker 默认随 Docker Desktop for macOS 一起安装,但它也可以作为独立命令使用。如果你想要 100% 纯 Colima,你可以卸载 Docker Desktop for macOS,并独立安装和配置 Docker 客户端。完整的安装说明可以在 DDEV 文档站点上找到

容器技术栈图片

容器技术栈图片 图片来源:(Mike Anello,CC BY-SA 4.0)

如果你选择继续使用 Colima 和 Docker Desktop,那么在命令行执行 docker 命令时,你必须首先指定要使用的容器。下一节将对此进行更多介绍。

在 macOS 上安装 Colima

我目前有一些本地项目使用 Docker,还有一些使用 Colima。当我了解了基础知识,在它们之间切换就不难了。

  1. 使用 Homebrew brew install colima 安装 Colima
  2. ddev poweroff(为了安全起见)
  3. 接下来,使用 colima start --cpu 4 --memory 4 启动 Colima,--cpu--memory 选项只需执行一次。第一次之后,只需要 colima start
  4. 如果你像我一样是 DDEV 用户,那么你可以使用常用的 ddev 命令(ddev configddev start 等)启动一个全新的 Drupal 9 站点。建议启用 DDEV 的 mutagen 功能以最大化性能

在 Colima 和 Docker Desktop 之间切换

如果你还没有准备好使用 Colima,你可以同时安装 Colima 和 Docker Desktop。

  1. 首先关闭 ddev:ddev poweroff
  2. 然后停止Colima:colima stop
  3. 现在运行 docker context use default 告诉 Docker 客户端你要使用哪个容器。默认名称是 Docker Desktop for Mac。当 colima start 运行时,它会自动将 Docker 切换到 colima 上下文
  4. 要继续使用默认(Docker Desktop)上下文,请使用 ddev start 命令。

从技术上讲,启动和停止 Colima 不是必需的,但是在两个上下文之间切换时的 ddev poweroff 命令是必要的。

Colima 停止时,最新版本的 Colima 会将 Docker 上下文恢复为 default,因此不再需要 docker context use default 命令。无论如何,我仍然使用 docker context show 来验证 default(Docker Desktop for Mac)或 colima 上下文是否正在使用。基本上,术语 context 指的是 Docker 客户端将命令发送到哪个容器提供者。

尝试 Colima

总的来说,我喜欢我目前所看到的。我没有遇到任何问题,而且基于 Colima 的网站看起来更快些(尤其是在启用 DDEV 的 Mutagen 功能时)。我肯定会预见自己在未来几周内将项目网站迁移到 Colima。

本文最初发布在 DrupalEasy 博客 并经许可重新发布。


via: https://opensource.com/article/22/9/docker-desktop-colima

作者:Michael Anello 选题:lkxed 译者:geekpi 校对:wxy

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

Constellation 是第一个始终加密的 kubernetes(K8S)。在这个 K8S 中,你的所有工作负载和控制平面都被完全屏蔽起来,你可以使用加密证书远程确认这一点。

Constellation Kubernetes 引擎使用 秘密计算 secret computing 机密虚拟机 confidential VM ,将 Kubernetes 集群与云架构的其余部分隔离开来。因此,无论是在静态还是在内存中,数据总是被加密的,并创建了一个 机密上下文 confidential context 。根据创建 Constellation 的公司 Edgeless Systems 的说法,由于它为在公共云上运行的数据和工作流增加了安全性和保密性,因此机密计算是云计算的未来。

Kubernetes 节点在使用 Constellation 的私有虚拟机中运行。根据 Edgeless Systems 的说法,机密虚拟机是安全飞地的演变,它将机密计算的三个原则——运行时加密、隔离和远程证明——扩展到整个虚拟系统。机密虚拟机(TDX)使用底层硬件对私有计算的特殊支持,例如 AMD 安全加密虚拟化(AEM)、SEV-安全嵌套分页(SEV-SNP)和英特尔信任域扩展。此外,ARM 去年还发布了名为 Realms 的新 V9 架构。此设计包括私有 VM 功能。

Constellation 尝试在集群级别提供证明或通过加密证书进行验证,以及“始终在线”加密。 Constellation 中的机密 VMS 使用了 Fedora CoreOS,它构建在一个不可变的文件系统之上,是面向容器而设计的。Constellation 还利用 Sigstore 来保护 DevOps 信任链。

使用秘密计算时,性能可能会令人担忧。是的,加密会影响性能,但 AMD 和微软的联合基准测试发现,这只会导致 2% 到 8% 之间的微小性能损失。Edgeless Systems 声称 Constellation 将在繁重的工作负载下表现类似。

鉴于 Constellation 已通过 CNCF 认证,并且可与包括 GCP 和 Azure 在内的所有主要云服务互操作,这应保证其与其他 Kubernetes 工作负载和工具的互操作性。


via: https://www.opensourceforu.com/2022/09/kubernetes-to-soon-support-confidential-computing/

作者:Laveesh Kocher 选题:lkxed 译者:littlebirdnest 校对:wxy

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

Linus Torvalds 获颁英特尔首个终身创新成就奖

在英特尔 2022 创新大会上的开幕致辞中,CEO Pat Gelsinger 将 Linus Torvalds 邀请到了台上,向他颁发了首个终身创新成就奖,并向他赠送了一本签名的关于 80386 开发的书。Pat 写的这本书让 Torvalds 对机器架构有了深入了解,并在后来的 Linux 内核代码开发工作中发挥了重要的作用。Torvalds 之前也得过其它奖项,如 2014 年 IEEE 计算机协会计算机先锋奖。

消息来源:Hot Hardware
老王点评:Torvalds 确实做到了终身成就。

英特尔认为摩尔定律仍旧有效

之前我们报道过,英伟达的黄仁勋称,蛮力加晶体管的方法和摩尔定律的进步基本上已经走到了尽头。但英特尔 CEO 在周二的发布会上称,摩尔定律“依然有效”,英特尔正致力于推进制造工艺的进步,例如采用新的光刻技术和 RibbonFET 架构。他说,“我们希望从今天的单个封装上容纳大约1000亿个晶体管开始,到这个十年结束时实现在单个封装中加入一万亿个晶体管”。

消息来源:Digital Trends
老王点评:或许一两年之后,我们再来看这条新闻。

Rust for Linux v10 补丁发布,预计合并到 Linux 6.1

v10 补丁主要是对以前的 v9 补丁的一些最小的修改,该补丁集包括 27 个补丁,共计 12.5 万行新代码。与之前相比,这是一个较小的 Rust 补丁系列,目的是为了更容易地实现合并到上游。一旦这项工作被主线化,使 Rust 支持更多的内核子系统和早期的 Rust 驱动就可以继续开发,并持续实现主线化。

消息来源:Phoronix
老王点评:这回应该定了,主要是前几天内核开发者们开会达成了共识。

对开源的信任是一个正反馈循环。

 title=

这是我即将在 Wiley 出版的《 计算和云计算中的信任 Trust in Computing and the Cloud 》一书中经过编辑的节选,也是我之前写的一篇文章 《信任与选择开源》 Trust & choosing open source 的延伸。

在那篇文章中,我提出了一个问题。当我们说 “我相信开放源码软件” 时,我们在做什么?作为回答,我认为,我们正在做的是确定有足够多的编写和测试该软件的人与我有类似的要求,而且他们的专业知识加在一起,使我使用该软件的风险可以接受。我同时也介绍了 “ 分布式信任 distributed trust ” 的概念。

在社区内分布信任的概念是亚里士多德提出的 “ 人群智慧理论 wisdom of the crowd theory ” 的应用,其中的假设是,许多人的意见通常比一个人或少数人的意见更有明智。虽然在某些情况下,最简单的形式显然是错误的 —— 最明显的例子是民众对极权主义政权的支持 —— 但这一原则可以为建立某些信息提供一个非常有效的机制。

我们称这种集体经验的提炼为“分布式信任”,它通过互联网上的许多机制收集。如 TripAdvisor 或 Glassdoor,记录了关于组织或其提供的服务的信息,还有像 UrbanSitter 或 LinkedIn,允许用户添加关于特定人的信息(例如,见 LinkedIn 的推荐和技能与个人档案中的认可部分)。从这些例子中可以获得的利益因网络效应而大大增加,因为随着成员数量的增加,成员之间可能的联系数量也成倍增加。

分布式信任的例子还包括像 Twitter 这样的平台,一个账户的追随者数量可以被视为衡量其声誉,甚至是衡量其可信度的标准,我们应该以强烈的怀疑态度去看待这种计算。事实上,Twitter 认为它必须解决拥有大量追随者的账户的社会力量问题,并建立了一个为 “验证账户” 机制,让人们知道 “一个具有公共利益的账户是真实的”。但是有趣的是,该公司不得不暂停这项服务,因为用户对 “验证” 的确切含义或暗示的期望出现了问题:这就是不同群体之间对内容理解不同的典型案例。

那么,开源的相关性在哪里呢?开源的社区方面实际上就是建立分布式信任的一个驱动力。因为一旦你成为一个开源项目周围社区的一部分,你就会承担一个或多个角色,一旦你说你 “信任” 一个开源项目,你就会开始信任这些角色(见我之前的文章)。例如,架构师、设计师、开发人员、审查人员、技术写作、测试人员、部署人员、错误报告者或错误修复者。你对一个项目的参与越多,你就越是社区的一部分,久而久之,这就可以成为一个 “ 实践社区 community of practice ”。

Jean Lave 和 Etienne Wenger 在 《情境学习:正当的外围参与》 Situated Learning: Legitimate Peripheral Participation 一书中提出了实践社区的概念,团体在成员热情分享和参与共同活动的过程中演变成社区,导致他们的技能和知识共同提高。这里的核心概念是:当参与者围绕实践社区进行学习时,他们同时也成为社区的成员。

“正当的的外围参与既指在实践中知识技能身份的发展,也指实践社区的再生产和转化。”

Wenger 在 《实践社区:学习、意义和身份》 Communities of Practice: Learning, Meaning, and Identity 中进一步探讨了实践社区的概念:它们如何形成、对其健康的要求,以及它们如何鼓励学习。他认为,意义的可协商性(“我们为什么要一起工作,我们要实现什么?”)是实践社区的核心,并指出,如果没有个人的参与、想象力和一致性,实践社区将不会有活力。

我们可以把这一点与我们对分布式信任如何建立和构建的看法结合起来:当你意识到你对开源的影响可以与其他人的影响相同时,你对社区成员的分布式信任关系就变得不那么具有传递性(第二或第三手甚至更遥远),而是更加直接。你明白,你对你所运行的软件的创建、维护、需求和质量所能产生的影响,可以与所有其他以前匿名的贡献者一样,你现在正在与他们形成一个实践社区,或者你正在加入他们的现有实践社区。然后,你就会成为一个信任关系网络的一部分,这个网络是分布式的,但与你购买和操作专利软件时的经历相差不大。

这个过程并不会停止:因为开源项目的一个共同属性是“交叉授粉”,即一个项目的开发者也在其他项目上工作。由于多个开源项目之间的网络效应,使得对其他项目的重用和依赖性上升,导致整个项目的吸收量增加。

这就很容易理解为什么许多开源贡献者会成为开源爱好者或传道者,不仅仅是为单个项目,而是为整个开源项目。事实上,斯坦福大学社会学家 Mark Granovetter 的工作表明,社区内太多的强关系会导致小团体和停滞不前,但弱关系会使思想和趋势在社区内流动。这种对其他项目和围绕它们存在的社区的认识,以及想法在项目间的灵活性,导致分布式信任能够被扩展(尽管保证比较弱),超越贡献者在他们有直接经验的项目中所经历的直接或短链间接关系,并向其他项目扩展,因为外部观察或外围参与显示贡献者之间存在类似关系。

简单地说,参与开源项目并通过参与建立信任关系的行为会导致对类似的开源项目或只是对其他类似的开源项目产生更强的分布式信任。

这对我们每个人来说意味着什么?它意味着我们越是参与开源,我们对开源的信任度就越高,而其他人对开源的参与度也会相应提高,从而对开源的信任度也会提高。对开源的信任不仅仅是一个网络效应:它是一个正反馈循环!


本文最初发表于 Alice, Eve, and Bob,经作者许可转载。


via: https://opensource.com/article/21/1/open-source-distributed-trust

作者:Mike Bursell 选题:lujun9972 译者:MareDevi 校对:wxy

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

Fedora 现场 USB 发行版为引导和进入恢复模式提供了有效的解决方案。

我的家庭实验室里有十几台物理计算机以及更多的虚拟机。这些系统中的大多数是我用来进行测试和实验的。我经常写使用自动化来简化系统管理任务的文章。我还在多个地方写过,我从自己的错误中学到的东西比几乎任何其他方式都多。

在过去的几周里,我学到了很多东西。

我给自己制造了一个大麻烦。作为多年的系统管理员,我写了数百篇关于 Linux 的文章和五本书,我应该对 Linux 更了解。话又说回来,我们都会犯错,这是一个重要的教训:你永远不会因为有经验而不犯错。

我不打算讨论我的错误的细节。告诉你这是一个错误就足够了,在我做之前我应该多考虑一下我在做什么。此外,细节并不是重点。经验不能让你免于犯下的每一个错误,但它可以帮助你恢复。这就是本文要讨论的内容:使用现场 USB 发行版启动并进入恢复模式。

问题

首先,我制造了问题,这本质上是 /etc/default/grub 文件的错误配置。接下来,我使用 Ansible 将错误配置的文件分发到我所有的物理计算机并运行 grub2-mkconfig。全部 12 个。这真的,真的很快。

除了两台之外,所有的都无法启动。它们在 Linux 启动的早期阶段崩溃,出现各种无法定位 /root 文件系统的错误。

我可以使用 root 密码进入“维护”模式,但是如果没有挂载 /root,即使是最简单的工具也无法访问。直接引导到恢复内核也不起作用。系统真的被破坏了。

Fedora 恢复模式

解决此问题的唯一方法是找到进入恢复模式的方法。当一切都失败时,Fedora 提供了一个非常酷的工具:用于安装 Fedora 新实例的 现场 USB Live USB 驱动器。

将 BIOS 设置为从现场 USB 设备启动后,我启动到 Fedora 36 Xfce 的 现场 live 用户桌面。我在桌面上打开了两个相邻的终端会话,并在两者中都切换到了 root 权限。

我在其中一个运行了 lsblk 以供参考。我使用该结果来识别 / 根分区以及 bootefi 分区。我使用了我的一台虚拟机,如下所示。在这种情况下没有 efi 分区,因为此 VM 不使用 UEFI。

# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0           7:0    0  1.5G  1 loop
loop1           7:1    0    6G  1 loop
├─live-rw     253:0    0    6G  0 dm   /
└─live-base   253:1    0    6G  1 dm   
loop2           7:2    0   32G  0 loop
└─live-rw     253:0    0    6G  0 dm   /
sda             8:0    0  120G  0 disk
├─sda1          8:1    0    1G  0 part
└─sda2          8:2    0  119G  0 part
  ├─vg01-swap 253:2    0    4G  0 lvm  
  ├─vg01-tmp  253:3    0   10G  0 lvm  
  ├─vg01-var  253:4    0   20G  0 lvm  
  ├─vg01-home 253:5    0    5G  0 lvm  
  ├─vg01-usr  253:6    0   20G  0 lvm  
  └─vg01-root 253:7    0    5G  0 lvm  
sr0            11:0    1  1.6G  0 rom  /run/initramfs/live
zram0         252:0    0    8G  0 disk [SWAP]

/dev/sda1 分区很容易识别为 /boot,根(/)分区也很明显。

在另一个终端会话中,我执行了一系列步骤来恢复我的系统。特定的卷组名称和设备分区(例如 /dev/sda1)因系统而异。此处显示的命令特定于我的情况。

目标是使用现场 USB 引导并完成启动,然后仅在镜像目录中挂载必要的文件系统,并运行 chroot 命令在 chroot 镜像目录中运行 Linux。这种方法绕过损坏的 GRUB(或其他)配置文件。但是,它提供了一个完整的运行系统,其中安装了所有原始文件系统以进行恢复,既是所需工具的来源,也是要进行更改的目标。

以下是步骤和相关命令:

  1. 创建目录 /mnt/sysimage 以提供 chroot 目录的位置。
  2. 将根分区挂载到 /mnt/sysimage
# mount /dev/mapper/vg01-root /mnt/sysimage
  1. /mnt/sysimage 设为你的工作目录:
# cd /mnt/sysimage
  1. 挂载 /boot/boot/efi 文件系统。
  2. 挂载其他主要文件系统。此步骤不需要像 /home/tmp 这样的文件系统:
# mount /dev/mapper/vg01-usr usr

# mount /dev/mapper/vg01-var var
  1. 绑定已挂载的重要文件系统,它们必须在已经 chroot 的系统和原始的现场系统之间共享,而后者仍然在外部运行:
# mount --bind /sys sys

# mount --bind /proc proc
  1. 一定要最后操作 /dev 目录,否则其他文件系统不能挂载:
# mount --bind /dev dev
  1. chroot 到系统镜像:
# chroot /mnt/sysimage

系统现在已经准备好了,无论你需要做什么,都可以把它恢复到一个工作状态。然而,有一次我能够在这种状态下运行我的服务器数天,直到我能够研究测试出真正的修复方法。我并不推荐这样做,但在紧急情况下,当有任务需要启动和运行时,这可能是一个选择。

解决方案

当我让每个系统进入恢复模式,修复就很容易了。因为我的系统现在就像成功启动一样工作,我只需对 /etc/default/grub/etc/fstab 进行必要的更改并运行 grub2-mkconfig > boot/grub2/grub.cfg 命令。我使用 exit 命令退出 chroot 环境,然后重启主机。

当然,我无法自动从我的意外事故中恢复过来。我必须在每台主机上手动执行整个过程,这是使用自动化快速和容易地传播我自己的错误的一点报应。

得到教训

尽管它们很有用,我曾经讨厌在我的一些系统管理员工作中举行的“经验教训”会议,但看来我确实需要提醒自己一些事情。因此,这里是我从这场自作自受的惨败中获得的“教训”。

首先,无法引导的十个系统使用了不同的卷组命名方案,而我的新 GRUB 配置没有考虑到这一点。我只是忽略了它们可能不同的事实。

  • 彻底考虑清楚。
  • 并非所有系统都相同。
  • 测试一切。
  • 验证一切。
  • 永远不要做假设。

现在一切正常。希望我也聪明一点。


via: https://opensource.com/article/22/9/recover-linux-system-live-usb

作者:David Both 选题:lkxed 译者:geekpi 校对:wxy

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

Audacity 的新更新带来了一些重要功能,例如 VST3 插件支持和新效果按钮。

Audacity 3.2 Released With VST3 Plugins and Apple Silicon Support

Audacity 3.2 来了,这是这个最流行的自由开源音频编辑和录制工具之一的小版本更新。

此版本是在之前的主要版本 Audacity 3.0 发布一年多之后发布的。

即使在去年引起争议 之后,它仍然是目前最好的 Linux 音频编辑器之一。

此版本有许多新增功能,例如对VST3 插件的支持、对 Apple 芯片、FFMPEG 5.0 的支持等等。

让我们快速了解一下 Audacity 的新功能。

Audacity 3.2:有什么新功能?

这是一个小版本更新,带来了重大的变化和补充。

一些主要亮点包括:

  • 支持 VST3 插件。
  • Apple 芯片支持。
  • FFMPEG 5.0。
  • VST3、LV2、音频单元和 LADSPA 的实时功能。
  • 用于实时效果的专用按钮。
  • 删除对 Linux 系统的 JACK 要求。
  • 对用户界面的各种调整。

新的效果按钮

audacity 3.2 effects button

Audacity 的界面中添加了一个专用的实时效果按钮,使用户可以轻松地即时下载和应用效果。

你可以访问官方维基 了解有关此功能的更多信息。

VST3 插件支持

Audacity 3.2 还引入了对 VST3 插件的支持,这使用户能够利用 VST3 的高级音频处理功能,包括高效利用 CPU、更好地处理 MIDI、支持 MIDI I/O 等等。

将音频上传到云端

audacity 3.2 share audio button

在 Audacity 中加入的另一个令人兴奋的功能是,可以选择直接从应用程序中分享音频到 Audacity 的新云音频平台 audio.com

FFMPEG 5.0

Audacity 现在也支持了 FFMPEG 5.0;这确保了用户可以利用最新的开源音频/视频库套件。

苹果芯片支持

此版本还为基于 arm64 架构的 Apple 芯片带来了 macOS 支持。

下载 Audacity 3.2

你可以通过其官方网站GitHub 发布区FlathubSnap 下载最新的 Audacity 版本。

Audacity 3.2 下载

? 你会尝试 Audacity 3.2 吗?我认为对VST3插件的支持应该是一个改变游戏规则的因素,你怎么看?在下面的评论部分分享它!


via: https://news.itsfoss.com/audacity-3-2-release/

作者:Sourav Rudra 选题:lkxed 译者:littlebirdnest 校对:wxy

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