分类 技术 下的文章

通过查看创建一个吊舱或一个部署时的 10 个步骤,可以更好地了解 Kubernetes。

 title=

当你在 Kubernetes 上使用容器时,你经常把应用程序组合在一个 吊舱 pod 中。当你把一个容器或一个吊舱发布到生产环境中时,它被称为一个 部署 deployment 。如果你每天甚至每周都在使用 Kubernetes,你可能已经这样做过几百次了,但你有没有想过,当你创建一个吊舱或一个部署时到底会发生什么?

我发现在高层次上了解事件链条是有帮助的。当然,你不一定要理解它。即使你不知道为什么,它仍然在工作。我不打算列出每一件发生的小事,但我的目标是涵盖所有重要的事情。

这里有一张 Kubernetes 不同组件如何互动的视觉地图。

 title=

你可能注意到,在上图中,我没有包括 etcd。API 服务器是唯一能够直接与 etcd 对话的组件,而且只有它能够对 etcd 进行修改。因此,你可以认为 etcd 在这张图中存在于(隐藏的)API 服务器后面。

另外,我在这里只讲到了两个主要的控制器( 部署控制器 Deployment controller 复制集控制器 ReplicaSet controller )。其他的控制器的工作方式类似。

下面的步骤描述了当你执行 kubectl create 命令时会发生什么。

步骤 1

当你使用 kubectl create 命令时,一个 HTTP POST 请求被发送到 API 服务器,其中包含部署清单。API 服务器将其存储在 etcd 数据存储中,并返回一个响应给 kubectl

步骤 2 和 3

API 服务器有一个观察机制,所有观察它的客户都会得到通知。客户端通过打开与 API 服务器的 HTTP 连接来观察变化,API 服务器会流式地发出通知。其中一个客户端是部署控制器。部署控制器检测到一个 部署 Deployment 对象,它用部署的当前规格创建一个 复制集 ReplicaSet 。该资源被送回 API 服务器,并存储在 etcd 数据存储中。

步骤 4 和 5

与上一步类似,所有观察者都会收到关于 API 服务器中的变化的通知。这一次,复制集控制器会接收这一变化。该控制器了解所需的副本数量和对象规格中定义的吊舱选择器,创建吊舱资源,并将这些信息送回 API 服务器,存储在 etcd 数据存储中。

步骤 6 和 7

Kubernetes 现在拥有运行吊舱所需的所有信息,但吊舱应该在哪个节点上运行? 调度器 Scheduler 观察那些还没有分配到节点的吊舱,并开始对所有节点进行过滤和排序,以选择最佳节点来运行吊舱。一旦节点被选中,该信息将被添加到吊舱规格中。而且它被送回 API 服务器并存储在 etcd 数据存储中。

步骤 8、9 和 10

到目前为止的所有步骤都发生在 控制平面 control plane 本身。 工作节点 worker node 还没有做任何工作。不过,吊舱的创建并不是由控制平面处理的。相反,在所有节点上运行的 kubelet 服务观察 API 服务器中的吊舱规格,以确定它是否需要创建任何吊舱。在调度器选择的节点上运行的 kubelet 服务获得吊舱规格,并指示工作节点上的容器运行时创建容器。这时就会下载一个容器镜像(如果它还不存在的话),容器就会实际开始运行。

理解 Kubernetes 的部署

对这个一般流程的理解可以帮助你理解 Kubernetes 中的许多事件。考虑一下 Kubernetes 中的 守护进程集 DaemonSet 状态集 StatefulSet 。除了使用不同的控制器外,吊舱的创建过程是一样的。

课后作业:如果部署被修改为有三个应用程序的副本,导致创建吊舱的事件链条会是什么样子?你可以参考图表或列出的步骤,但你肯定有你需要弄清楚的知识。知识就是力量,你现在有了了解 Kubernetes 的一个重要组成部分。


via: https://opensource.com/article/22/3/visual-map-kubernetes-deployment

作者:Nived Velayudhan 选题:lujun9972 译者:wxy 校对:wxy

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

在不放弃你的 Plasma 桌面的情况下获得 GNOME 的感觉。

 title=

GNOME 有一种极简主义设计的倾向。它是一种美丽的桌面体验,并且是第一个在我使用 Linux 时引起别人赞叹的自由桌面。然后(请原谅我的形而上的哲学思考),没有复杂性就没有极简主义,而 KDE 以其极具定制性而闻名。我认为测试一下 KDE 的配置可能会很有趣,并尝试在 KDE Plasma 桌面上重新实现,至少在表面上实现 GNOME 的体验。

如果你尝试这个,请在一个临时用户帐户中进行。这些变化相对来说比较剧烈,撤销它以回到你的标准 KDE 布局可能是一个很大的工作。

Adwaita 主题

GNOME 的默认主题叫做 Adwaita,是为 GTK 设计的,这是 GNOME 用于窗口和部件的工具包。KDE 使用 Qt 工具包,但 Fedora-Qt 项目已经开发了一个模仿 Adwaita 的 Qt 主题。这是在 KDE 上模仿 GNOME 的第一步,也是最明显的一步。使用你的发行版的包管理器安装 Adwaita for Qt:

$ sudo dnf install adwaita-qt{,5}

在基于 Debian 的发行版上,请使用 apt 命令而不是 dnf

安装完毕后,进入“ 系统设置 System Settings ”,选择“ 应用风格 Application Style ”。选择你喜欢的 Adwaita 主题变体:有一个浅色主题和一个深色主题,以及两者之间的变化。点击“ 应用 Apply ”按钮来更新你的主题,但先不要关闭这个控制面板。

窗口装饰

在“ 应用风格 Application Style ”窗口的左侧面板中选择“ 窗口装饰 Window Decorations ”分类。如果有一个适合 Adwaita 的标题栏样式,通过选择它并点击“ 应用 Apply ”来激活它。如果没有安装额外的装饰,点击面板右下方的“ 获取新窗口装饰 Get new window decorations ”按钮,下载合适的东西。我使用了用户 x-varlesh-x 提供的 “Arc” 主题,但你可以四处看看,看看什么最适合你的其他主题。

GNOME 著名的是它的窗口标题栏上只有一个按钮,所以导航到“ 标题栏按钮 Titlebar Buttons ”标签,然后通过将“ 关闭 Close ”按钮从标题栏图像拖到处置区域来删除所有按钮。

 title=

取消选择“ 显示标题栏按钮提示 Show titlebar button tooltips ”,因为 GNOME 不倾向于在系统部件上做提示。

点击“ 应用 Apply ”来保存你的修改。

GTK 主题

在 KDE 上,使用 GTK 的应用通常会被重新主题化成与 KDE 的默认主题一致。现在你已经把你的主题从 KDE Breeze 改为 GNOME Adwaita,你必须告诉 GTK 使用 Adwaita 主题。

点击“ 应用风格 Application Style ”面板底部的“ 配置 GNOME/GTK 应用风格 Configure GNOME/GTK application style ”按钮,在下拉菜单中选择 “Adwaita”。

工作区行为

GNOME 在视觉上比 KDE 更安静,所以在“ 系统设置 System Settings ”中找到“ 工作区行为 Workspace behavior ”面板,停用“ 在鼠标悬停时显示信息提示 Display informational tooltips on mouse hover ”和“ 显示状态变化的视觉反馈 Display visual feedback for status changes ”。

你也可以把打开文件和文件夹改为需要双击而不是单击(在实际中,这对我来说太不方便了)。

图标和光标

你可以在“ 系统设置 System Settings ”中把光标改为 Adwaita 主题,然后选择一个图标主题。我喜欢 Breeze 的图标,但它们确实感觉像 KDE。GNOME 使用 Adwaita 图标集,但由于它们是为 GNOME 设计的,所以缺少一些重要的 KDE 组件的图标。你可以点击“ 图标 Icons ”控制面板中的“ 获取新图标 Get New Icons ”按钮来浏览很多图标集,最后我选择了用户 alvatip 提供的 “Nordzy”。不过,有很多不错的图标集可用,查看它们,看看你喜欢什么。我发现任何不属于 Breeze 的东西都会使 KDE 看起来与我习惯的东西有足够的不同。

系统面板

GNOME 的面板在屏幕的顶部,而 KDE 的面板默认在屏幕的底部。GNOME 的面板在默认情况下也是比较空的,所以我发现最简单的做法是先把当前的 KDE 面板完全删除。

右键点击并选择“ 编辑面板 Edit panel ”。进入编辑模式后,再次右键点击面板,选择“ 删除面板 Remove panel ”。当它消失了,右击桌面上的任何地方,选择“ 添加面板 Add panel ”并添加一个空面板。这样就在屏幕底部添加了一个面板,所以右击它,选择“ 编辑面板 Edit panel ”,然后点击并拖动“ 屏幕边缘 Screen Edge ”按钮到屏幕的顶部。

当仍处于编辑模式时,点击“ 添加部件 Add widgets ”按钮,将“ 应用仪表板 Application dashboard ”部件添加到面板的最左端。然后从“ 编辑面板 Edit panel ”视图中添加一个“ 间隔 Spacer ”块,然后是一个“ 时钟 Clock ”,然后是另一个“ 间隔 Spacer ”。你可以拖动这些小部件来排列它们,所以我发现最简单的做法是添加上应用仪表板和时钟,然后是两个间隔,再把它们排列起来。

 title=

你可以右键点击每个小组件来定制图标和布局。例如,我把日期从时钟上移走了,因为它在附加了日期后看起来很挤,尽管 GNOME 确实包含了日期。

通过进入“ 系统设置 System Settings ”,选择一个深色的 Plasma 主题,比如 “Breeze Dark”,将面板改为黑色。

GNOME Plasma 桌面

通过一些快速的调整,你的桌面现在在各个方面接近于 GNOME。布局是类似的。

 title=

应用仪表板提供了一个 GNOME 风格的应用启动器。

 title=

其他小的修改进一步有助于产生这种错觉。例如,我简化了 Dolphin 文件管理器,去掉了“ 位置 Places ”面板,也去掉了工具栏上的大部分按钮。

一个不同的视角

这不是一个精确的匹配,比我更具钻研精神的人可以做的更多,得到更接近正确的结果。然而,像这样有趣的变化证明了 KDE 是多么的灵活,拥有大量的选项意味着你可以缩减你的交互内容以适应你的偏好。一个类似 GNOME 的桌面可以给你一个新的视角来看待你与桌面的互动,即使你不会永远保持这种布局,它可以帮助你发现你可能没有想到要寻找的选项。


via: https://opensource.com/article/22/2/make-kde-look-like-gnome

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

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

欢迎来到面向初学者的 Bash Shell 脚本知识第三部分。这最后一篇文章将再来学习一些知识点,这些将使你为持续的个人发展做好准备。它将涉及到函数、用 if/elif 语句进行比较,并以研究 while 循环作为结尾。

函数

让我们从一个看似困难但其实很简单的基本概念开始,即函数。把它看作是一种简单的方法,可以把脚本中被反复使用的部分放到一个可重复使用的组中。你在本系列第一篇或第二篇文章中所做的任何事情都可以放在一个函数中。因此,让我们把一个函数放到我们的 learnToScript.sh 文件中。让我指出几个关键点。你将需要为你的函数起一个名字、一对小括号,以及用大括号包围放在你的函数中的命令。

#!/bin/bash

#A function to return an echo statement.
helloFunc() {
        echo "Hello from a function."
}

#invoke the first function helloFunc()
helloFunc

你会看到如下输出结果:

[zexcon@fedora ~]$ ./learnToScript.sh
Hello from a function.
[zexcon@fedora ~]$

函数是重复使用一组命令的好方法,但如果你能使它们在每次使用时对不同的数据进行操作,它们会更加有用。这就要求你在每次调用函数时提供数据,这称为参数。

要提供参数,你只需在调用函数时把它们加在函数名称后面。为了使用你提供的数据,你在函数命令中使用位置来引用它们。它们将被命名为 $1$2$3,以此类推,这取决于你的函数将需要多少个参数。

让我们修改上一个例子来帮助更好地理解这个问题。

#!/bin/bash

#A function to return an echo statement.
helloFunc() {
        echo "Hello from a function."
        echo $1
        echo $2
        echo "You gave me $# arguments"
}

#invoke the function helloFunc()
helloFunc "How is the weather?" Fine

输出如下:

Hello from a function.
How is the weather?
Fine
You gave me 2 arguments

输出中发生的事情是 helloFunc() 在每一行都做了一个回显。首先它回显了一个 Hello from a function,然后它继续回显变量 $1 的值,结果是你传递给 helloFunc"How is the weather?"。然后它将继续处理变量 $2,并回显其值,这是你传递的第二个项目:Fine。该函数将以回显 You gave me $# arguments 结束。注意,第一个参数是一个用双引号括起来的单个字符串 "How is the weather?"。第二个参数 Fine 没有空格,所以不需要引号。

除了使用 $1$2 等之外,你还可以通过使用变量 $# 来确定传递给函数的参数数量。这意味着你可以创建一个接受可变参数数量的函数。

关于 bash 函数的更多细节,网上有很多好的参考资料。这里有一个可以让你入门的资料

我希望你能了解到函数如何在你的 bash 脚本中提供巨大的灵活性。

数值比较 []

如果你想进行数字比较,你需要在方括号 [] 中使用以下运算符之一:

  • -eq (等于)
  • -ge (等于或大于)
  • -gt (大于)
  • -le (小于或等于)
  • -lt (小于)
  • -ne (不相等)

因此,举例来说,如果你想看 12 是否等于或小于 25,可以像 [ 12 -le 25 ] 这样。当然,12 和 25 可以是变量。例如,[ $twelve -le $twentyfive ]。(LCTT 译注:注意保留方括号和判断语句间的空格)

if 和 elif 语句

那么让我们用数字比较来介绍 if 语句。Bash 中的 if 语句将以 if 开始, 以 fi 结束。if 语句 以 if 开始,然后是你想做的检查。在本例中,检查的内容是变量 numberOne 是否等于 1。如果 numberOne 等于 1,将执行 then 语句,否则将执行 else 语句。

#!/bin/bash

numberTwelve=12

if [ $numberTwelve -eq 12 ]
then
        echo "numberTwelve is equal to 12"
elif [ $numberTwelve -gt 12 ]
then
        echo "numberTwelve variable is greater than 12"
else
        echo "neither of the statemens matched"
fi

输出如下:

[zexcon@fedora ~]$ ./learnToScript.sh
numberTwelve variable is equal to 12

你所看到的是 if 语句的第一行,它在检查变量的值是否真的等于 12。如果是的话,语句就会停止,并发出 numberTwelve is equal to 12 的回显,然后在 fi 之后继续执行你的脚本。如果变量大于 12 的话,就会执行 elif 语句,并在 fi 之后继续执行。当你使用 ifif/elif 语句时,它是自上而下工作的。当第一条语句是匹配的时候,它会停止并执行该命令,并在 fi 之后继续执行。

字符串比较 [[]]

这就是数字比较。那么字符串的比较呢?使用双方括号 [[]] 和以下运算符等于或不等于。(LCTT 译注:注意保留方括号和判断语句间的空格)

  • = (相等)
  • != (不相等)

请记住,字符串还有一些其他的比较方法,我们这里不会讨论,但可以深入了解一下它们以及它们是如何工作的。

#!/bin/bash

#variable with a string
stringItem="Hello"

#This will match since it is looking for an exact match with $stringItem
if [[ $stringItem = "Hello" ]]
then
        echo "The string is an exact match."
else
        echo "The strings do not match exactly."
fi

#This will utilize the then statement since it is not looking for a case sensitive match
if [[ $stringItem = "hello" ]]
then
        echo "The string does match but is not case sensitive."
else
        echo "The string does not match because of the capitalized H."
fi

你将得到以下三行:

[zexcon@fedora ~]$ ./learnToScript.sh
The string is an exact match.
The string does not match because of the capitalized H.
[zexcon@fedora ~]$

while 循环

在结束这个系列之前,让我们看一下循环。一个关于 while 循环的例子是:“当 1 小于 10 时,在数值上加 1”,你继续这样做直到该判断语句不再为真。下面你将看到变量 number 设置为 1。在下一行,我们有一个 while 语句,它检查 number 是否小于或等于 10。在 dodone 之间包含的命令被执行,因为 while 的比较结果为真。所以我们回显一些文本,并在 number 的值上加 1。我们继续执行,直到 while 语句不再为真,它脱离了循环,并回显 We have completed the while loop since $number is greater than 10.

#!/bin/bash

number=1

while [ $number -le 10 ]
do
        echo "We checked the current number is $number so we will increment once"
        ((number=number+1))
done
        echo "We have completed the while loop since $number is greater than 10."

while 循环的结果如下:

[zexcon@fedora ~]$ ./learnToScript.sh
We checked the current number is 1 so we will increment once
We checked the current number is 2 so we will increment once
We checked the current number is 3 so we will increment once
We checked the current number is 4 so we will increment once
We checked the current number is 5 so we will increment once
We checked the current number is 6 so we will increment once
We checked the current number is 7 so we will increment once
We checked the current number is 8 so we will increment once
We checked the current number is 9 so we will increment once
We checked the current number is 10 so we will increment once
We have completed the while loop since 11 is greater than 10.
[zexcon@fedora ~]$

正如你所看到的,实现这一目的所需的脚本量要比用 if 语句不断检查每个数字少得多。这就是循环的伟大之处,而 while 循环只是众多方式之一,它以不同的方式来满足你的个人需要。

总结

下一步是什么?正如文章所指出的,这是,面向 Bash Shell 脚本初学者的。希望我激发了你对脚本的兴趣或终生的热爱。我建议你去看看其他人的脚本,了解你不知道或不理解的地方。请记住,由于本系列每篇文章都介绍了数学运算、比较字符串、输出和归纳数据的多种方法,它们也可以用函数、循环或许多其他方法来完成。如果你练习所讨论的基础知识,你将会很开心地把它们与你还要学习的所有其他知识结合起来。试试吧,让我们在 Fedora Linux 世界里见。


via: https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-3

作者:Matthew Darnell 选题:lujun9972 译者:wxy 校对:wxy

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

从我们的新电子书中获得关于在 Linux 上安装应用的所有不同方法的信息。

 title=

当你想在你的手机上尝试一个新的应用时,你打开应用商店并安装该应用。这很简单,很快速,很高效。在这种提供应用的模式中,手机供应商可以让你确切地知道到哪里去获得一个应用,而应用的开发者也知道将他们的应用放在哪里,以便人们能够找到它们。

在手机使用这种创新的软件分发模式之前,Linux 正以“软件仓库”的形式使用它。正如这个术语所暗示的,这些是在互联网上传应用的地方,这样 Linux 用户就可以从一个中心位置浏览和安装它们。这个术语被缩短为 “repo”(代表 “repository”,而不是 “reposession”),但无论你叫它“仓库”、“应用商店”、“软件中心”、“包管理器”,还是其他什么,它都是一个好系统,几十年来一直为 Linux 桌面用户服务。

最起码在 Linux 上安装应用很像在手机上安装应用。如果你能用一个安装,你也可以用另外一个安装。

软件中心

在 GNOME 桌面上,你在桌面上看到的软件仓库是一个应用,简单地说,叫 “ 软件 Software ”。你可以把这个应用看成是一个极其特殊的网页浏览器。它寻找可以从互联网上安装的软件,将所有可用的软件收集到分类中,并将其显示在你的桌面上。

 title=

在开始屏幕中,你有几个选项:

  • 搜索一个你已经熟悉的应用。要做到这一点,点击窗口左上角的放大镜图标。
  • 按类别浏览。这可以在窗口的底部找到。
  • 按最近时间和推荐浏览。这些都列在动画横幅和它下面的图标中。

当你点击一个你看起来感兴趣的应用时,会打开一个功能页面,这样你就可以看到截图并阅读软件的简短描述。

安装一个应用

当你找到了你想要安装的软件,点击应用功能页面顶部的“ 安装 Install ”按钮。

 title=

安装完毕后,“ 安装 Install ”按钮就会变成“ 启动 Launch ”按钮,所以你可以选择启动你刚刚安装的应用。

如果你现在不想启动该应用,你可以随时在你的“ 活动 Activities ”菜单中找到它,它与你电脑上已有的所有其他应用放在一起。

从更多的地方获得更多的应用

你的 Linux 桌面有专门为它打包的应用,但在今天的世界里,到处都有很多开源的东西。你可以通过将“第三方”仓库添加到你的桌面应用商店中来获得更多的应用。当然,这些术语并不完全正确:在一个无论如何都是由每个人创造软件的世界里,什么是“第三方”?当没有任何东西需要花钱时,什么是应用商店?撇开术语不谈,一个流行的第三方软件库是 Flathub.org

要在你的 Linux 桌面上增加另一个应用源,基本上是“安装”一个源到你的应用商店。对于 Flathub,下载 Flathub 仓库文件,然后用 GNOME 软件安装它,就像它是一个应用一样。它不是一个应用。它是一个应用 ,但过程是一样的。

了解更多

如果没有一堆其他方法来执行任何给定的任务,那就不是 Linux 了。灵活性是建立在 Linux 系统中的,所以虽然 GNOME “软件”提供了一种获取应用的简单方法,但还有很多其他方法,包括安装脚本、安装向导、AppImages,当然还有直接从源代码编译。你可以从我们的新电子书 在 Linux 上安装应用 中获得所有这些安装方法的信息。它是免费的,所以请阅读吧。


via: https://opensource.com/article/22/2/installing-applications-desktop-linux

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

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

Ubuntu 22.04 即将面世。但是,你对它的发布有什么期望?在这里,我分享一些我希望看到的东西。

随着 Ubuntu 22.04 LTS 的到来,我们都在急切地等待着体验 Ubuntu 22.04 引入的功能

在没有对 Ubuntu 22.04 进行全面亲身体验的情况下,我不能确定它是否令人印象深刻。但是,我确实对我想在 Ubuntu 22.04 中看到的东西有一些想法。

现在提出一些修改要求可能有点太晚了,但我还是希望能有最好的结果。

一些重点包括:

1、在所有的应用程序中保持一致的主题形象

任何试图在 Ubuntu 上安装 KDE 应用的人都会知道,主题不一致的情况比比皆是。更糟糕的是,Libadwaita 的加入只会让更多的应用程序显得格格不入。

为了解决这个问题,我认为需要一个替代解决方案组合。

首先,默认采用 Ubuntu 的 Yaru 主题的定制 Libadwaita 将使几乎所有为 Gnome 和 GTK 构建的应用程序再次保持一致。然而,这仍然不能解决 Qt/KDE 应用程序的问题。

对于这些,需要一个类似于 Kvantum 的解决方案。尽管 Kvantum 有点“难”,但我真的相信,一个有 Canonical(Ubuntu 的母公司)全力支持的解决方案能够克服 Kvantum 所面临的所有挑战。

Ubuntu 的外观和感觉是其决定性的特征之一,关键是要在每个应用程序中保持这种外观,以确保其视觉吸引力。

2、使用 GNOME 40 中引入的水平停靠区

尽管有些激进,Gnome 40 是 Gnome 向未来的一次飞跃,有几个令人兴奋的功能。然而,这些创新的功能中有许多并没有进入 Ubuntu 22.10。

其中最值得注意的是水平停靠区。对我来说,我发现它极大地提高了我的工作效率,因为我不必再像以前那样把鼠标移到屏幕的左边。我相信很多 Ubuntu 用户同意我的观点,但是 Canonical 坚持认为左边的位置是最好的。

我不是说他们应该把停靠区移到底部,这毕竟是 Ubuntu 的一个决定性特征,只是给用户一个这样的选择而已。Ubuntu 在设置程序中已经有一个自定义“外观”部分,所以我认为在那里增加一个简单的切换开关不会太难。

3、找回混合主题

升级到 Ubuntu 21.10 后,我很失望地发现 混合主题选项消失了。虽然这只是个小问题,但我确实发现自己很怀念这个选项,并不断地想办法把它找回来。

我认为,让用户有能力轻松地定制他们的桌面是很重要的,把这个选项带回来对改善这个问题有很大的帮助。

我理解他们想摆脱它是因为 Ubuntu 和 GNOME 默认主题颜色的冲突。但是,我喜欢它原来的样子。

4、改造后的软件中心

随着 Canonical 不断推动人们使用 snap 应用程序(一种与所有发行版兼容的通用打包格式),创建一个新的软件中心将是有意义的。

虽然 Snap 商店已经存在,但它只是 Gnome 软件的一个复刻,而它以其速度慢和 bug 多而出名。

随着 Gnome 41 的发布,这一点在一定程度上得到了缓解,尽管这些改进不太可能被包含在 Ubuntu 22.04 中。

如果有一个新的软件中心诞生,或者现有的软件中心得到重大改造,我将会很高兴。

如果 Ubuntu 要推出一个新的应用程序商店,它可能会使用 Flutter 来构建,就像他们的新安装程序。虽然我个人并不喜欢 Ubuntu 开始转向 Flutter 的决定,但这将有助于确保其所有变体的一致性。

5、改进的自定义选项

有些人喜欢保持简单,而有些人则喜欢自定义选项来改变外观/感觉。

Ubuntu 22.04 LTS 不需要引入任何疯狂的东西,但是简单地在默认情况下增加一些额外的控制,你可以在 GNOME 调整 中找到,应该可以做到这一点。

目前,外观调整是相当有限的,我们可以使用更多的选项。

6、让 Snap 应用程序少一些

我知道,我知道。Snap 应用程序无处不在,而且它们与多个发行版兼容。但是,它们的速度也更慢,而且只能从专有的 Snap 商店安装。

当然,你可以选择 Flatpak 和预建的二进制文件。但是,Snap 的专有方式仍然是许多用户不喜欢的。

另一方面,Ubuntu 的原生 Apt 软件包管理器 速度更快,而且有更多的应用程序可用。这导致了用户体验的明显改善,尽管这种改善在各发行版中并不连续。

不幸的是,Snap 实际上是由 Ubuntu 背后的同一个团队开发的,所以删除它是相当不可能的。

7、卸载应用程序的统一方式

Ubuntu 在为终端用户提供便利方面有着很好的声誉。

为了对抗 Linux 软件包的碎片化,Ubuntu 能否引入一种轻松卸载应用程序的方法,无论是 Flatpak/Deb/Snap?

考虑到外面有各种各样的软件包,现在是时候让我们有一个处理所有软件包的单一解决方案了。

在 Ubuntu 22.04 LTS 中不太可能看到它的解决方案,但我希望在下一个版本中能做到!

总结

很明显,你可能不会看到所有这些期望的事情在下一个版本中发生。然而,即使 Ubuntu 22.04 LTS 在这个方向上做了一些努力,我们也有希望在未来的版本中看到它们。

你希望在 Ubuntu 22.04 中看到哪些新功能?请在下面的评论中告诉我们!


via: https://news.itsfoss.com/things-i-want-ubuntu-22-04-lts/

作者:Jacob Crume 选题:lujun9972 译者:wxy 校对:wxy

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

Snap 软件包并不是每个人都喜欢的,但它们是 Ubuntu 生态系统中不可或缺的一部分。

它有其优点和缺点。其中一个缺点是,Snap 包通常体积较大,占用大量的磁盘空间。如果你的磁盘空间不够用,特别是在根分区上,这可能是一个问题。

让我分享一个巧妙的技巧,你可以用它来减少 Snap 包使用的磁盘空间。

清理旧的 Snap 包版本以释放磁盘空间

与 snap 有关的系统文件都存放在 /var/lib/snapd 目录下。根据你所安装的 Snap 包的数量,这个目录的大小可能在几 GB。不要只听我的一面之词。通过 使用 du 命令检查目录大小 来进行评估。

$ sudo du -sh /var/lib/snapd
5.4G    /var/lib/snapd

你也可以使用磁盘使用分析器这个 GUI 工具来查看 Ubuntu 的磁盘使用情况

Snap disk usage

这可真够多的,对吧?你可以在这里腾出一些磁盘空间。根据设计,Snap 至少会在你的系统上保留一个你所安装的软件包的旧版本。你可以通过使用 Snap 命令看到这种行为:

snap list --all

你应该看到同一个软件包被列了两次,而且版本和修订号都不同。

Snap keeps at least two versions of each package

为了释放磁盘空间,你可以删除额外的软件包版本。你怎么知道要删除哪一个呢?你可以看到,这些较旧的软件包被标记为“禁用”。

不要担心。你不需要手动操作。由于 Alan Pope 在 Snapcraft 团队工作时写的一个灵巧的 bash 脚本,有一种自动的方法可以做到。

我希望你知道 如何创建和运行 bash shell 脚本。基本上,创建一个名为 clean-snap.sh 的新文件,并在其中添加以下几行。

#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
    while read snapname revision; do
        snap remove "$snapname" --revision="$revision"
    done

保存它并关闭编辑器。要运行这个脚本,把它放在你的主目录中,然后 在 Ubuntu 中打开终端,运行这个命令:

sudo bash clean-snap.sh

你可以看到,它开始删除旧版本的软件包。

Removing old snap package versions

如果你现在检查 Snap 使用的磁盘空间,你会发现现在的目录大小已经减少了。

$ sudo du -sh /var/lib/snapd
3.9G    /var/lib/snapd

如果这对你有用,你可以偶尔运行这个命令。

这个脚本是如何工作的?

如果你对这个脚本的作用感到好奇,让我来解释一下。

你已经看到了 snap list -all 命令的输出。它的输出被传递给 awk 命令。Awk 是一个强大的脚本工具。

awk '/disabled/{print $1, $3}' 部分在每一行中寻找字符串 disabled,如果找到它,它将提取第一列和第三列。

这个输出被进一步传递给 whileread 命令的组合。读取命令获取第一列的 Snap 包名和第三列的修订号变量。

然后,这些变量被用来运行 snap remove 命令,用 Snap 包名和它的修订号来删除。

只要发现有包含 disabled 字符串的行,就会运行 while 循环。

如果你对 shell 脚本略知一二,这一切就很容易理解了。如果你不熟悉,我们有一个 初学者的 bash 教程系列 给你。

你拿回了你的空间了吗?

你可能会看到一些论坛建议将 Snap 软件包的保留值设置为 2。

sudo snap set system refresh.retain=2

我认为现在不需要了。现在 Snap 的默认行为是为任何软件包保存两个版本。

总而言之,如果你的空间不够用,摆脱额外的软件包版本肯定是 释放 Ubuntu 磁盘空间的方法 之一。

如果这个教程帮助你释放了一些空间,请在评论区告诉我。


via: https://itsfoss.com/clean-snap-packages/

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

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