2023年8月

AlmaLinux 称红帽封闭 RHEL 源代码对他们是因祸得福

面对红帽封闭了其 RHEL 源代码的访问的情况,AlmaLinux OS 基金会主席说,AlmaLinux 在过去一个月中采取的变通方法应该可以解决所有问题,但最离谱的情况除外。他们的策略已经从错误级的兼容转变为应用程序二进制接口(ABI)兼容,这并不能保证永远不会出现问题,但故障应该很少出现,而且通常可以通过重新编译源代码来解决。她说,事实上,红帽公司改变方向对 AlmaLinux 来说是因祸得福,“我们认为这将我们从一对一的束缚中解脱出来”,无需等待红帽公司的提示,就可以打补丁。此外,这件事还给他们带来了一些微薄的资金,“每天投 5 美元的人数翻了两番多”。

消息来源:Silicon Angle
老王点评:面对红帽的动作,几家下游采取的不同动作颇有意思。AlmaLinux 的这种接受现实、顺应变化的思路或许也是一条可以走通的路,除非红帽会继续设置各种不违反许可证但令人不舒服的障碍。

去世多年后,著名演员出演一部新电影

据报道,James Dean 在去世 68 年后,“在一部即将上映的新电影《回到伊甸园》中担任主演”。电影中将使用类似于生成式深度伪造的人工智能技术,复制出一个数字版的 James Dean,他将在电影中行走、说话并与其他演员互动。这项技术远远超越了被动的数字重建或将一个人的脸覆盖在另一个人身体上的深度伪造技术。这是 Dean 的数字克隆人第二次被安排拍摄电影了。2019 年,有消息称他将在一部名为《寻找杰克》的电影中用 CGI 技术复活,但后来被取消了。Dean 的形象是 WRX 及其姊妹授权公司 CMG Worldwide 代理的数百个形象之一。

消息来源:BBC
老王点评:以一个不靠谱“未来学家”的角度来判断,以后的影视作品可能绝大多数都是虚拟演员,可能甚至根本没有原型演员。而真正以真人出演的,可能类似于在工业制品的货架中偶尔会出现的一些手工制品,稀少而猎奇。

未来三年 40% 的工人将因人工智能而需要重新掌握技能

IBM 的一项调查研究称,“与六个月前相比,工作世界已经发生了变化”。77% 的高管受访者表示,入门级职位已经感受到了生成式人工智能的影响,但它更有可能增强员工的能力,而不是取代他们。受访的高管说,未来三年内,由于人工智能和自动化的实施,40% 的员工需要重新掌握技能,这意味着全球 34 亿劳动力中有 14 亿人面临此变化。

消息来源:IBM
老王点评:那么普通程序员算入门级职位么?

在 Bash 基础知识系列的倒数第二章节,学习 forwhileuntil 循环。

循环是任何编程语言中的一个强大功能。如果你还不知道,循环其实是一种根据某些条件重复代码的方式。

例如,想象一下你需要打印从 1 到 10 的数字。你可以使用 echo 命令写十次,但那太原始了。你使用一个循环,在 3 到 4 行代码内,就能完成。

这是我能想到的最简单的例子。我将在讨论 Bash 循环时,分享一些实际有用的例子。

在 Bash 中有三种类型的循环:

  • for
  • while
  • until

我将在教程中展示所有三种类型的循环。让我们从最常见的一种开始。

Bash 中的 For 循环

以下是 Bash 中的 for 循环语法:

for arg in LIST; do
    commands
done

这里的 LIST 可能是一个数组或者一个项目列表。括号扩展 也是进行循环的常用手段。

考虑一下我在开始提到的最简单的场景。让我们使用 for 循环打印从 1 到 10 的数字:

#!/bin/bash

for num in {1..10}; do
    echo $num
done

如果你运行它,你应该会看到像这样的输出:

$ ./for-loop.sh
1
2
3
4
5
6
7
8
9
10

你也可以使用 for num in 1 2 3 4 5 6 7 8 9 10; do ,但是使用括号扩展使得代码看起来更短且更智能。

{..} 是用于扩展模式的。你使用 {d..h} ,它等同于 d e f g h 。关于括号扩展的更多信息,可以在这篇文章中找到。

在 Bash 中使用括号扩展

? 如果你熟悉 C 语言编程,你可能会喜欢在 bash 中使用 C 风格的 for 循环:

for ((i = 0 ; i < 10 ; i++)); do
  echo $i
done

让我们看另一个例子,显示 Bash 数组 的所有内容:

#!/bin/bash

distros=(Ubuntu Fedora Debian Alpine)

for i in "${distros[@]}"; do
    echo $i
done

如果你运行脚本,它将显示数组中定义的所有发行版:

Ubuntu
Fedora
Debian
Alpine

Bash 中的 While 循环

while 循环测试一个条件,然后只要条件为真,就继续循环。

while [ condition ]; do
    commands
done

如果你考虑前一个例子,它可以使用 while 循环进行重写:

#!/bin/bash

num=1
while [ $num -le 10 ]; do
    echo $num
    num=$(($num+1))
done

如你所见,你首先需要将变量 num 定义为 1,然后在循环体内,你增加 num 的值。只要 num 小于或等于 10,while 循环就会检查条件并运行脚本。

因此,现在运行脚本将会显示出和之前 for 循环中看到的完全相同的结果。

1
2
3
4
5
6
7
8
9
10

让我们看另一个例子。这是一个 Bash 脚本,它接受一个数字作为参数 并显示该表。

#!/bin/bash

echo "Table for $1 is:"
index=1
while [ $index -le 10 ]; do
    echo $(($1*$index))
    index=$(($index+1))
done

如果你对 $1 的使用感到困惑,它代表传递给脚本的第一个参数。更多的细节可以参考这个系列的 第三章

如果你运行这个脚本,它应该会显示以下的输出:

$ ./table.sh 2
Table for 2 is:
2
4
6
8
10
12
14
16
18
20

Bash 中的 Until 循环

这是一个使用较少的循环格式。它的行为和 while 循环类似。这里的区别是,循环运行直到它检查的条件为真为止。意味着为了在循环中执行代码,[ ] 中的条件必须为假。

我马上会解释一下。让我们先看一下它的语法。

until [ condition ]; do
    commands
done

现在,如果我要使用相同的示例,即使用 until 循环打印从 1 到 10 的数字,它看起来会是这样:

#!/bin/bash

num=1
until [ $num -gt 10 ]; do
    echo $num
    num=$(($num+1))
done

区别在于条件;其余部分保持不变。

  • 当变量 num 小于或等于 10 时,while 循环就会运行。[ ] 中的条件必须为真,循环才会执行。
  • 知道变量 num 变得大于 10 时,until 循环才会运行。[ ] 中的条件必须为假,循环才会执行。

这都是做同样事情的两种不同方式。while 更受欢迎,因为你会在大多数编程语言中找到类似 while 的循环语法。

?️ 练习时间

那是有趣的。现在是做一些练习的时候了。

练习 1:编写一个脚本,该脚本接受一个数字作为参数并打印其表格。如果脚本在没有参数的情况下运行,你的脚本还应显示一个消息。

预期输出

$: ./table.sh
You forgot to enter a number

$: ./table.sh 3
3
6
9
12
15
18
21
24
27
30

练习 2 : 编写一个脚本,列出目录 /var 中的所有文件。

提示 : 对于循环,使用 /var/* 作为 “列表”。

Bash 基础知识系列即将结束。作为该系列的最后一章,你将在下周学习在 Bash 脚本中使用函数。敬请期待。

(题图:MJ/945241d6-6a73-432c-9bcd-e0948b3fadc0)


via: https://itsfoss.com/bash-loops/

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

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

本文介绍了 Flathub 中可用的项目以及安装说明。

Flathub 是获取和分发适用于所有 Linux 的应用的地方。它由 Flatpak 提供支持,允许 Flathub 应用在几乎任何 Linux 发行版上运行。

请阅读 “Flatpak 入门”。要启用 Flathub 作为你的 Flatpak 提供商,请使用 Flatpak 站点 上的说明。

Authenticator

Authenticator 是一个简单的应用,可让你生成双因素身份验证代码。它有一个非常简单和优雅的界面,支持很多算法和方法。它的一些特点是:

  • 支持基于时间/基于计数器/Steam 方法
  • 支持 SHA-1/SHA-256/SHA-512 算法
  • 使用相机或截图扫描二维码
  • 使用密码锁定应用
  • 从已知应用备份/恢复,如 FreeOTP+、Aegis(加密/纯文本)和 OTP、谷歌验证器

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Authenticator:

flatpak install flathub com.belmoussaoui.Authenticator

Secrets

Secrets 是一个与 GNOME 集成的密码管理器。它易于使用,并使用 KeyPass 文件格式。它的一些特点是:

  • 支持的加密算法:

    • AES 256 位
    • Twofish 256 位
    • ChaCha20 256 位
  • 支持的衍生算法:

    • Argon2 KDBX4
    • Argon2id KDBX4
    • AES-KDF KDBX 3.1
  • 创建或导入 KeePass safes 数据库
  • 将附件添加到你的加密数据库
  • 生成高强度加密的密码
  • 快速搜索你喜爱的条目
  • 不活动时自动锁定数据库
  • 支持双因素认证

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Secrets:

flatpak install flathub org.gnome.World.Secrets

Flatsweep

Flatsweep 是一个简单的应用,用于在 Flatpak 卸载后删除残留文件。它使用 GTK4 和 Libadwaita 提供一致的用户界面,与 GNOME 很好地集成,但你可以在任何桌面环境中使用它。

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Flatsweep:

flatpak install flathub io.github.giantpinkrobots.flatsweep

Solanum

Solanum 是一款使用 番茄工作法 的时间跟踪应用。它使用 GTK4,其界面与 GNOME 很好地集成。

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Solanum:

flatpak install flathub org.gnome.Solanum

(题图:MJ/3e95393e-6dc5-4328-b0f9-27031c8848a2)


via: https://fedoramagazine.org/fedora-linux-flatpak-cool-apps-to-try-for-august/

作者:Eduard Lucena 选题:lujun9972 译者:geekpi 校对:wxy

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

开发中的 KDE Plasma 6 默认双击打开文件和文件夹

KDE 开发人员说,正在开发中的 KDE Plasma 6 默认单击选择文件或文件夹,而用双击打开它们。当然,你可以通过设置修改回以前的默认行为单击打开。

消息来源:Phoronix
老王点评:虽然 KDE 中的这种点击行为由来已久,但是还是得承认双击打开更方便一些。

美国法官裁定人工智能制品不受版权保护

据报道,美国联邦法官维持了美国版权局的决定,即拒绝为计算机科学家 Stephen Thaler 仅由人工智能模型创作的图像进行版权登记。法官称,“人类的创作行为,以及如何最好地鼓励人类个体进行创作,从而促进科学和实用艺术,从一开始就是美国版权法的核心。”法官写道:“非人类行为者不需要美国法律所承诺的专有权来激励他们,因此,版权的设计并不是为了惠及他们。”

消息来源:BillBoard
老王点评:这一结果并不意外,但是其依据的理由颇为新颖。不过,这样的裁决会如何影响人工智能的发展呢?

一些美国学校现在开始讲授 ChatGPT 和人工智能

教授们现在担心,忽视或阻止人工智能的使用 “将是对学生的一种伤害,会让许多人在进入劳动力市场时落伍”。范德堡大学是较早采取坚定立场支持生成式人工智能的领导者之一,该大学的 Jules White 副教授认为人工智能“将在每个行业的需求中带来巨大的变革,因此我们要提供正确的培训。”有超过 9 万名学生选修了他的一门学时为 18 小时的在线的人工智能课程。尽管对作弊的担忧依然存在,但他认为,想要抄袭的学生仍可以寻求其他方法,如维基百科或谷歌搜索。

消息来源:CNN
老王点评:我还是这样的态度,拥抱新事物而不是躲避。

OpenCost 是一款与 Kubernetes 无缝集成的云成本监控工具,可让您实时跟踪云支出,从而相应地优化资源。

Kubernetes 是一个强大的平台,用于管理云中的动态容器化应用,但可能很难理解成本发生在哪里。管理 Kubernetes 资源的成本效率可能是一个挑战。这就是 OpenCost 的用武之地。OpenCost 是一种云成本监控工具,与 Kubernetes 无缝集成,让你可以实时跟踪云支出,以便相应地优化资源。

OpenCost 是一个开源 CNCF 沙盒项目规范,用于实时监控与 Kubernetes 部署相关的云成本。该规范按服务、部署、命名空间、标签等对当前和历史 Kubernetes 云支出和资源分配进行建模。这些数据对于理解和优化 Kubernetes 从应用到基础设施的成本和性能至关重要。

要求和安装

开始使用 OpenCost 是一个相对简单的过程。OpenCost 使用 Prometheus 进行监控和指标存储。你可以从 Prometheus 社区的 Kubernetes Helm Chart 安装它。

安装 Prometheus

首先使用以下命令安装 Prometheus:

$ helm install my-prometheus --repo https://prometheus-community.github.io/helm-charts prometheus \
 --namespace prometheus --create-namespace \
 --set pushgateway.enabled=false --set alertmanager.enabled=false -f \
https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml

安装 OpenCost

接下来,使用 kubectl 命令安装 OpenCost:

$ kubectl apply --namespace opencost -f \
https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/opencost.yaml

此命令将 OpenCost 部署到你的集群并开始收集数据。这就是大多数安装所需的全部内容。你可以使用你自己的 Prometheus 安装或使用 OpenCost Helm Chart 自定义部署。

测试和访问

OpenCost 会自动检测它是否在 AWS、Azure 还是 GCP 上运行,你可以将其配置为为本地 Kubernetes 部署提供定价。首先转发 API 和 UI 访问的端口:

$ kubectl port-forward --namespace opencost service/opencost 9003 9090

大约五分钟内,你可以验证 UI 和服务器是否正在运行,并且你可以通过 http://localhost:9090 访问 OpenCost UI。

监控成本

你已准备好开始使用部署到 Kubernetes 集群的 OpenCost 来监控云成本。OpenCost 仪表板提供对云支出的实时可见性,使你能够识别成本异常并优化云资源。你可以按节点、命名空间、pod、标签等查看云支出。

OpenCost monitoring console

kubectl cost 插件提供了对 Kubernetes 成本分配指标的简单 CLI 查询。它允许开发人员、运营商和其他人快速确定任何 Kubernetes 工作负载的成本和效率。

$ kubectl cost --service-port 9003 \
--service-name opencost --kubecost-namespace opencost \
--allocation-path /allocation/compute pod \
--window 5m --show-efficiency=true

+-------+---------+-------------+----------+---------------+
|CLUSTER|NAMESPACE|POD          |MONTH RATE|COST EFFICIENCY|
+-------+---------+-------------+----------+---------------+
|cl-one |kube-syst|coredns-db...| 1.486732 |      0.033660 |
|       |         |coredns-...dm| 1.486732 |      0.032272 |
|       |         |kube-prox...7| 1.359577 |      0.002200 |
|       |         |kube-prox...x| 1.359577 |      0.002470 |
|       |opencost |opencost...5t| 0.459713 |      0.187180 |
|       |kube-syst|aws-node-cbwl| 0.342340 |      0.134960 |
|       |         |aws-node-gbfh| 0.342340 |      0.133760 |
|       |prometheu|my-prome...pv| 0.000000 |      0.000000 |
|       |         |my-prome...hn| 0.000000 |      0.000000 |
|       |         |my-prome...89| 0.000000 |      0.000000 |
+-------+---------+-------------+----------+---------------+
| SUMMED|         |             | 6.837011 |               |
+-------+---------+-------------+----------+---------------+

你还可以集成 API,以编程方式将数据提取到你选择的平台中。

Kubernetes 优化策略

现在你已经掌握了云成本,是时候优化你的 Kubernetes 环境了。优化是一个迭代过程。从栈的顶部(容器)开始并遍历每一层。每一步的效率都会复合。有很多方法可以优化 Kubernetes 以提高成本效率,例如:

  • 查找废弃的工作负载和未申明的卷:不再使用或断开连接的容器荚和存储会继续消耗资源而不提供价值。
  • 调整你的工作负载大小:确保你为你的工作负载使用正确大小的容器。调查分配过多和分配不足的容器。
  • 自动扩展:自动扩展可以帮助你仅在需要时使用资源来节省成本。
  • 调整集群大小:节点过多或过大可能会导致效率低下。在容量、可用性和性能之间找到适当的平衡可能会大大降低成本。
  • 研究更便宜的节点类型:CPU、RAM、网络和存储有很多变化。切换到 ARM 架构可能会带来更大的节省。
  • 投资 FinOps 团队:组织内的专门团队可以通过协调预留实例、现货实例和节省计划来寻找实现更大节省的方法。

从今天开始

监控 Kubernetes 环境中的成本可能具有挑战性,但使用 OpenCost 则不必如此。要开始使用 OpenCost 并控制你的云支出,请访问 OpenCost 网站,在 GitHub 中获取代码,查看 OpenCost 文档,并参与 CNCF Slack 中的 #opencost 频道。

(题图:MJ/5de557f1-464c-480c-8698-130748f60b20)


via: https://opensource.com/article/23/3/kubernetes-cloud-cost-monitoring

作者:Matt Ray 选题:lkxed 译者:geekpi 校对:wxy

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

Rhino Linux 绝对值得关注!

你可能还记得我们 去年 报道过,Rhino Linux 将会接替现已停止开发的 “Rolling Rhino Remix”。

经过漫长的等待,它的首个稳定版本终于发布了!

现在我们就一起来看看 Rhino Linux 有哪些值得特别关注的地方。

Rhino Linux 到底是什么? ?

Rhino Linux 是一个基于 Ubuntu,使用了改版的 XFCE 4.18 以及 Pacstall 作为核心,提供了无忧用户体验的滚动发布版系统。

? 滚动发布的系统能接收到规律的软件升级,而不只是负责维护修复。

采用 XFCE 4.18 使得 Rhino Linux 能利用各种新优化,比如 Thunar 文件管理器的提升,增强的桌面/面板 等等。

你可以查看我们的相关报道以了解更多。

Xfce 4.18 版本发布:令人印象深刻

接着我们来说说 Pacstall,一个受到 AUR 启发的包管理器,它可以处理从内核安装到安装网页浏览器的所有任务。

所有与 Rhino Linux 相关的包都打包成 pacscript,任何操作系统的更新都可以通过 Pacstall 来完成。

那么,这个发行版的感觉和表现如何?

首次启动 Rhino Linux 时,你会遇到一个使用 Rust 构建的简洁现代的快速设置向导。

? 我们的网站上有一份新的 Rust 基础教程系列。你可以查看,学习一下 Rust 编程语言。

当你进行下一步时,你可以在三种不同的包管理器中进行选择:Flatpak ,Snap,以及 AppImage。

这样的功能得益于他们自创的定制包管理包装器 rhino-pkg,它可以让你从各种支持的仓库中搜索、安装、移除和更新包。

相比于最新的官方 Ubuntu 版本,你可以自由选择从开箱即用的 Flatpak 开始。

然后还有一些额外设置你可以选择启用。

其中一个是启用这个精妙的基于 Python 的 apt 包管理前端,,Nala

另一个是 Apport,这是一个崩溃报告系统,在系统崩溃的情况下可以让开发者知道你的安装有任何问题。

完成这些设置后,你看见的是一个非常简洁的桌面布局,包括一个干净的壁纸和一个悬浮的程序坞。

他们将自家桌面称为 “ 独角兽桌面 Unicorn Desktop ”,这是一个基于大幅修改过的 XFCE 构建的桌面。

它的目标是将现代和传统的最佳实践结合在一起,为桌面用户体验提供包含两者优点的体验。

独角兽桌面还包含了一些附加的免费软件解决方案,如 uLauncher(替代了 spotlight 的搜索工具)、lightpad(作为新的应用启动器)以及许多其他功能。

可以 在这里 阅读更多关于他们定制桌面体验的信息。

总的来说,用户体验相对直观,而且 Rhino 主题的壁纸看起来很漂亮。

还有其他亮点吗?

当然有!

本次发布还包含了一个我很期待看到的引人注目的版本。

这是一个用于 PinePhone 设备(原版/Pro 版)的 Rhino Linux 移植版,基于最新的 Ubuntu Touch(20.04),它是首个基于 XFCE 的移动环境。

正如你可以从负责这个移植的 Oren Klopfer 分享的视频中看到的,它还处在非常初步的状态。

他打算在 XFCE 4.20 发布时就进行切换,以获得 Wayland 的支持并摒弃 X11。

我迫不及待地想看到结果了!

发布博客 上你可以找到更多关于 Rhino Linux 的细节。

? 获取 Rhino Linux

有三个不同版本供你选择,一个是通用 ISO,适用于 x86\_64/ARM64 ,提到的PinePhone ISO,还有Raspberry Pi ISO。

你可以在 此处 下载对应的 ISO。

Rhino Linux

你还可以使用其 GitHub 仓库 中的源代码从头构建。

我非常期待看到 Rhino Linux 在未来能做出什么。⭐

(题图:MJ/c6cb42de-7196-4759-a9a6-10db8adbc058)


via: https://news.itsfoss.com/rhino-linux-release/

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

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