2022年1月

这些文章包含了黑科技、鲜为人知的事实,以及在使用 Git 时可以派上用场的技巧和窍门。

 title=

Git 是代码协作开发工作流程中不可或缺的一部分。无论你是初学者还是专家,第一件事就是在使用开源代码时需要学习这个功能强大的版本控制系统。对于 Git,不需要知道所有事情,但是了解一些特殊的黑科技可以让你在 GitLab 等平台上更轻松地分享代码,因此你可以与不同地方的开发人员协作。如果有什么没把握的地方,git --help 可以帮助你。

我每天都为了解 Git 所提供的控制能力而感到惊讶。没有哪种情况是你无法恢复到早期版本的,无论你所处的情况是多么不可能或棘手。

在 2021 年我们发布了大量 Git 的文章;我只汇总了其中前 10 篇,这些文章包含了各种黑科技、鲜为人知的事实,以及在使用 Git 时可以派上用场的技巧和窍门。

使用 git stash 命令的实用指南

Ramakrishna Pattnaik 解释了 git stash 命令 的功能。这篇文章重点介绍 git stash 如何帮助你列出、检查、保存和恢复更改,以确保切换分支时的无忧体验。它还可以帮助你跟踪在本地无需提交的更改,而同时保持干净的工作目录。

5 个让你的 Git 技能更上一层楼的 Git 命令

Seth Kenlon 详细介绍了 五个鲜为人知的 Git 命令,它们可以让你的生活更轻松。开发人员可以使用 git whatchangedgit stashgit worktreegit cherry-pick 等命令来节省时间。

Git cherry-pick 简介

Rajeev Bera 教程将引导你了解 git cherry-pick 命令 是什么,为什么和如何使用它,并列出 git cherry-pick 可以帮助你避免棘手的情况所有用例。

3 个使用 git cherry-pick 命令的原因

我分享了 利用 git cherry-pick 如何帮助你避免冗余,一次性处理多个提交并恢复丢失的更改。

使用 git worktree 自由地尝试你的代码

git stash 命令负责将更改保存到工作目录。Seth Kenlon 向我们介绍了 git worktree 和几个 git worktree 用例,它们可以帮助你将存储库恢复到已知状态。

Git 上下文切换的 4 个技巧

Olaf Alders 的这篇文章讨论了使用 Git 时 切换分支的四种不同方式 的利弊。这些选项将帮助你简化工作流程,并保持干净的工作目录,而不会丢失你的更改。

查找 Git 提交中的更改

Seth Kenlon 解释了如何利用如 git log 和 git whatchanged 等简单命令来提取有关 Git 提交内容中更改的特定信息。这是一个有用的快捷方式,而且名字很容易记住。

管理主目录的 7 个 Git 技巧

Seth Kenlon 分享了 使用 Git 管理和组织 $HOME 变量 的注意事项,并解释了它如何让他的跨设备生活更实用。更好的是,这让他可以自由地尝试新想法,因为他知道他可以轻松地将它们回滚。

GitOps 与 DevOps:有什么区别?

Bryant Son 向你介绍了 GitOps,他将其描述为 DevOps 的进化版本,它使用 Git 作为单一事实来源。这篇文章还列出了其它有用资源,可用于学习 DevOps 并在开源领域找到工作。

开始使用 Argo CD

Ayush Sharma 详细介绍了 Argo CD 的优势,这是一种基于拉取式的 GitOps 开发工具。Argo CD 通过在 Git 中管理 Kubernetes 清单并将它们同步到集群中,为你提供两全其美的体验。

你能想到其他让你的生活更轻松的 Git 技巧吗?请在评论中告诉我们。


via: https://opensource.com/article/22/1/git-tutorials

作者:Manaswini Das 选题:lujun9972 译者:stevenzdg988 校对:wxy

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

这的确是个好消息!

如果你喜欢玩复古游戏,你可能已经接触过复古游戏机模拟器。顺便说一句,所谓“ 模拟器 Emulator ”(仿真器)主要是指允许主机系统运行为另一系统设计的游戏的软件或硬件。

最近,Cemu 成功引起了开源社区的注意力。它是众多复古电子游戏模拟器之一,可以让你玩为任天堂 Wii U 定制的游戏。然而,到目前为止,它在一个主要方面与大多数模拟器不同,即它是闭源的,但这即将改变。

Cemu 简介

Cemu 是一个流行的基于软件的复古电子游戏模拟器,专门模拟任天堂 Wii U 游戏,它是这类模拟器中第一个。它利用了 OpenGL 和 Vulkan 来运行游戏。

多年来,它已经有了显著的进展,现在可以 玩整个 Wii U 库中的 51% 的游戏。这包括《马里奥卡丁车 8》和《塞尔达传说:荒野之息》等热门游戏。

虽然它早在 2015 年就发布了,但 Cemu 只能运行在 Windows 上。不过,开发者发布的新路线图指出,Cemu 应该很快就会移植到 Linux 上了。

而且,最令人关注的是,Cemu 将走向开源!

通往开源和 Linux 之路

路线图总共包括了由开发人员计划的八个里程碑。其中包括计划开发一个 Linux 移植版并向社区提供代码。

谈到 Cemu 的开源问题,开发者计划在 2022 年完成这一工作。所以,你不应该对此寄予厚望。

迁移到 Linux 涉及到将源代码从 C 语言改写成 C++ 语言,并从 Visual Studio 迁移到 cmake。

以下是开发者对将 Cemu 引入 Linux 的看法:

我们最终想提供一个原生的 Linux 版本。这一直是一个正在进行的副计划,尽管由于优先级较低和依赖于其他任务而进展相对缓慢,但现在已经完成了大约 70% 的工作。

开发人员还提到,移植过程伴随着其他工作,如软件 H264 解码器和 cubeb 后端。由于主要的工作已经完成,可以说 Cemu 很快就会出现在 Linux 上。

其他计划

开发人员已经考虑将 LLVM 作为 CPU JIT 后端,用于将 PowerPC(Wii U 的主机架构)转换为 ARM 等 X86 架构。

他们还刚刚开始着手开发一个新的着色器反编译器,以减少着色器编译时间和卡顿。

你可以参考 官方路线图 了解更多细节。

总结

这对渴望做出贡献并使 Cemu 变得更好的复古游戏爱好者来说绝对是一份大礼。

Cemu 最终将加入许多流行的、开源的任天堂游戏机模拟器的行列,如 Citra、Dolphin 和 Yuzu。

你对 Cemu 的开源有什么看法?复古游戏模拟器应该是闭源的还是开源的?


via: https://news.itsfoss.com/cemu-nintendo-linux/

作者:Rishabh Moharir 选题:lujun9972 译者:wxy 校对:wxy

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

从本周 1 月 20 日起,Ubuntu 21.04 将不再收到任何更新。是时候考虑你的升级选择了!

Ubuntu 21.04 运行良好、添加了有趣的功能,也包括一些值得注意的变化,如 对多显示器的改进、用户界面的改进、支持 GNOME 40 的应用程序等等。

现在,是时候升级了。

Ubuntu 21.04 的更新支持在本周,即 1 月 20 日 结束。

你将不再收到任何关于 Ubuntu 21.04 系统的更新。如果你一直在使用 Ubuntu 或其某种风格,如 Ubuntu MATE,你需要将你的系统升级到 Ubuntu 21.10。

顺便提一句,Ubuntu 的非 LTS 版本维护期为 9 个月。如果你是 Linux 的新手的话,我建议你了解一下 Ubuntu 发布周期

所以,现在你必须升级到 Ubuntu 21.10,然后再为 2022 年 7 月的另一次升级做好准备。不过,这样你的时间就充裕多了!

升级到 Ubuntu 21.10

除非你有一个没有连接到互联网的系统,并且你希望它继续使用 Ubuntu 21.04,否则建议你现在就升级。

在没有任何更新的情况下,你的系统将继续受到新的安全风险的影响。所以,在做决定之前要记住这一点。

Ubuntu 21.10 引入了许多变化,包括 GNOME 40、Linux 内核 5.13、对高质量蓝牙音频编解码器的支持、暗色/浅色主题等等。

所以,你可能要开始考虑你的升级选择了。

你可以继续使用 Ubuntu,升级到 21.10。如果你考虑用不同的东西进行全新安装,也可以尝试像 Pop!\_OS 21.10 这样的发行版。

不要忘了,还有各种的 Ubuntu 的风格版呢。

要开始升级,你只需要搜索 “ 软件更新器 Software Updater ” 并点击它,让它寻找升级并通知你。

无论你有什么发行版,软件更新器或你的软件中心应该给你提供升级选项,或者你可以在系统设置中找到它。

而且,然后按照屏幕上的指示,再点击几下就可以进行升级过程了。

重要的是,为了安全起见,在执行升级之前要备份你的必要数据。

在一些像 Ubuntu MATE 这样的版本中,你也可以选择使用终端,输入以下命令开始升级:

sudo do-release-upgrade

通往 Ubuntu 22.04 LTS 之路

Ubuntu 22.04 LTS 的 预期功能列表 应该不会让你失望。因此,你可以在它发布时轻松地升级到它,或者留在 Ubuntu 21.10 上,等待 7 月份支持结束时升级。

你是否期待着 Ubuntu 22.04 LTS 在今年 4 月的发布?或者,你愿意坚持使用 Ubuntu 21.10 直到 2022 年 7 月?


via: https://news.itsfoss.com/ubuntu-21-04-eol/

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

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

星链卫星影响的图像两年间增加了 35 倍

SpaceX 旗下“星链”互联网服务需要在轨运行密集的卫星群来提供低延迟网络连接服务。目前已有超过 1500 颗在轨卫星,美国 FCC 此前已经批准了 12000 颗星链卫星的发射。在过去的两年时间里,受星链卫星轨迹影响的图像数量 增加了 35 倍。研究人员估计,如果星链按计划发射所有卫星,几乎每一张观测图像中都至少有一条星链卫星的轨迹。SpaceX 在新一代星链卫星上安装了遮光罩,使卫星亮度下降了大约 4.6 倍,但仍然高于解决问题设定的目标。目前图像中的星链卫星轨迹细小,加之可以通过软件进行识别并处理,所以对天文观测的影响不算大。研究人员估计,目前而言,因为与星链卫星轨迹重合而导致错过罕见天文事件的概率只有 0.04%,但对黄昏观测影响最为严重。

老王点评:这一问题会随着卫星数量的增加而进一步恶化。

2021 年针对 Linux 的恶意软件增长了 35%

根据 一份报告,2021 年,针对 Linux 系统的恶意软件与 2020 年相比上升了 35%。XorDDoS、Mirai 和 Mozi 是最普遍的系列,占 2021 年观察到的所有针对 Linux 的恶意软件攻击的 22%。之前的 另外一份报告 也证实了这个增长趋势,发现 2020 年 Linux 恶意软件家族比前一年增加了 40%。

老王点评:从好的地方看,这代表 Linux 越来越流行了 ?

FFmpeg 5.0 发布

FFmpeg 被多媒体应用广泛使用,其中之一是 VLC。在这个 版本 中,删除了大量废弃的 API,其中一些 API 甚至在 2013 年就被标识为废弃了,在这个版本之前已经有 4 年没有删除过废弃 API 了。所以如果你的应用使用了废弃 API 的话,请注意升级问题。除了 API 方面的变化,此版本还增加了许多功能,详情请参考 变更日志。此外,FFmpeg 将从 5.0 开始转向基于时间的发布节奏,预期每年都发布一个重大版本,以及每隔一年一个 LTS 版本,5.0 将是第一个 LTS 版本。

老王点评:虽然这个软件自己都没有个 GUI,但是却是很多华丽的多媒体应用的动力所在。

配置你的系统使用无根容器。

 title=

容器是现代计算的一个重要组成部分,随着围绕容器的基础设施的发展,新的和更好的工具开始浮出水面。过去,你只需用 LXC 就可以运行容器,然而随着 Docker 得到了普及,它开始变得越来越复杂。最终,我们在 Podman 得到了我们所期望的容器管理系统:一个无守护进程的容器引擎,它使容器和吊舱易于构建、运行和管理。

容器直接与 Linux 内核能力(如控制组和命名空间)交互,它们在这些命名空间中产生大量的新进程。简而言之,运行一个容器实际上就是在 Linux 系统内部运行一个 Linux 系统。从操作系统的角度来看,它看起来非常像一种管理和特权活动。普通用户通常不能像容器那样自由支配系统资源,所以默认情况下,运行 Podman 需要 root 或 sudo 权限。然而,这只是默认设置,而且这绝不是唯一可用的设置。本文演示了如何配置你的 Linux 系统,使普通用户可以在不使用 sudo 的情况下(“ 无根 rootless ”)运行 Podman。

命名空间的用户 ID

内核命名空间 本质上是一种虚构的结构,可帮助 Linux 跟踪哪些进程属于同一类。这是 Linux 中的“队列护栏”。一个队列中的进程与另一个队列中的进程之间实际上没有区别,但可以将它们用“警戒线”彼此隔离。要声明一组进程为“容器”,而另一组进程为你的操作系统,将它们分开是关键。

Linux 通过用户 ID(UID)和组 ID(GID)来跟踪哪个用户或组拥有的进程。通常情况下,一个用户可以访问一千个左右的从属 UID,以分配给命名空间的子进程。由于 Podman 运行的是分配给启动容器的用户的整个从属操作系统,因此你需要的不仅仅是默认分配的从属 UID 和从属 GID。

你可以用 usermod 命令授予一个用户更多的从属 UID 和从属 GID。例如,要授予用户 tux 更多的从属 UID 和从属 GID,选择一个还没分配用户的适当的高 UID(如 200000),然后将其增加几千:

$ sudo usermod \
    --add-subuids 200000-265536 \
    --add-subgids 200000-265536 \
    tux

命名空间访问

对命名空间数量也有限制。这通常被设置得很高。你可以用 systctl,即内核参数工具来验证用户的命名空间分配:

$ sysctl --all --pattern user_namespaces
user.max_user_namespaces = 28633

这是很充足的命名空间,而且可能是你的发行版默认设置的。如果你的发行版没有这个属性或者设置得很低,那么你可以在文件 /etc/sysctl.d/userns.conf 中输入这样的文本来创建它:

user.max_user_namespaces=28633

加载该设置:

$ sudo sysctl -p /etc/sysctl.d/userns.conf

在没有 root 权限的情况下运行一个容器

当你设置好你的配置,重启你的计算机,以确保你的用户和内核参数的变化被加载和激活。

重启后,试着运行一个容器镜像:

$ podman run -it busybox echo "hello"
hello

容器像命令一样

如果你是第一次接触容器,可能会觉得很神秘,但实际上,它们与你现有的 Linux 系统没有什么不同。它们实际上是在你的系统上运行的进程,没有仿真环境或虚拟机的成本和障碍。容器和你的操作系统之间的区别只是内核命名空间,所以它们实际上只是带有不同标签的本地进程。Podman 使这一点比以往更加明显,当你将 Podman 配置为无根命令,容器感觉更像命令而不是虚拟环境。Podman 使容器和吊舱变得简单,所以请试一试。


via: https://opensource.com/article/22/1/run-containers-without-sudo-podman

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

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

这是 Linux 走向大众最重要的一件事。

你可能看过 最近 Linus Tech Tips 关于切换到 Linux 的视频,以及 他对 KDE 软件的一些抱怨的那个视频。对于那些关注此事的人,我想让你们知道,我们(KDE)正在努力修复 Linus 提出的问题,你们可以在 这里 跟踪我们的进展。值得庆幸的是,大部分的问题都相当小,应该很容易解决。

关于桌面 Linux 需要什么才能成为主流的问题。Sway 开发者 Drew DeVault 针对该视频发表了一篇文章,而这篇博文是我的版本。Drew 强调了可访问性,我也同意,但结论略有不同。

桌面 Linux 需要预装在零售硬件上才能在主流市场取得成功

就是这样。

请允许我解释一下。

人们经常被功能和可用性所困扰,这些都很重要,但它们只是达到目的的手段,本身并不是目的。如果人们根本不能得到它,质量就毫无意义。而如果没有可访问的发行版,人们就无法得到它。高质量的 Linux 发行版还不够;它们需要被预装在你可以在主流零售店买到的硬件产品上。“主流人群”会购买他们可以触摸和拿起的产品;如果在主流商店找不到它,它就不存在。

想一想,为什么普通人都使用 Windows 或 macOS?因为他们购买的实体电脑包含了它。iOS 或 Android 呢?它被默认装在了他们的实体智能手机上。对于“主流人群”来说,不存在用一个新的操作系统替换设备的操作系统的想法。只有 “三点”用户 才会这么做,而他们只占市场的 5% 左右。如果获得你的操作系统的唯一途径是自己安装,那么你就没有机会在主流市场取得成功。

至于功能,人们通常只使用可用功能的很小的一部分。在可用性方面,大多数用户是 记住他们的软件如何使用而不是理解它 —— 如果你真的需要,你可以记住任何东西。一个更好的用户界面会有所帮助,但是对于那些记忆这些的人来说并不是必需的,而它主要有利于那些能够识别模式,并欣赏逻辑、一致性和良好设计的高级用户(市场上 30% 的“二点及以上”人群)。因此,这些东西本身就不够好。

但这并不意味着我们应该忘记功能和可用性!一点也不。但是如果我们的目标是“走向主流”,我们就必须了解真正的受众:是硬件供应商,而不是终端用户。我们的目标是让软件产品有足够的吸引力,以便在供应商选购时被他们选中,因为它基本上就是这样做的。像苹果这样为知名产品定制自上而下的硬件和软件的公司很少。大多数公司都建立在第三方软件之上,这些软件需要他们内部软件团队进行最少的整合和定制工作。如果你的软件不能胜任,他们会转向下一个选择。因此,当一些硬件供应商有需求时,你的软件最好已经准备好了!

而硬件供应商需要什么?

  • 灵活性。你的软件必须容易适应他们的任何类型的设备,而不需要大量的定制工程,他们将在产品的生命周期中负责支持。
  • 能使他们的设备看起来不错的功能。对其物理硬件特性的支持、良好的性能、令人愉快的用户界面……人们购买它的理由基本上是这些。
  • 稳定性。不能崩溃并将用户抛弃在命令行终端提示符下。必须可以实际工作。不能让人感觉像一个业余的科学展览会项目。
  • 可用性要足够好,以减少支持成本。当出现问题时,“主流人群”会联系他们的硬件供应商。可用性需要足够好,以便尽可能少地发生这种情况。

它不需要完美。它只需要做这些事情。这就是 Windows 在 90 年代征服了个人电脑市场的方式,尽管它很糟糕!而我们的东西要好得多!

我看到有证据表明 KDE 已经是这样了。Pine 在 PinePhonePineBook Pro 上分别为 Manjaro 提供了 Plasma 的移动版和桌面版。Valve 也为 Steam Deck 选择了 Plasma 的桌面版,在他们的新版 SteamOS 中取代了 GNOME。我认为 KDE 软件定位良好,并且一直在变得更好。因此,让我们继续加倍努力提供硬件供应商销售其出色产品所需的东西。

原文由 KDE 开发者 Nate Graham 发表在他的 博客 PointiestStick 中。 本文经许可后转载。所表达的观点代表作者自己,可能不能反映我们的观点。


via: https://news.itsfoss.com/what-desktop-linux-needs-to-succeed-in-the-mainstream/

作者:Nate Graham 选题:lujun9972 译者:wxy 校对:wxy

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