Marius Nestor 发布的文章

前几天,Fedora 项目组的 Adam Williamson 发布一则服务公告(PSA),提醒 Fedora 社区在内部更新过程中出现了严重问题!

许多 Fedora 24 的用户报告称,从 4 日起,当他们在桌面中运行 dnf update 命令,通过官方软件仓库更新软件时会遇到 “duplicated packages” 和 “kernel updates not working” 等错误。

经过一些调查,Williamson 得出结论在 dnf update 过程中存在一个 bug,会导致图形界面,比如 GNOME 或 KDE,甚至整个 X Window 系统(X11)崩溃,但是这与用户的硬件配置和安装的软件有关。

“当崩溃发生时,更新进程会被杀死以至于不能完整结束,这就是为什么会得到 ‘duplicated packages’ 或其它的奇怪错误的原因”,Adam Williamson 说,“我在努力和报告者配合调查原因,希望能够解决它,但是,此刻,不要在桌面里面运行 dnf update !

所以,如果你正在使用 Fedora 24 操作系统,当你在使用 KDE、GNOME、Xfce 等桌面环境时,千万不要执行 dnf update 命令。你可以通过按下 Ctrl+Alt+F3 切换到文本模式来执行它,或者使用离线更新系统。

截止到现在,该 bug 仍无修复完成的通知。

今天,2016 年 8 月 16 日,Debian 项目组的 Laura Arjona Reina 宣布,Debian GNU/Linux 操作系统 23 岁啦!

是的,你没看错,就是 23 年前, 1993 年的今天, Debian GNU/Linux 发行版呱呱落地,项目创始人 Ian Murdock 发布了第一个开发版 0.01。并于三年后,发布了第一个官方正式版本 1.0。

“这个我们珍爱的操作系统来自于我们这些年的努力,感谢这 23 年来所有的贡献者,Debian 生日快乐!” 在今天的公告中写到,“如果你附近有 Debian Day 2016 庆祝活动的话,欢迎你参加!如果没有的话,那你可以自己组织一场小小的庆祝活动!”

生日快乐,Debian!

从 1993 年 8 月 16 日发布 0.01 版开始,Debian GNU/Linux 操作系统已经经历了 14 个版本,它们的名字是: Debian 1.1 "Buzz"、Debian 1.2 "Rex"、 Debian 1.3 "Bo"、 Debian 2.0 "Hamm"、 Debian 2.1 "Slink"、 Debian 2.2 "Potato"、 Debian 3.0 "Woody"、 Debian 3.1 "Sarge"、 Debian 4.0 "Etch"、 Debian 5.0 "Lenny"、 Debian 6.0 "Squeeze"、 Debian 7.0 "Wheezy" 和 Debian 8 "Jessie"。

下一个 Debian GNU/Linux 版本是 Debian 9 "Stretch",将在今年年底到来,但是现在还没有定下具体发布时间。现在 Debian 项目正在寻求优秀的设计师来为即将到来的新操作系统打造漂亮的设计,更多细节可参见 Wiki 页面

Happy birthday, Debian!

Chromium OS for SBCs( 单板机 Single-Board Computers )项目正在招募新成员以继续发展。

该项目的志愿者们为我们奉献了一个精心调制的开源 Chromium OS 的单板机移植版,支持树莓派 2 和树莓派 3 以及一些其它的单板机。他们已经完成了目标,但是这并不是项目的终点。

项目负责人 Dylan Callahan 说,一些项目成员已经离开了该项目去做其它的志愿者项目了。这种事情经常发生,不仅仅是这个开源项目。简单的说,Dylan Callahan 需要更多人来延续维护该项目的进一步发展。

“我正在开发新的 Beta 版本,也在努力解决很多 bug 和添加新功能。我希望可以更快一些,我们已经有一些项目成员由于个人原因离开了,还有一些去参与其它志愿者项目了”,Dylan Callahan 说,“我们要让 Chromium OS for SBCs 继续前行,我们不能给你支付薪水,但是我们可以给你提供经验。”

因此,如果你在将 Chromium OS 移植到其它设备方面有经验,或者你就是想成为这个极棒的项目的新开发者,你可以访问项目官网加入该团队。在那里,你可以找到关于 Chromium OS for SBCs 的一切细节。甚至即使你在这个领域没有任何经验,但是你想参与,也欢迎你加入!

首先,你得有个 Chromebook。

其次,你得有不用 Chrome OS 的理由——为了自由、自由、自由。

Chromebook 不但非常酷,而且极其便宜,它运行的操作系统是 Chrome OS ,这是一个基于 Linux 内核的操作系统,是由 Google 开发的。

不过,有时候你会发现 Chromebook 所运行的操作系统限制很多。因此,许多用户会在上面安装另外的 GNU/Linux 操作系统,要么是双引导,要么干脆就整个替换了 Chrome OS。已经有很多教程教你如何在你的 Chromebook 上以双引导方式安装一个 Linux 系统,不过,这篇指南将会介绍得更明白。

是的,没错,我们教你的是将 Chrome OS 替换成一个 GNU/Linux 发行版。当 Google 不再为你的 Chromebook 提供更新后,你需要决定是否将这个限制很多的操作系统换掉。这里,我们用一个完美的操作系统来替换,它就是刚刚成为滚动发行版的 Solus。

最妙的事情是,Solus 看起来很像 Chrome OS,而且不仅仅是看起来像而已,它能满足你的需求,同时提供了稳定、快捷和完整的功能。当然,下面的教程也适用于其他的发行版。

打开 Chrome OS 的开发者模式并用 USB 启动

在开始之前,我们需要提醒你一些事情。首先,如果你按照下面的教程来安装 GNU/Linux 发行版,这会擦除你的 Chrome OS 系统——但是你之后可以通过 Google 的支持网站提供的几种方式恢复。

其次,每次你需要使用你的新 Linux 系统时,你需要按下 CTRL-L 快捷键。

最后,你的 Chromebook 需要是 Intel 架构的,而不是 ARM 的,否则在一些 Chromebook 型号上你看不到任何启动引导器信息的。

我们在宏碁 C740 Chromebook 上测试了这篇教程。

首先第一件事情是你需要决定你要使用的 Linux 发行版是哪个,然后去下载最新的 ISO 镜像(需要确保它是一个带有图形桌面环境的 Live ISO),然后将其写入到一个 USB 存储棒上。做好之后将其插入到你的 Chromebook 上。

打开你的 Chromebook 盖子并关机,现在按下不放你的 Chromebook 上的 ESCRefresh 键,然后按下电源按钮几秒钟,直到你看到一个警告屏幕。马上按下 CTRL+D 组合键来激活开发者模式,这可能需要几分钟。

当启用了开发者模式后,会要求你输入你的 Chrome OS 身份,然后所有数据都会同步回你的 Chromebook。这时,按下 CTRL+ALT+T 组合键来打开开发者模式终端,输入以下命令:

shell 

并回车。现在输入以下命令:

sudo crossystem dev_boot_usb=1 dev_boot_legacy=1

并回车,确认你要安装的 Linux 发行版的 USB 存储棒一直插在你的 Chromebook 上。关机。重启,当你再次看到警告屏时,快速按下 CTRL+L 组合键以从 USB 进行引导。

从 USB 引导并安装 Linux 操作系统

现在 GNU/Linux 操作系统会从 USB 存储棒上加载,大概一到两分钟之后,你会看到实时会话。连接到互联网,并像你在其它计算机上一样正常安装该系统即可。当安装完成后,关机。移除 USB 存储棒之后重新开机,然后快速按下 CTRL+L 组合键。

你的新 GNU/Linux 发行版现在跑起来了!

 title=

再次补充一下,在我们的宏碁 C740 Chromebook 上,我们找不到 16位 x86 BIOS 的开源实现 SeaBIOS,所以不能在开机时选择引导设备,不过其它的 Chromebook 可能行。

如果你有任何问题,欢迎在下面留言。

Snappy 和 Flatpak 之间的争吵仍在继续中,现在 Canonical 在刚刚发布的 Fedora 24 上演示了创建一个厂商无关的 Snap 商店是多么的简单。

Snap 宣传它是面向各个主要 Linux 发行版的通用二进制软件包格式,人们对此非常关注,也有很多议论。就在几天前, Canonical 和 Ubuntu 的创始人 Mark Shuttleworth 对这些人们重点关注的问题做了一番答复,表示 Canonical 并不指望别的操作系统使用 Ubuntu 的 snap 商店,你们完全可以自己搞嘛,就是个 HTTPS 而已。

针对指责 Snap 商店没有开源的意见,Canonical 的 Ubuntu 产品与战略总监 Dustin Kirkland 说,“事实上,你可以在任何支持 Snap 的操作系统上运行你的 Snap 商店,真的。”

一个可以提供 Snap 软件包服务的最简单的示例商店

Dustin 给我们介绍了一个由开发者 Bret Barker 发布在 GitHub 上的一个概念性的独立 Snap 商店,这个软件以 Apache 许可证开源,你可以在 GitHub 上 fork 它,并安装到任何 GNU/Linux 发行版上去。

服务器端(Snap 商店)

“首先,我启动一个 AWS 实例,当然,我可以启动一个 Ubuntu 16.04 LTS 实例,但实际上我启动的是一个 Fedora 24 实例。”

如果你的机器上已经有了 snap 环境,你可以直接用:

snap install snapstore-example

来安装这个示例商店。

如果没有,你可以手动来安装。首先安装 python 虚拟环境:

sudo dnf install python-virtualenv

克隆这个示例商店的代码:

git clone https://github.com/noise/snapstore.git
cd snapstore

设置虚拟环境并安装依赖包:

virtualenv env
. env/bin/activate
pip install -r requirements.txt

运行:

python store.py

这样 snap 商店就安装好了,它会监听在默认的 5000 端口上。

Snap 商店监听在 5000 端口上

客户端

在 Fedora 24 上运行

sudo dnf install snapd 

来安装 Snappy,它同时也会安装必要的依赖包,如: squashfs-tools、kernel-modules。

你可以通过安装一个测试包来看看 snap 是否正常工作:

sudo snap install hello

如果正常的话,然后修改 /etc/environment,加入你的商店 URL,强制 snapd (Snappy 守护进程)与刚刚创建的 Snap 商店连接:

SNAPPY_FORCE_CPI_URL=http://localhost:5000/api/v1/

重启 snapd:

sudo service snapd restart

这个示例商店支持如下命令来查找和安装 snap 软件包:

snap find foobar25
sudo snap install foobar25

使用 snap 去查找软件包

更多可以看 Dustin 的原文或这个示例商店的说明

当 Canonical 宣布他们的 Snappy 方案已可以用于包括 Debian、Arch Linux、OpenWrt 在内的一些主流 Linux 发行版时,遭遇到了一些来自社区的反驳意见,还有人问 Canonical 是否已经准备好给其它的发行版提供 Snap 软件包。

每个人都会首先问道,“为什么我没有见到 Snappy 服务器的源代码出现?”有些人对 Canonical 在其 Snap 发布公告中的许多内容表示了不满,特别是,Canonical 并没有发布 Snappy 商店的源代码,人们通过 snapcraft.io 网站提交了 Snap 软件包后根本不知道后面都发生了什么。

如果开发者想使用 Snap 软件包跨多个 GNU/Linux 发行版发布软件的话,在 snapcraft.io 上所提供的指导中有一个步骤需要开发者接受在社区争议很大的 Ubuntu CLA( 贡献者许可同意书 Contributor License Agreement )。

Snap 并不依赖商店

前几天,就是 6 月 23 日的时候,Canonical 和 Ubuntu 的创始人 Mark Shuttleworth 在给社区的一封邮件中透露了一些信息:从设计上来说, Snap 事实上并不依赖于某个商店,这意味着应用开发者可以建立他们自己的商店。不过,从另外一个方面来说,说明他也并不指望其它的发行版会从 Ubuntu Snappy 商店中获取 Snap 软件包。

“Snap 软件包格式本质上并不依赖商店,你可以在系统里面采用 Snap ,而不用管它是如何到达系统的。所以,当前的商店解决方案并没有什么关系,”Mark Shuttleworth 说,“我并不指望别的发行版会去从 Ubuntu 获取 Snap 软件,除非这里有他们需要的软件包,Snap 可以很容易的用于 Debian.org 。”

他也回应了那些批评 Canonical 在 Snap 格式上不公平竞争的指责,他说:“从某种意义上说,Snap 是顺应发展而出现的——当然,Ubuntu 有个很庞大的商店,因为我们已经在移动和物联网方面努力了好多年了。但是这并不是非难 Snap 的原因,我觉得恰恰相反。”

据 Mark Shuttleworth 说,应用开发者要从他们自己的商店分发 Snap 的最简单的办法就是通过 HTTPS。他认为,很显然选择了 Snap 格式在多个平台上分发的人可以在他自己的代码里面实现这个。当然,你可以可以采用其他的类似解决方案,包括最新发布的 Flatpak 或 AppImage。