微软加码对 GitHub 上的公开代码搜索的限制

微软,你在 GitHub 上的行为究竟是何目的?

许多用户对 微软收购 GitHub 这一事实感到失望。当然,这并非用户能阻止的事情。

因此,有些人选择转向 GitLab 或其他 GitHub 替代品,而部分人则决定坚守在 GitHub,不论他们的感受如何。

GitHub 是无数开发者熟悉的地方。无论现在是谁拥有它,这个平台都有它的价值,所以用户仍然根据自己的需求来选择使用它。

不幸的是,自微软加入之后,平台上才有了某些变化,两者之间似乎存在一些关联,而且部分改变让用户觉得不便。被关注起来的这个变化就是 2023 年 6 月实施的。

现在需要登录才能搜索代码

一位 GitHub 用户/贡献者 抱怨 在未登录的情况下无法在公开仓库中搜索代码,这让人非常失望。

? 在 GitHub 上进行全局代码搜索已经需要登录用户操作,这样已经好几年了。现在所讨论的是仓库内搜索的情况。

下面是他的观点:

这真是让人感到恶心,这是对开源运动的亵渎。我必须指出,微软在这里是在滥用开源运动。

我们被告知这是出于安全考虑……但当我可以简单地克隆仓库,使用更专业的工具进行适当的搜索和分析时,那么这样的安全又是为了什么呢?

那么到底是什么原因呢?!你们还没有获得我们足够的数据吗?只是靠每次上厕所就能赚点钱,你们还要追踪我在看哪一行代码?

此外,他解释了在他认为应公开访问的仓库中搜索代码的不便。

我正在老旧的机器上使用,需要在我们自己的仓库中搜索东西,结果却做不到。我其实希望人们能够搜索我们的代码库。

那我该怎么做呢?我试过登录。但是我的密码管理器不在我手边,所以我不得不拿出我的手机。哦!现在我需要 2FA。然后我得回办公室拿我的 Yubi 密钥。旧的笔记本没有 USB-C 端口?好吧,现在我无能为力了。

这个变化不仅没必要,而且对你们自己的客户来说,简直是敌意。猖獗的敌意!

实际上,无法访问本应公开且对“所有人”开放的代码库让人极度不便。

这就是开源代码应该如何访问的,对吗?

Martin Woodward,GitHub 的开发者关系副总裁,对这个反馈简单地表示,这是一段时间以来的一个改变,主要是为了避免机器人。

@koepnick 的不便感到抱歉,虽然在很长一段时间里,我们在全仓库范围内的搜索都要求用户登录,但是当我们在 2023 年提升了搜索能力后,我们不得不将这一要求扩大到仓库内(参看 https://github.blog/changelog/2023-06-07-code-search-now-requires-login/)。

主要是确保我们的服务器能够支撑 GitHub 上的开发者负载,并帮助防止服务器被匿名请求等机器人行为压垮。

当然,这是一个大公司的预期回应。不幸的是,这并没有说服为什么要在 GitHub 上做出这样的改变,而其他平台并没有这个限制。

声明说的更多的是“何时实施了此项更改”。

幸运的是,代码搜索团队的一员 试图阐述他们通过限制获得的优势。

太长不看版:该策略可以减少滥用,但并不能阻止所有的机器人。

那么,让我们思考一下,作为科技行业的重要参与者,微软没有足够的基础设施来抵御机器人,而不是通过限制访问代码来做到这一点吗?难道没有其他方式来保护代码免受机器人和其他恶意抓取器的侵袭,而不需要禁用搜索功能吗?

此外,讨论中的一些用户指出,开源代码的全部意义就在于任何人,无论身份是已知还是未知,都应该可以访问。

尽管代码关联到了开源许可证,但是这个限制似乎违反了开源的概念。

微软是正在私下里试图控制 GitHub 上的开源利益吗? ?

? 也许微软需要重新考虑这个变动,来让事情变得好一些?或者,也许他们可以提供一个比声明中更好的解释?

(题图:MJ/d35ceb65-521d-4313-8e4c-60df0a898455)


via: https://news.itsfoss.com/microsoft-github-open-source-code/

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

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

硬核观察 #1199 把名字写到宇宙飞船上,它将在 2030 年到达木星

#1 把名字写到宇宙飞船上,它将在 2030 年到达木星

2024 年,一艘新的宇宙飞船将驶向木星,试图了解木星的卫星木卫二是否能够孕育生命。飞船将携带的不仅仅是高科技传感器:它还将携带一首诗和数十万个人类的名字。你可能是其中之一。那些在 2023 年底前提交的名字将搭乘欧罗巴号快船飞船进入太空,该飞船将于 2030 年进入木星轨道。这些名字最终将以微缩文字的形式印制在一角硬币大小的微型芯片上,然后连接到一块刻有诗歌的金属板上,这块金属板将伴随着飞船一起飞行。目前已经提交了将近 100 万个名字,中国大约提交了 16000 多个名字。

地址在此:https://europa.nasa.gov/message-in-a-bottle/sign-on/

消息来源:MSN

老王点评:说不定这个名字是你在这个世界所遗留最长的痕迹 —— 除了 GitHub 北极仓库。

#2 AWS 正在试验一种可以解决关键量子计算问题的芯片

AWS 在 re:Invent 大会宣布,这种新芯片有助于找出如何纠正在处理量子计算查询时偶尔会出现的错误 —— 比如将二进制代码从 1 翻转为 0。如果量子计算错误得到缓解,就能为更实用的量子计算铺平道路。AWS 称“这款芯片代表了量子计算纠错的重要一步”。

消息来源:The Verge

老王点评:有理想的企业,不仅仅会卖货、卖云计算,还会为十年后的世界花海量的钱。

#3 151 年之后,《大众科学》将不再提供杂志

大众科学 Popular Science 》(PopSci)杂志于 1872 年创刊,内容涵盖科学、技术和自然领域的所有相关故事。这些年来,情况发生了很大变化,该杂志在 2018 年改成了季刊,并在 2020 年后完全取消了实体版。但是最近,该杂志的所有者决定停止该杂志的发行。PopSci 将继续在其网站上提供文章,同时还将提供 PopSci Plus 订阅服务,该订阅服务可提供独家内容和杂志档案。

消息来源:The Verge

老王点评:继纸质杂志纷纷倒闭之后,连电子杂志都难以为继。

在 Linux 中玩乐:Cmatrix 之旅

玩得开心,安德森先生!

Cmatrix 是一款充满乐趣的 Linux 和 Unix 系统命令行程序。它可以模仿经典电影《 黑客帝国 Matrix 》系列中的场景,用绿色的字符流营造出雨一般的下落效果。

Cmatrix 命令

除了充满视觉冲击力的绿色字符流之外,你还可以发挥想象,利用这款有趣的命令做更多事情。

? 需要注意的是,Cmatrix 是一个 CPU 密集型的命令,所以请慎重使用它。

如何在 Ubuntu 及其他 Linux 系统中安装 Cmatrix

Cmatrix 已经被收录在几乎所有主要的 Linux 发行版的官方库中。如果你是 Ubuntu 用户,可以通过如下命令来安装 Cmatrix:

sudo apt install cmatrix

对于 Fedora 用户,应该使用以下命令进行安装:

sudo dnf install cmatrix

而对于 Arch Linux 用户,则可以使用 pacman 命令进行安装:

sudo pacman -S cmatrix

Cmatrix 的基础应用

cmatrix 命令自身提供了丰富的选项,你可以自由改变默认的绿色字符流的外观呈现。

加粗的字符

你可以选择使用 -b 选项,偶尔展示加粗的字符,

cmatrix -b

加粗的 Cmatrix 字符

或者,你也可以调整设置,让所有的字符都以加粗方式显示,

cmatrix -B

全部显示为加粗的字符

异步滚动

默认情况下,Cmatrix 会创建一个字符同步下落的显示。但如果你想看到一个更为动态、视觉上更吸引人的显示效果,就可以在代码中操控字符的下落速度。

你可以这样设置 Cmatrix,让其进行异步滚动:

cmatrix -a
自定义字符下落速度

你想让字符下落的速度更快,或者更慢吗?只需在 Cmatrix 中做出微小改动,就可以实现。

如想让字符以更快的速度下落,你可以这样设定:

cmatrix -u 2

字符快速下落

在这里,默认的屏幕更新延迟是 4,如果你把这个值降低,那么字符下落的速度就会增加,反之则会减慢。所以,如果你想让 Cmatrix 以更慢的速度运行,你可以这样设置:

cmatrix -u 9

字符慢速下落

自定义颜色

你可能想问,绿色能改吗?当然,你想变成紫色也行。

运行 Cmatrix 的时候,你可以自由调整它的颜色。只需要使用 -C 选项,然后在后面添加你想要的颜色,如下所示:

cmatrix -C magenta

颜色变为洋红色

你可以任选绿色(green)、红色(red)、蓝色(blue)、白色(white)、黄色(yellow)、青色(cyan)、洋红色(magenta)以及黑色(black)这些颜色。

其他可选设置
选项 对应功能
cmatrix -o 旧式滚动模式
cmatrix -m Lambda 模式:把所有的字符变为 lambda 符号
cmatrix -s 屏保模式:按键有就自动退出
cmatrix -h 调出帮助手册

运行 Cmatrix 时的快捷键选项

就算在启动 Cmatrix 的时候你没有添加任何选项,你仍可以在实际运行中随时改变设置。下面就是一些可供你随时选择的选项。

随时改变颜色

当然,你无需重新启动程序,就可以随时改变显示的颜色。但需要记住,不同的键位对应着不同的颜色。在 Cmatrix 未关闭的情况下,如果你按下了存储在键位上的指令,显示的颜色将会直接变更。

颜色 相应键位
红色 !
绿色 @
黄色 #
蓝色 $
洋红色 %
青色 ^
白色 &
黑色 )
自由调整更新速度

在 Cmatrix 运行的过程中,你可以按 09 的任何一位数字键来随意改变当前的更新速度。

此外,Cmatrix 也有许多其他的选项可供你选择,你可以在命令的 man 页面里面找到它们。

man cmatrix

彩虹魔法:Cmatrix 配合 lolcat

? 请注意,Cmatrix 本身就是 CPU 密集型的命令,所以在使用其他命令操控它的时候需特别小心。

你可以将 Cmatrix 和 lolcat 结合在一起使用,以此营造出一种更加有趣的视觉效果。如果你是 Ubuntu 的用户,可以通过如下的命令来安装 lolcat:

sudo apt install lolcat

安装完毕后,只需简单地通过管道将 Cmatrix 连接到 lolcat,你便可以看到赏心悦目的彩虹效果了。

cmatrix | lolcat

Cmatrix 配合 Lolcat 效果

当然,你也可以尝试用 lolcat 来管理所有的 Cmatrix 的功能。

或者,你可以调出一个倾斜的彩虹条纹效果,为自己的视觉体验增添一些新花样。

cmatrix | lolcat -p 100

此外,只要轻轻一点,你就可以直接反转现有的背景和前景颜色,使你的终端完全沉浸在五彩斑斓之中。

cmatrix | lolcat -i

Cmatrix 与反转颜色的 Lolcat

终端界面的无尽可能

我知道 Cmatrix 不可能是 最实用的 Linux 命令,但无可否认,它令人喜爱且同样能够带给你乐趣。难道你不想尝试更多和你的 Linux 系统之间的 有趣交互 吗?

就像 Cowsay 这样的命令,虽然简单,却欢乐无穷:

哞~ 我的 Linux 终端里有头牛

这里还有更多玩法等待你去探索:

在终端中享受乐趣的 13 种 Linux 命令

现在,玩得开心,安德森先生!

(题图:MJ/9f9f8665-e5d0-47b5-9df0-b39abd9dca3d)


via: https://itsfoss.com/using-cmatrix/

作者:Sreenath 选题:lujun9972 译者:ChatGPT 校对:wxy

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

使用 mkosi 构建 RHEL 和 RHEL UBI 镜像

mkosi 是一个轻量级工具,用于从发行版软件包构建镜像。本文介绍如何使用 mkosi 从 RHEL 和 RHEL 通用基础镜像 Universal Base Image (UBI)的软件包构建镜像。RHEL UBI 是 RHEL 的一个子集,可以在没有订阅的情况下免费使用。

mkosi 特性

mkosi 支持一些输出格式,但最重要的是 可发现磁盘镜像 Discoverable Disk Images (DDI)。同一个 DDI 可用于引导容器、或运行在虚拟机、抑或是复制到 U 盘以引导真实物理机,然后从 U 盘复制到磁盘以引导系统。该镜像具有标准化的布局和描述其用途的元数据。

mkosi 依赖其他工具来完成大部分工作:使用 systemd-repart 在磁盘镜像上创建分区,使用 mkfs.btrfs / mkfs.ext4 / mkfs.xfs 等创建文件系统,并使用 dnf / apt / pacman / zypper 下载和解压包。

mkosi 支持一系列发行版:Debian 和 Ubuntu、Arch Linux、openSUSE,当然还包括 Fedora、CentOS Stream 及其衍生版本,以及最近的 RHEL UBI 和 RHEL 。由于实际的“重活”是由其他工具完成的,mkosi 可以进行交叉构建。这意味着可以使用一个发行版构建各种其他发行版的镜像。唯一的要求是主机上安装了相应的工具。Fedora 有原生的 aptpacmanzypper,因此它为使用 mkosi 构建任何其他发行版提供了良好的基础。

它还有一些有趣的功能:镜像可以由非特权用户创建,或者在没有设备文件的容器中创建,特别是没有对回环设备的访问权限。它还可以在没有特权的情况下将这些镜像启动为虚拟机(使用 qemu)。

配置是声明性的,非常容易创建。使用 systemd-repart 创建磁盘分区,并使用 repart.d 配置文件定义应该如何完成此操作。

有关更多详细信息,请参见 Daan DeMeyer 在 All Systems Go 大会上的两个演讲:《systemd-repart: Building Discoverable Disk Images》 和 《mkosi: Building Bespoke Operating System Images》。

项目目标

mkosi 的一个目标是允许对软件项目进行针对不同发行版的测试。它将为一个发行版创建一个镜像(使用该发行版的软件包),然后将软件项目编译并安装到该镜像中,插入不属于软件包的额外文件。但是,首个阶段,即从软件包创建镜像的过程,本身就是有用的。这是我们将首先展示的内容。

我们 [1] 最近添加了对 RHEL 和 RHEL UBI 的支持。让我们从 RHEL UBI 开始,利用发行版软件包创建镜像。

请注意,下面的示例要求 mkosi 19,而且不适用于更早的版本。

带有 Shell 的基本 RHEL UBI 镜像

$ mkdir -p mkosi.cache
$ mkosi \
    -d rhel-ubi \
    -t directory \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin

上面的命令指定了发行版 rhel-ubi,输出格式 directory,并请求安装软件包 bashcoreutils、…、rpmrpm 通常不需要放到镜像内部,但在这里用于内省会很有用。我们还启用了以 root 用户自动登录。

在启动构建之前,我们创建了缓存目录 mkosi.cache。当存在缓存目录时,mkosi 会自动使用它来持久化下载的 RPM 包。这将使相同软件包集合的后续调用速度更快。

然后,我们可以使用 systemd-nspawn 将此镜像作为容器启动:

$ sudo mkosi \
    -d rhel-ubi \
    -t directory \
    boot
systemd 252-14.el9_2.3 running in system mode (+PAM +AUDIT +SELINUX -APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS -FIDO2 +IDN2 -IDN -IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
Detected virtualization systemd-nspawn.
Detected architecture x86-64.
Detected first boot.

Red Hat Enterprise Linux 9.2 (Plow)
...
[ OK ] Created slice Slice /system/getty.
[ OK ] Created slice Slice /system/modprobe.
[ OK ] Created slice User and Session Slice.
...
[ OK ] Started User Login Management.
[ OK ] Reached target Multi-User System.

Red Hat Enterprise Linux 9.2 (Plow)
Kernel 6.5.6-300.fc39.x86_64 on an x86_64

image login: root (automatic login)

[root@image ~]# rpm -q rpm systemd
rpm-4.16.1.3-22.el9.x86_64
systemd-252-14.el9_2.3.x86_64

正如前面提到的,此镜像可以用于启动虚拟机。但在此设置下,这是不可能的 —— 我们的镜像没有内核。事实上,RHEL UBI 根本不提供内核,因此我们无法使用它进行引导(无论是在虚拟机上还是在裸机上)。

创建镜像

我一开始说是要创建镜像,但到目前为止我们只有一个目录。让我们开始实际创建一个镜像:

$ mkosi \
    -d rhel-ubi \
    -t disk \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin

这将生成 image.raw,一个带有 GPT 分区表和单个根分区(用于本机架构)的磁盘镜像。

$ sudo systemd-dissect image.raw
Name: image.raw
Size: 301.0M
Sec. Size: 512
Arch.: x86-64

Image UUID: dcbd6499-409e-4b62-b251-e0dd15e446d5
OS Release: NAME=Red Hat Enterprise Linux
VERSION=9.2 (Plow)
ID=rhel
ID_LIKE=fedora
VERSION_ID=9.2
PLATFORM_ID=platform:el9
PRETTY_NAME=Red Hat Enterprise Linux 9.2 (Plow)
ANSI_COLOR=0;31
LOGO=fedora-logo-icon
CPE_NAME=cpe:/o:redhat:enterprise_linux:9::baseos
HOME_URL=https://www.redhat.com/
DOCUMENTATION_URL=https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9
BUG_REPORT_URL=https://bugzilla.redhat.com/
REDHAT_BUGZILLA_PRODUCT=Red Hat Enterprise Linux 9
REDHAT_BUGZILLA_PRODUCT_VERSION=9.2
REDHAT_SUPPORT_PRODUCT=Red Hat Enterprise Linux
REDHAT_SUPPORT_PRODUCT_VERSION=9.2

Use As:  bootable system for UEFI
         bootable system for container
         portable service
         initrd
         sysext extension for system
         sysext extension for initrd
         sysext extension for portable service

RW DESIGNATOR PARTITION UUID PARTITION LABEL FSTYPE ARCHITECTURE VERITY GROWFS NODE PARTNO
rw root 1236e211-4729-4561-a6fc-9ef8f18b828f root-x86-64 xfs x86-64 no yes /dev/loop0p1 1

好的,我们现在有一个镜像,镜像中包含了一些来自 RHEL UBI 软件包的内容。我们如何在其上加点我们自己的东西呢?

使用自己的文件扩展镜像

有几种方法可以扩展镜像,包括从头开始编译某些东西。但在那之前,让我们做一些更简单的事情,将一个现成的文件系统注入到镜像中:

$ mkdir -p mkosi.extra/srv/www/content
$ cat >mkosi.extra/srv/www/content/index.html <<'EOF'
<h1>Hello, World!</h1>
EOF

现在,该镜像将包含 /srv/www/content/index.html

这种方法用于注入额外的配置或简单的程序。

从源代码构建

现在让我们过一遍完整流程,从源代码构建一些东西。例如,一个简单的 Meson 项目,有一个单独的 C 文件:

$ cat >hello.c <<'EOF'
#include <stdio.h>

int main(int argc, char **argv) {
    char buf[1024];

    FILE *f = fopen("/srv/www/content/index.html", "re");
    size_t n = fread(buf, 1, sizeof buf, f);

    fwrite(buf, 1, n, stdout);
    fclose(f);
    return 0;
}
EOF

$ cat >meson.build <<'EOF'
project('hello', 'c')
executable('hello', 'hello.c',
            install: true)
EOF
$ cat >mkosi.build <<'EOF'
set -ex

mkosi-as-caller rm -rf "$BUILDDIR/build"
mkosi-as-caller meson setup "$BUILDDIR/build" "$SRCDIR"
mkosi-as-caller meson compile -C "$BUILDDIR/build"
meson install -C "$BUILDDIR/build" --no-rebuild
EOF
$ chmod +x mkosi.build

总结一下:我们有一些源代码(hello.c),一个构建系统配置文件(meson.build),以及一个由 mkosi 调用的胶水脚本(mkosi.build)。对于实际的项目,也会有相同的元素,只是更加复杂。

这个脚本需要一些解释。mkosi 在创建镜像时使用用户命名空间。这允许包管理器(例如 dnf)安装由不同用户拥有的文件,即使它是由一个普通非特权用户调用的。我们使用 mkosi-as-caller 切换回调用者以进行编译。这样,在 $BUILDDIR 下编译期间创建的文件将由调用者拥有。

现在让我们使用我们的程序构建镜像。与之前的调用相比,我们需要额外的软件包:mesongcc。由于我们现在有了构建脚本,mkosi 将执行两个构建阶段:首先创建一个构建镜像,并在其中调用构建脚本,将安装产物存储在一个临时目录中,然后构建最终镜像,并将安装产物注入其中。(mkosi 设置 $DESTDIRmeson install 自动使用 $DESTDIR,因此并不需要我们明确指定。)

$ mkosi \
    -d rhel-ubi \
    -t disk \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin \
    --build-package=meson,gcc \
    --build-dir=mkosi.builddir \
    --build-script=mkosi.build \
    -f

此时,我们有了带有自定义载荷的镜像 image.raw。我们可以启动我们新创建的可执行文件作为 shell 命令:

$ sudo mkosi -d rhel-ubi -t directory shell hello
<h1>Hello, World!</h1>

获取 RHEL 的开发者订阅

RHEL UBI 主要用作容器构建的基础层。它提供了有限的软件包(约 1500 个)。现在让我们切换到完整的 RHEL 安装。

获取 RHEL 的最简单方法是使用 开发者许可证。它提供了权限注册 16 个运行 RHEL 的物理或虚拟节点,并提供自助式支持。

首先,创建一个账户。然后,转到 管理页面 并确保启用了“用于 Red Hat 订阅管理的简化内容访问”。接下来,创建一个新的激活密钥,选择 “Red Hat 个人开发者订阅”。记下显示的组织 ID。在下面,我们将使用密钥名称和组织 ID 分别表示为 $KEY_NAME$ORGANIZATION_ID

现在,我们准备使用 RHEL 内容:

$ sudo dnf install subscription-manager
$ sudo subscription-manager register \
    --org $ORGANIZATION_ID --activationkey $KEY_NAME

使用 RHEL 构建镜像

在之前的示例中,我们通过参数开关指定了所有配置。这对于快速开发很友好,但可能在情况复杂时变得难以处理。RHEL 是一个严肃的发行版,所以让我们改为使用配置文件:

$ cat >mkosi.conf <<'EOF'
[Output]
Format=directory
Output=rhel-directory

[Distribution]
Distribution=rhel

[Content]
Packages=
bash
coreutils
util-linux
systemd
systemd-boot
systemd-udev
kernel-core

Bootable=yes
Bootloader=uki
Autologin=yes
WithDocs=no
EOF

首先,让我们检查一下一切是否正常:

$ mkosi summary

现在让我们构建镜像(呃,或者说,目录):

$ mkosi build
$ mkosi qemu
Welcome to Red Hat Enterprise Linux 9.2 (Plow)!

[ OK ] Created slice Slice /system/modprobe.
[ OK ] Reached target Initrd Root Device.
[ OK ] Reached target Initrd /usr File System.
[ OK ] Reached target Local Integrity Protected Volumes.
[ OK ] Reached target Local File Systems.
[ OK ] Reached target Path Units.
[ OK ] Reached target Remote Encrypted Volumes.
[ OK ] Reached target Remote Verity Protected Volumes.
[ OK ] Reached target Slice Units.
[ OK ] Reached target Swaps.
...
[ OK ] Listening on Journal Socket.
[ OK ] Listening on udev Control Socket.
[ OK ] Listening on udev Kernel Socket.
...
Red Hat Enterprise Linux 9.2 (Plow)
Kernel 5.14.0-284.30.1.el9_2.x86_64 on an x86_64

localhost login: root (automatic login)
[root@localhost ~]#

很好,我们将“镜像”构建为一个带有文件系统树的目录,并在虚拟机中引导了它。

在引导的虚拟机中,findmnt / 显示根文件系统是 virtiofs。这是一个虚拟文件系统,将主机的目录暴露给客户机。我们其实也可以构建一个更传统的镜像,其中包含文件系统和文件内的分区表,但“目录 + virtiofs” 对于开发来说更快且更友好。

我们刚刚引导的镜像未注册。要允许从镜像“内部”下载更新,我们必须将 yumsubscription-managerNetworkManager 添加到软件包列表,并在下载任何更新之前以与上述相同的方式调用 subscription-manager。在这之后,我们在基本仓库中就有大约 4500 个软件包可用,并且还有一些包含更多专业软件包的额外仓库。

最后

今天就是这些了。如果您有问题,可以在 Matrix 上找到我们,地址为 #mkosi:matrix.org,或者在 systemd 邮件列表 上找到我们。

(题图:MJ/a6e60316-ed03-4e23-b8b4-22332a0f5bfa)


  1. Daan DeMeyer、Lukáš Nykrýn、Michal Sekletár、Zbigiew Jędrzejewski-Szmek ↩︎

via: https://fedoramagazine.org/create-images-directly-from-rhel-and-rhel-ubi-package-using-mkosi/

作者:Zbigniew Jędrzejewski-Szmek 选题:lujun9972 译者:GlassFoxowo 校对:wxy

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

硬核观察 #1198 Ubuntu Budgie 准备转而采用 Xfce

#1 Ubuntu Budgie 准备转而采用 Xfce

去年一月,有报道称,Budgie 桌面计划从基于 GNOME 转向 Enlightenment。但最近,Budgie 项目负责人称,Budgie 桌面希望构建一个纯 Wayland 环境,但由于 Enlightenment 对 Wayland 的只是还只是“实验性”的,因而该开发团队将与 Xfce 开发人员合作,为 Budgie 的 Wayland 未来而努力。

消息来源:The Register

老王点评:虽然我一直不批评 Linux 桌面到处在造轮子,但是目前看起来,无论是 GNOME、Enlightenment,还是 Xfce 都有各自的问题。

#2 KDE Plasma 的 Wayland 支持仅剩一个阻碍

KDE Plasma 6.0 的功能冻结很快就会到来,Plasma Wayland 支持的三大阻碍也即将全部清除。在本周的改动中,在 Plasma Wayland 会话中重启或关闭系统将导致未保存更改的应用程序提示用户保存,而不是立即退出。这是 KDE 的最后三个 Wayland 问题之一。目前只剩下一个阻碍:并非所有的粘滞键选项都能正常工作,该问题也将很快解决。

消息来源:Phoronix

老王点评:怎么感觉,一夜之间大家都纷纷快速逃离了 X11 了?

#3 PHP 8.0 生命终结

与所有软件一样,PHP 也有一个稳定的开发周期,以便解决新功能、错误和安全问题。2023 年 11 月 26 日,发布于三年前的 PHP 8.0 版本将终止支持,安全问题将不再得到修补。而前几天,PHP 8.3 刚刚发布。8.4 正在开发中。

消息来源:PHP

老王点评:别说 8.0 ,用更老版本的有没有?

修复 Arch Linux 中的 “target not found” 错误

如果在 Arch Linux 中安装软件包时遇到 “target not found” 错误,你可以采取以下措施。

有一天,我尝试在 Arch Linux 上安装 Hyprland。当我使用 Pacman 命令安装 它时,它抛出 “target not found”(目标未发现)错误。

$ sudo pacman -S hyprland
[sudo] password for abhishek:
error: target not found: hyprland

这是一个意外,因为我知道 Hyprland 是可用的。

我的修复方法是更新系统,在大多数情况下,它可以解决此问题。

sudo pacman -Syu

这里,本地包数据库不同步。我需要更新缓存。这里还建议更新系统。

在大多数情况下,这就是修复此错误的方法。但是,你看到此错误的原因可能还有其他一些。让我在这里详细讨论它们。

修复:更新系统

Arch Linux 是一个 滚动发布发行版,并且它提供的更新非常频繁。如果你不每隔几天更新一次系统,你的本地包数据库将与远程镜像不同步,并且你将在安装软件包时遇到问题。

本地包数据库仅保留包的元数据,例如版本号、用于获取包的仓库 URL 等。

当你搜索软件包时,pacman 会提供搜索结果,表明该软件包可用。但是,该包在你的本地数据库中具有较旧的版本号。当 pacman 在远程仓库中搜索包(以获取实际的包)时,它不再找到旧版本的 URL。

这就是导致 “target not found” 错误的原因。

修复方法是更新本地数据库。这可以与 pacman -Sy 一起使用,但是,建议 更新整个 Arch Linux 系统 以避免依赖冲突等。

sudo pacman -Syu

? 如果你已有几周没有更新系统,请做好更新超过 1 GB 的准备。这可能需要一些时间,具体取决于你的互联网速度和你使用的镜像。

就我而言,Arch 安装在我的辅助系统上。由于我一周左右无法使用它,该系统已经过时了。更新后,我就可以安装 Hyprland

? 如果这不起作用,请通过添加额外的 y 强制刷新所有包数据库: sudo pacman -Syyu

修复 “target not found” 错误的其他建议

如果上述方法没有为你解决此错误,这里有一些修复此错误的提示。

仔细检查包名称

我亲爱的 Watson,这可能看起来很简单,但人们通常只是错误地输入了包名称。

Linux 区分大小写,包通常以小写命名。因此,如果你要使用一个名为 Flameshot 的流行工具,那么它的包名称很可能是 flameshot。

此外,某些软件的拼写与常见软件的拼写不同。例如,它是 hyprland,这使我错误地输入了 hyperland(使用通常的 “hyper” 拼写)。

在极少数情况下,可能会混淆是 lI 或者 1

基本上,确保你输入的包名称是正确的。

查看该软件包在仓库中是否可用

Arch Linux 的仓库中有大量软件包。但这并不意味着它拥有所有可能的 Linux 软件包。

访问 Arch Linux 官方软件包网站:

Arch Linux 软件包搜索

在这里输入包名,查看该包是否可用。如果是,它是哪个仓库以及它在哪个设备上可用。

x86_64 适用于英特尔架构,任何包含 ARM 架构的均适用于 树莓派类设备

? 如果在某些仓库中找到该软件包,但 pacman 即使在更新的系统上也找不到它,请检查 pacman.conf 文件并查看是否启用了所述仓库。

确保它不是 AUR 包

Arch 用户仓库(AUR) 是提供更新包的附加社区支持平台。

现在,有多种使用 AUR 包的方法,但 pacman 不是其中之一。

检查你尝试安装的软件包是否是 AUR 软件包。首先检查官方 Arch 仓库,如上所述。如果不存在,请检查 AUR 页面。

如果它是 AUR 包,则必须 使用 yay 或一些 其他 AUR 帮助程序。你不能使用 pacman 安装 AUR 软件包。

你能解决这个问题吗?

在大多数情况下,更新系统可以解决此问题。在极少数情况下,可能还有其他原因,我已经提到了一些建议。

现在轮到你了。如果你能够解决此问题,请在评论区告诉我。

(题图:MJ/b71c9760-4cb1-41de-a336-3e38026bcfeb)


via: https://itsfoss.com/target-not-found-arch-linux/

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

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

我们真的需要另一种非开源的源代码可用许可证吗?

并不是,不过 “功能源代码许可证” 却更进一步混淆了开源许可证的界限。

回溯到我们还用打孔卡和磁带载入软件的那时,所有的程序都是 “自由软件” 和 “开源” 的。然而随后专有软件的出现,一切都变了。针对此状况,程序员们反抗并发展出了第一个正式的自由和开源软件的定义。

现如今,不开源的代码甚至成为了罕见的例外。然而,这并未阻止某些误将开源视为一种商业模式,而非开发模式的公司,试图将专有方法和 “开源” 代码相结合。最新的案例就是 Sentry 推出的 “ 功能源代码许可证 Functional Source License ”(FSL)。

沿袭 服务端公共许可证 Server-Side Public License (SSPL)、 公共条款 Common Clause 商业源代码许可证 Business Source License 的传统,FSL 表面上似乎重视开源的重要性,却对开源的核心理念进行嘲讽,形容其方式为“享有自由却无需付出努力”。

呵呵。

其实,Sentry 是一个面向开发者的应用代码监控服务,它源于对 Django(一款开源的,高级的 Python 网络框架)的少量代码开发。如今,它仍然主要用开源代码进行开发。不难看出,没有开源,Sentry 啥都不是。

这也同样适用于其他所有使用 “ 源代码可用 source-available ” 或其他半开源许可证的公司。它们都源自于开源公司,然后为了最大化利润,它们将免费获取的代码进行了重新许可,以锁定代码。

正如 开源倡议 Open Source Initiative (OSI)董事会副主席 Thierry Carrez 对我说的,“有些公司通过利用开源代码库作为主体建立了他们的软件,不需要在使用数百个开源软件包作为他们的依赖关系之前就请求许可。他们通过公开承诺遵守开源原则建立了口碑。但在试图追求更大价值的过程中,他们短视地放弃了最初带给他们成功的模式。”说的真对。

例如 Sentry、MariaDBRedisHashiCorp 这样一些前开源公司,之所以他们能做出这样的举动,可以归功于他们采用了侵犯了权利的 贡献者许可协议 Contributor License Agreements (CLA)。这些协议是一种法律文件,它定义了贡献者为他们的代码在开源项目中被使用所设定的条款。尽管有些 CLA,像 Apache 软件基金会的 CLA 或 Linux 的 开发者原创证书 Developer Certificate of Origin ,只是用来保护他们项目的法律权利。但其他一些,比如 MongoDB 的贡献者协议,却被用来占有你的代码及其版权。通过这样的 CLA,在任何他们喜欢的方式中使用和重新许可你的代码,对于他们来说易如反掌。

SourceHut 的创始人兼首席执行官 Drew Devault 在谈论 Elasticsearch 从开源向“源码可用”转变时表达了他的观点:“Elasticsearch 归其 1,573 名贡献者所有,他们自己保留着版权,并向 Elastic 授予了一个无条件分发他们作品的许可。当 Elastic 决定 Elasticsearch 不再开源时,他们就利用了这个漏洞,这个漏洞实际上一开始就被他们故意安插进去…… Elastic 对 1,573 的贡献者们、以及所有信任、忠诚于他们,给予他们支持的人们翻了脸。”

如今,我们看到企业 Sentry 和之前的案例如出一辙,换汤不换药。公正地讲,Sentry 很长一段时间以来都一直在使用源码可用许可证。在该公司创建并采用 FSL 前,自 2018 年以来就用了 BSL。如果还有人继续向 Sentry 捐献代码,那他们肯定知道自己在做什么。

那么为何还要做一个新许可证呢?Sentry 的开源负责人 Chad Whitacre 这样解释道:“BSL 存在两个显著的弊端。首先,预设的非竞争期为四年,对于软件行业来说,这简直就是个漫长的周期。这可能会让人产生一种感觉,即最后的开源转变只是一种象征性的举措。这几乎可以说是 100 年那么长。对于 Sentry,我们选择将这个期限缩短到三年,但我们也承认,可能连三年都过长了。”

该许可证期满后,这些代码将会使用 Apache 2.0 或者 MIT 许可证。但实际上,这并不像初听起来那么慷慨。根据 FSL,你可以将它的代码用在任何用途 —— “除了竞争性使用的情况下。所谓竞争性使用,指的是利用该软件开发或提供能够与我们的产品或服务竞争的商业产品或服务,不论是该软件本身,还是我们基于该软件提供的任何其他产品或服务,只要我们是在该软件发布之日或之前就已经提供了这类竞争产品或服务。”

换种说法,你可以查看代码,但不能用这些代码运营业务。如需更深入了解,你可以查看该公司的 FSL 版本的 Apache 和 MIT 许可证。就我个人而言,我认为这两个都不算是开源许可证。

Whitacre 进一步说明了,“更严重的缺陷是 BSL 有过多的参数:变更日期、变更许可证,以及额外使用授予。最大的问题在于额外使用授予,它是一项巨大的填空题,意味着每一个 BSL 实质上都是不同的许可证。”

我无法反驳这一观点。每个公司的 BSL 都不一样。同时,这也意味着当客户与使用 BSL 的公司签约时,他们很难确切知道法律上为他们保留了哪些权益。Sentry 希望通过 FSL 让其产品和服务对其客户更具吸引力。

也许这方法行得通。但我赞同 Carrez 所说的:“发布另一种能剥夺开发者在技术选择中的自主权的许可证变体并非新鲜事:他们其实就是要从整个软件生态系统中摧毁开发者的基本自由,从而明确自己对其专有软件及其许可使用权的所有权。这并不是开源:这只是包装在开源幌子下的专有门户。”

(题图:MJ/beb19f23-c230-4a3f-9bb3-210066ad749b)


via: https://www.theregister.com/2023/11/24/opinion_column/

作者:Steven J. Vaughan-Nichols 译者:ChatGPT 校对:wxy

硬核观察 #1197 Debian 的 MIPS64EL 架构面临放弃

#1 Debian 的 MIPS64EL 架构面临放弃

Debian 的 MIPS64EL 是一个 64 位小端架构。由于缺乏足够的编译守护进程资源来及时编译新软件包,该架构现在被视为 “不同步” 架构,如果情况得不到改善,它可能不适合作为 Debian 13 的发布架构。MIPS 作为 CPU 架构已经走入死胡同,没有进一步的开发计划。MIPS 公司现在正专注于 RISC-V,而中国以前著名的 MIPS 供应商龙芯现在已经将 MIPS 演进为他们自己的 LoongArch CPU 架构。几个月前,Debian 也已经放弃了其 32 位 MIPS 小端 MIPSEL 移植。最初的 MIPS CPU 32 位移植在 Debian 10 之后就被放弃了。

消息来源:Phoronix

老王点评:MIPS 这种架构早该放弃了,硬件都难找到了。

#2 Blender 遭遇 DDoS 攻击

从 11 月 18 日到 22 日,3D 开源建模软件项目 Blender 遭遇了持续五天的 DDoS 攻击,网站一度被迫下线。该攻击由一个僵尸网络执行,其数百个 IP 地址发送了超过 15 亿次恶意请求,峰值速率为 10 万 RPS。目前还没有人声称对此次攻击负责,攻击动机也不明。攻击的重点是拒绝服务,项目和用户数据未受影响。Blender 是通过迁移到 CloudFlare 的 DDoS 缓解服务之后才解决问题。攻击在 23 日停止,网站恢复正常。

消息来源:Blender

老王点评:这得多闲,攻击这种开源软件项目能有什么好处?

#3 四年后,OpenMandriva Lx 5.0 发布

在 4.0 发布四年多之后,OpenMandriva Lx 5.0 终于亮相了。OpenMandriva Lx 5.0 是 OpenMandriva Linux 发行版的定点发行版,也是在二月份发布 Plasma 6.0 桌面之前使用 Plasma 5 桌面的最后一个版本。在此版本中,OpenMandriva 首次合并了 //usr

消息来源:Phoronix

老王点评:这个发行版让我回忆起当年的曼德拉草,当时感觉很好,但是后来就没那么惊艳了。

活动资料下载 | LLUG 杭州场成功举办

就在昨日,LLUG 爱好者沙龙活动杭州场在杭州未来科技城国际人才园成功举办。

本次活动由 Linux 中国和龙蜥社区(OpenAnolis)联合主办,杭州城西科创大走廊高层次人才联合会和杭州 GDG 提供支持。本次活动主要由 5 位本地嘉宾和 1 位远程嘉宾线上线下分享,帮助大家在杭州遇到同为 Linux 爱好者的小伙伴,一起在这个周末,交流技术,学习技术。

来自 Deepin 团队的内核研发工程师王昱力分享了 Deepin V23 操作系统在内核层面、使用层面的一些更新,并帮助与会人员前瞻了 V23 的各项细节改进,帮助大家更好的了解到 Deepin 这一优秀的国产发行版的现状和未来。

老王则通过远程的为现场参会的同学们带来了他的分享:《高效开源(个人篇 + 企业篇)》,帮助参会的同学们了解开源、学习开源,从个人的视角加入开源,并从企业的视角来解读开源的价值,帮助参会者理解为什么企业要做开源,以及如何更好的推进开源的落地。

Bestony 为现场的同学们分享了自己的大模型的开发经验,帮助参会同学们理解大模型的原理、当下的开发者们如何使用和迭代自己对于大模型的使用,提升自己的能力。

杭州 LUG 活动组织者 strrl 也来到现场,为现场参会者介绍了 hzlug 的历史和现状,并邀请大家参与到 hzlug 的活动组织中,与更多的小伙伴共同交流技术。

开源云平台 laf 的工程师 smile 则为大家介绍了 laf 云平台的优势和价值,帮助大家了解 laf ,演示 Laf 的使用。

姜亦丰则带来他在研究八卦和计算机时的心得。

PPT及视频下载

LLUG 的创办希望帮助 Linux 社区当中的每一个人都可以充分的交流经验和心得,所以我们也将本次活动的视频以及演示文稿开放出来,供大家查看。视频托管在 Bilibili,PPT 文稿则托管在 Github 的 Linux-CN/LLUG-Shares 仓库中,供大家下载。

本次活动的 PPT 已经上传至 GitHub ,方便大家下载,视频也以上传至 Bilibili 和 Linux 中国视频号,方便大家收看。

类型 活动主题 主讲人 PPT 在线视频
主题演讲 《deepin v23 内核成果分享与技术前瞻》 王昱力,deepin社区 内核研发工程师 下载 Bilibili
主题演讲 《开源实用指南(个人篇+企业篇)》 硬核老王 下载 Bilibili
主题演讲 《大模型应用开发经验分享》 bestony 下载 Bilibili
闪电演讲 《欢迎加入 HZLUG》 strrl 下载 Bilibili
闪电演讲 《LAF 开源云平台一览》 smile Bilibili
闪电演讲 《伪随机数和梅花易数》 姜亦丰 下载 Bilibili

致谢

本次活动的举办,得到了杭州城西科创大走廊高层次人才联合会提供的线下场地支持,为 Linux 爱好者们提供了活动场地,协助提供活动所需的各项物资,使得活动可以成行。同时,也感谢杭州 GDG 在活动推广过程中提供的帮助,帮助活动走向更多的人群。

感谢大家的支持,才能让本次活动成功举办!

12 月,北京见

LLUG 起于 2023 年的 6 月北京场,而在 2023 年的 12 月,我们将再次回到北京,在北京结束 LLUG 2023 年的旅程,为 2024 做好承上启下的工作。如果你感兴趣做分享,或是有更多的建议给到我们,可以扫描下方二维码,申报议题或提交建议。无论是标准的主题演讲 ,还是 5 分钟简短的闪电演讲,都期待你的报名~

主题演讲/闪电演讲报名

(题图:MJ/eacaca27-be46-4e32-9a74-c584f8f5fdf1)

rlxOS:一个独立的不可变 Linux 发行版,具有 Xfce 桌面

这是一款具有良好的外观和感觉,独立的不可变发行版。

不可变 Linux 发行版 的市场在稳步增长。

只在今年,我们就见证了像 Fedora OnyxblendOS v3 这样的新成员,以及 Ubuntu 24.04 LTS 将会出现的 基于 Snap 的不可变 Ubuntu 桌面

在这篇 初次体验 的文章里,我们将探索 rlxOS,它是一款自行建制的不可变发行版。

现在,让我们深入了解一下。

? 这个发行版相当新,可能无法作为日用主系统的替换产品。

rlxOS:概述 ⭐

rlxOS 以从零开始构建为自豪,作为一个 独立的 Linux 发行版,能更好地控制核心和工作部分。作为不可变的发行版,它实现了一种 滚动发布 的方式,从而用户在面对大的更新时无需重新安装。

主要特点包括:

  • 不可变性
  • 利用 Ostree
  • 关注隐私
  • 原生支持 Flatpak

如果你还不知道,不可变发行版可以让你在不影响系统核心的情况下进行变更。你可以将其视为分层变更,因此一个变更并不会影响另一个。

为了使这个实现,rlxOS 使用了一个软件更新守护程序(swupd),这个程序保留了操作系统的两个版本(在更改前后),你可以按照 文档 进行一些在重启后会消失的更改。

这个守护程序也会让你有不同层的软件包。根据官方网站,该功能在稳定版本中还未推出。

另外,你可以轻松地按照 文档 设置 Distrobox 容器。

初次印象 ?‍?

我在使用 Ubuntu 上的 VirtualBox 的虚拟机(VM)上启动了 rlxOS。安装程序看起来非常舒服,它那种圆角矩形的感觉让我想起了 GNOME 中 Adwaita 的主题风格

我在进行过程中需要手动使用 GParted 对驱动器进行分区。首先,我在虚拟驱动器上建立了推荐的 msdos 分区表。

之后,我分了两个不同大小的分区,一个是 ext4 文件系统的 39.5 GB 分区,另一个是 fat32 文件系统的 512 MB 分区。

在这之后,我需要确定 fat32 分区有 bootesp 标记,这样才能正确的安装 rlxOS。

? 通过右键点击分区并选择“ 管理标志 Manage Flags ”来设定标记。

安装程序还给出了关于分区的有效提示,将较大的一个标记为 Linux,将较小的一个标记为 EFI

如果你打算在 Windows 系统旁边安装它,你需要小心分区的设定,因为我们还没有在这里进行过测试。

然后,确认屏幕会显示出来,揭示一些重要的最后阶段信息。我点击 “ 应用 Apply ” 继续进行。

然后,它需要花费一些时间才能完成安装。但是,出于一些原因,我在安装过程中能够点击 “ 下一步 Next ” 和 “ 上一步 Back ” 选项(我认为这些选项应是灰化的)。

我建议你让安装自然进行,不要调整其他任何事情,并等待如下所示的 “ 成功 Success ” 提示。

在重启后,快速设置向导开始运行,我输入了用户信息和密码,然后再次重启。

在重启后看到了十分整洁的登录界面,含有一张漂亮的壁纸,和标题栏常见的一些选项/信息。

登录之后,我看到了一个非常熟悉的桌面界面,这个界面有一个类似 Windows 的应用启动器,和一栏包含了有用的部件的任务栏,如语言、通知、网络、节能模式等等。

然而,我立刻注意到rlxOS 预装的应用程序非常的少。这可以看作一件好事,这取决于你问的人。

但是,我必须说,Xfce 的体验看起来很好。

在我看来,他们可以至少添加任何一款 开源的微软办公套件替代品,诸如 LibreOfficeONLYOFFICE,这样这个发行版会有一个更为完整的体验。但是,当然,这是一个新的发行版,无可挑剔。

查看设置应用,它似乎很好的与系统主题相匹配。

rlxOS使用 Xfce 作为其桌面,这是流行的且最小化的桌面环境之一。我测试的稳定版是运行定制化 Xfce 4.18

如果你过去使用过 Xfce,你会发现 rlxOS 上的版本既熟悉又有些许不同。我用了一段时间,对其所提供的内容很满意,比如多任务处理非常轻松,因为rlxOS 支持工作空间

我只需要通过在任务栏中滚动/点击可以轻松地在工作区之间切换。

尽管这个发行版在这里那里有些小问题,但是它值得一试。在实物机器上的你的体验会比在 VM 上更好

如果你对源代码感兴趣,或者你想要为其做出贡献,你可以查阅其 GitHub 仓库

? 下载 rlxOS

在我写这篇文章时,官方网站 上有两个版本的 rlxOS 可供下载。一个是每月更新的稳定版本,另一个是被认为是不稳定的实验版本

rlxOS

? 你对 rlxOS 有什么看法,你会向他人推荐这款发行版吗?

(题图:MJ/b045e868-db65-4904-a0e4-0252051296e5)


via: https://news.itsfoss.com/rlxos/

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

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