开源新闻速递(160423)：Ubuntu 16.04 各个主要分支发布，有的分支面临消亡

Summary: 继 Ubuntu 16.04 LTS 发布之后，它的各个官方分支也陆续发布了，这包括 Ubuntu MATE、 Ubuntu GNOME、  Kubuntu、Xubuntu、Lubuntu，它们也是 LTS 版本，有3年支持期。

![](/data/attachment/album/201604/23/171226sg2qx4qqssnse40v.png)

继 [Ubuntu 16.04 LTS 发布](/article-7254-1.html)之后，它的各个官方分支也陆续发布了，这包括 Ubuntu MATE、 [Ubuntu GNOME](https://wiki.ubuntu.com/XenialXerus/ReleaseNotes/UbuntuGNOME)、 [Kubuntu](http://kubuntu.org/news/kubuntu-16-04-lts-release-anouncement/)、[Xubuntu](http://xubuntu.org/news/xubuntu-16-04-release/)、[Lubuntu](http://lubuntu.me/xenial-released/)，它们也是 LTS 版本，有3年支持期。

* Ubuntu GNOME 使用的是 GNOME 3.18，虽然不是最新版本，不过可以以后升级。另外，它还带了一个实验性的 Wayland 支持，可以安装 gnome-session-wayland 来启用 GNOME on Wayland 会话。
* Kubuntu 16.04 LTS 是它完全由志愿者团队维护后的发布第一个版本。
* Lubuntu 还发布了一个用于 PowerPC Mac 计算机的镜像。

另外，Ubuntu Studio 也[发布](http://ubuntustudio.org/2016/04/new-ubuntu-studio-release-and-new-project-lead/)了 16.04 LTS 版本，这是该项目今年一月选举出新的项目负责人后发布的第一个版本。虽然没有太大的改变，但是至少标志着该分支还继续存活着。不过由于时间仓促，还是有一些[问题](http://wiki.ubuntu.com/XenialXerus/ReleaseNotes/UbuntuStudio)的。新的项目负责人会保持该分支的存活，直到2018年的下次选举。

而另外一个面临无人可继的分支 [Edubuntu 则跳过了这次的 16.04 LTS 版本](/article-7147-1.html)，其将来的存续还未可知。

除了用于64位（amd64）、32位（i386）、ARM64 （AArch64）、 ArmHardFloat （armhf）以及 PowerPC 小端（PPC64el）等架构外， Ubuntu 还针对 IBM z 系统和 [LinuxONE](http://www.ubuntu.com/download/server/linuxone) <ruby> 主框架机 <rp>  （ </rp> <rt>  mainframe computer </rt> <rp>  ） </rp></ruby>发布了 Ubuntu 16.04 LTS。你可以自由下载用于 [LinuxONE](http://www.ubuntu.com/download/server/linuxone) 的镜像，但是如果需要 Ubuntu 的商业支持，则需要购买服务支持。

面对中国用户，Ubuntu 还有一个专属版本： Ubuntu <ruby> 麒麟 <rp>  （ </rp> <rt>  Kylin </rt> <rp>  ） </rp></ruby>，这次它也[发布](/article-7246-1.html)了 16.04 LTS ，而支持期同其他的分支不同，多达5年，同主发行版一样。Ubuntu 麒麟有一些专门为中国用户定制的功能，包括农历、Dash 中的拼音搜索等等。另外，将 Unity 启动器放到屏幕底部的这个功能也是由麒麟提供的补丁——显然，麒麟会默认将启动器放到底部。

其它的消息还有：

Quirky Linux 8.0 发布，这是一个 Puppy Linux 的姐妹项目。它与最近发布的 Ubuntu 16.04 二进制兼容，可以使用 DEB 软件包。

[RaspEX](http://raspex.exton.se/) 在 Ubuntu 16.04 发布的同一天也发布了 Build 160421，为树莓派2和树莓派3带来了最新的 Ubuntu 16.04。

Linux 内核发布了 [4.5.2](http://lkml.iu.edu/hypermail/linux/kernel/1604.2/03488.html)、[4.4.8 LTS](http://lkml.iu.edu/hypermail/linux/kernel/1604.2/03486.html)、[3.14.67 LTS](http://lkml.iu.edu/hypermail/linux/kernel/1604.2/03484.html)。

Chakra GNU/Linux 滚动发行版更新了 Linux 内核 4.5.1 和最新的 AMDGPU 开源驱动。过段时间会更新 KDE Plasma 5.6.3 和 KDE Applications 16.04。

Wireshark 发布 2.0.3 版本，修改了40个以上的错误。它是世界上最流行的、开源的、跨平台的网络协议分析软件，常被网络安全专家用于排错、分析、开发和培训等用途。

Valve [发布](http://steamcommunity.com/groups/steamuniverse/discussions/1/364039531225584589/)了 [SteamOS](http://store.steampowered.com/steamos/) 2.70，更新了一些驱动和安全补丁，它现在是基于 Debian GNU/Linux 8.4 "Jessie" 开发的。

Nvidia [更新](http://www.nvidia.com/download/driverResults.aspx/101818/en-us)了其 UNIX 图形驱动的“<ruby> 短命版 <rp>  （ </rp> <rt>  Short-Lived </rt> <rp>  ） </rp></ruby>” 分支，支持 GNU/Linux、FreeBSD、Solaris。这个分支通常有最新的改进和修复，但是一般是用来测试的。本次更新的版本 364.19 改进了 Wayland 和 Mir 显示服务器的支持，也初步支持了 Vulkan API 1.0。


Opera 浏览器内置的 VPN 只是个代理而已，而且对我们来说没啥用

Summary: 昨天我们报道过 Opera 浏览器内置了 VPN 服务，用户打开它可以防止他们的在线活动被窥视。不过一位捷克的开发者对此发表了不同意见，认为 Opera 提供的根本不是 VPN，而只是一个代理服务器罢了。

现在一直用vivaldi

然并卵 的东西  基本上一些网站都打不开

不能突破gwf

昨天我们[报道](/article-7255-1.html)过 Opera 浏览器内置了 VPN 服务，用户打开它可以防止他们的在线活动被窥视。不过一位捷克的开发者对此发表了不同意见，认为 Opera 提供的根本不是 VPN，而只是一个代理服务器罢了。

Michal Špacek 是一位 PHP 开发者，他注意到 Opera 的 VPN 设置下方的一行小字：

>
> Secure proxy provided by SurfEasy Inc., an Opera company based in Canada.
>
>
>

由于对这里提到 proxy 感到好奇，他使用自己的开发工具分析了一下 Opera 的 VPN 是如何工作的，然后将他的[发现](https://gist.github.com/spaze/558b7c4cd81afa7c857381254ae7bd10)写到了 Github 上。

![](/data/attachment/album/201604/23/174927z6bu90tn3cz99bf6.png)

“Opera 所谓的‘VPN’其实只是一个预配置的 HTTP/S 代理，它可以保护 Opera 浏览器和代理服务器之间的流量，别的什么都不干。根本不是 VPN！” Špacek 写到，“在 Opera 的设置中，他们居然叫它<ruby> 安全代理 <rp>  （ </rp> <rt>  Secure proxy </rt> <rp>  ） </rp></ruby>（甚至叫做 VPN）。”

安全代理和 VPN 之间的区别是，安全代理可以保护浏览器和代理服务器之间的 Web 流量的安全，而 VPN 则会保护所有的流量，无论是哪种网络协议。

### Opera 也许弄错了 proxy 和 VPN

有些人也许据此认为 Opera 说谎了，但是 Opera 只是个浏览器，只能处理 Web 流量，所以，理论上说，这样的一个安全代理，对于你的 Web 浏览已经足够了。

Opera 也许错误的将这个功能称之为 VPN，但是不管叫什么，它是可以安全使用的，至少对于 HTTP 和 HTTPS 访问来说。如果你要保护其它的网络活动，也许你应该找个真正的 VPN 服务。

正如 Mr. Špacek 在 Twitter 上说的，这件事实际上要看用户是怎么理解的。“最大的风险是用户以为他处于保护之下。我们一般告诉人们 VPN 会加密所有流量信息，而 Opera 号称 VPN 却实际上并没有做 VPN 的事情。”

另外，据国内一些用户反馈，Opera 的 “VPN” 服务很不好用。我们估计，他们部署在加拿大、德国等地的代理服务器有可能被某些网关列入了黑名单，或者是其采用的协议是受到阻拦的。我们认为，Opera 推出的这个“VPN”服务主要目的还是为了让国外用户可以避开国外情报机构的监视，而并不是针对其它的管制。所以，这并没有什么可奇怪的。


开发者称 snap 软件包格式在带有 X11 的 Ubuntu 环境中并不安全

然而wayland并不争气，连Fedora这样的小白鼠发行版都不用它

4/21 日，[Canonical 揭晓了他们最新的 Ubuntu Linux 操作系统 Ubuntu 16.04 LTS（Xenial Xerus）](/article-7254-1.html)，在这个版本中，有个重要的功能是，Ubuntu 16.04 LTS 可以同时支持 deb 和 snap 两种软件包格式。snap 软件包格式用在 Canonical 的物联网操作系统 Snappy Ubuntu Core 中。

snap 软件包格式用来设计配合 Canonical 的新一代显示服务器 Mir 协同工作，它默认用在 Ubunut Touch 移动操作系统上，支持 Ubuntu 电话，以及新的 Ubuntu 平板： BQ Aquaris M10 Ubuntu 版，以给用户提供一流的安全性。

通过在 Ubuntu 桌面版和 Ubuntu 服务器版中支持安装 snap 软件包，Canonical 在给 Ubuntu 用户及时地提供软件更新方面取得了长足进展。Mozilla 是第一个[在 Ubuntu 上以 snap 软件包格式提供软件](/article-7256-1.html)的厂商，估计今年稍晚时候就会提供 Firefox 的 snap 包。

### 在 X11 下 snap 软件包并不安全

据著名的 CoreOS 安全开发者及 Linux 内核贡献者 [Matthew Garrett 称](http://mjg59.dreamwidth.org/42320.html)， Canonical 的新式 snap 软件包格式用在 X.Org 服务器（X11 Window 系统）下很不安全，而 X11 目前仍旧是 Ubuntu 16.04 LTS 的默认显示服务器。

这个问题本质上是由于 X11 的古老设计，众所周知它在安全性上很差。Matthew Garrett 制作了一个简单的 snap 软件包来演示这个问题，它可以做到从其它的 X11 软件中偷取数据，比如可以获取你在 Mozilla Firefox 浏览器中输入的内容。

“我做了一个快速的概念验证，从 git 上获取了 [XEvilTeddy](https://github.com/mjg59/xevilteddy)，安装 Snapcraft （它在 16.04 中）， 用 snapcraft 制作 snap，然后运行 sudo snap install xevilteddy\*.snap，接着执行 /snap/bin/xevilteddy.xteddy。这是一个可爱的泰迪熊，真萌~ 现在打开 Firefox 并输入东西，然后去看看你的终端窗口。哦，天哪，我的小秘密呢... 再开一个终端窗口，然后将输入焦点放到其上，哦，我的天，一个被劫持的命令，它被替换成一个 curl 会话，可以上传你的 SSH 私钥到鬼才知道的某个地方。”

到目前为止，snap 格式还没流行起来，特别是因为目前只有很少的软件包支持这种格式。但是这也许不久就会改变，越来越多的开发者会以 snap 格式提供他们的软件，所以 Canonical 需要为使用 X11 的 Ubuntu 的安全性做些工作。

这也是为何大多数 GNU/Linux 发行版应该尽快切换到 Wayland 或 Mir 显示服务器的另外一个原因，尤其是现在的大多数桌面环境（如 GNOME 和 KDE）都支持它们了。不过，从另外一方面说，这个 snap 的安全问题不会影响到 Ubuntu 服务器操作系统，因为它根本没有显示服务器。

我们按照 Mr. Garrett 的指导，在一个最新更新的 Ubuntu 16.04 LTS 的机器上使用 Snapcraft 创建了 xevilteddy 的 snap 包。成功的创建了 snap 并安装之后，我们确认，当你看到如下的截屏时，这表明 xevilteddy 应用可以偷取你在另外一个 X11 应用中输入的任何内容，也能够使用 curl 将你的 SSH 密钥发送到远程的站点去。

![](/data/attachment/album/201604/24/134107s0uae0ruqmm74up7.jpg)


开源新闻速递(160425)：Cinnamon 发布了 3.0

Summary:
Linux 内核 4.6 将在下个月到来；
Lubuntu 16.04 支持树莓派2

看来，Ubuntu 16.04 LTS 发布的余波还没有结束，作为 LTS 发布，Canonical 相当重视这次发布，因此其各个分支版本的充斥了这几天的开源新闻。让我们继续介绍一下，这一波发布还有哪些消息。

Lubuntu 16.04 LTS 上周发布的时候，我们提到了它同时发布了支持 PPC 的镜像，而今天它又[更新](http://lubuntu.me/raspberry-pi2-version-16-04-lts/)了支持树莓派2的[镜像](http://lubuntu.me/downloads/)。

而随着 Ubuntu 16.04 LTS 的发布，很多基于它的发行版也纷纷更新，比如 Mythbuntu 就[发布](http://www.mythbuntu.org/home/news/mythbuntu1604released)了 16.04 LTS，这是一个以 MythTV 为中心的媒体版，采用的是 MythTV 0.28 ；但是也有的衍生版则不理会新的 LTS，而继续在老的 LTS 上死磕，比如 Black Lab Linux 刚刚[发布](http://www.blacklablinux.org/2016/04/black-lab-linux-76-released.html)了 7.6 版，它是基于 Ubuntu 14.04 LTS 的，采用的内核依旧是 3.X 系列内核：3.19.0-58。

紧接着 Ubuntu 16.04 LTS 发布之后， Canonical 和往常一样，紧锣密鼓的启动了下一个版本 16.10 的开发——感觉版本更迭的好累啊。下一个版本 16.10 不是 LTS 版本，其代码代号是 Yakkety Yak，预计在今年的10月20日发布。根据[计划](https://wiki.ubuntu.com/YakketyYak/ReleaseSchedule)，期间要经过多个 Alpha 版本、 Beta 版本和 RC 版本，事实上，现在就已经可以[下载每日构建镜像](http://cdimage.ubuntu.com/daily-live/20160424/)了。

除了 Ubuntu 系列的新闻外，还有两则多媒体类的新闻：花费了两个月时间，经历了两个 RC 版本，Kodi 媒体中心[发布](https://kodi.tv/kodi-16-1-jarvis-mark-xvi/)了 16.1 版本，对 DirectX 渲染有多处改进；MKVToolNix [发布](https://www.bunkus.org/blog/2016/04/mkvtoolnix-v9-1-0-released/)了 9.1.0 版本，这是一个广泛使用的跨平台的 MKV 操作工具，初步支持了 WebVTT 字幕。

Linus Torvalds 先生在上个周日做了其常规的周日发布，[宣布](http://lkml.iu.edu/hypermail/linux/kernel/1604.3/00178.html)了 Linux 内核的 4.6 的 RC5 版本。如果 Torvalds 先生不准备发布 RC7 的话，看起来 Linux 内核 4.6 会在下个月中旬到来。

![](/data/attachment/album/201604/25/132120oeffh6jezau6eaca.jpg)

最后，但是并不是不重要，[Cinnamon](https://github.com/linuxmint/Cinnamon) 发布了 3.0.0 版本！它会出现在即将发布的 Linux Mint 18 "Sarah" 中。Cinnamon 3.0 带来了许多新功能，包括：可以让用户在菜单中隐藏或显示 favbox；重新用 Python 开发了声音设置；可以一次性全部静音所有音源等等。


用 Python 打造你的 Eclipse

Summary: Eclipse 高级脚本环境（EASE）项目虽然还在开发中，但是必须要承认它非常强大，它让我们可以快速打造自己的Eclipse 开发环境。

不错，待会试试

![](/data/attachment/album/201604/25/191915fryzxzybvavz4m0o.png)

Eclipse 高级脚本环境（[EASE](https://eclipse.org/ease/)）项目虽然还在开发中，但是必须要承认它非常强大，它让我们可以快速打造自己的Eclipse 开发环境。

依据 Eclipse 强大的框架，可以通过其内建的插件系统全方面的扩展 Eclipse。然而，编写和部署一个新的插件还是十分麻烦，即使你只是需要一个额外的小功能。不过，现在依托于 EASE，你可以不用写任何一行 Java 代码就可以方便的做到这点。EASE 是一种使用 Python 或者 Javascript 这样的脚本语言自动实现这些功能的平台。

本文中，根据我在今年北美的 EclipseCon 大会上的[演讲](https://www.eclipsecon.org/na2016/session/scripting-eclipse-python)，我将介绍如何用 Python 和 EASE 设置你的 Eclipse 环境，并告诉如何发挥 Python 的能量让你的 IDE 跑的飞起。

### 安装并运行 "Hello World"

本文中的例子使用 Python 的 Java 实现 Jython。你可以将 EASE 直接安装到你已有的 Eclipse IDE 中。本例中使用[Eclipse Mars](https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers-451/mars1)，并安装 EASE 环境本身以及它的模块和 Jython 引擎。

使用 Eclipse 安装对话框(`Help>Install New Software`...)，安装 EASE：<http://download.eclipse.org/ease/update/nightly>，

选择下列组件：

* EASE Core feature
* EASE core UI feature
* EASE Python Developer Resources
* EASE modules (Incubation)

这会安装 EASE 及其模块。这里我们要注意一下 Resource 模块，此模块可以访问 Eclipse 工作空间、项目和文件 API。

![](/data/attachment/album/201604/25/191916dtj4tmszt433tsmx.png)

成功安装后，接下来安装 EASE Jython 引擎 <https://dl.bintray.com/pontesegger/ease-jython/> 。完成后，测试下。新建一个项目并新建一个 hello.py 文件，输入：

```
print "hello world"

```

选中这个文件，右击并选择“Run as -> EASE script”。这样就可以在控制台看到“Hello world”的输出。

现在就可以编写 Python 脚本来访问工作空间和项目了。这种方法可以用于各种定制，下面只是一些思路。

### 提升你的代码质量

管理良好的代码质量本身是一件非常烦恼的事情，尤其是当需要处理一个大型代码库或者要许多工程师参与的时候。而这些痛苦可以通过脚本来减轻，比如批量格式化一些文件，或者[去掉文件中的 unix 式的行结束符](http://code.activestate.com/recipes/66434-change-line-endings/)来使得在 git 之类的源代码控制系统中比较差异更加容易。另外一个更好的用途是使用脚本来生成 Eclipse markers 以高亮你可以改善的代码。这里有一些示例脚本，你可以用来在 java 文件中所有找到的“printStackTrace”方法中加入task markers 。请看[源码](https://gist.github.com/tracymiranda/6556482e278c9afc421d)。

拷贝该文件到工作空间来运行，右击并选择“Run as -> EASE script”。

```
loadModule('/System/Resources')

from org.eclipse.core.resources import IMarker

for ifile in findFiles("*.java"):
    file_name = str(ifile.getLocation())
    print "Processing " + file_name
    with open(file_name) as f:
        for line_no, line in enumerate(f, start=1):
            if "printStackTrace" in line:
                marker = ifile.createMarker(IMarker.TASK)
                marker.setAttribute(IMarker.TRANSIENT, True)
                marker.setAttribute(IMarker.LINE_NUMBER, line_no)
                marker.setAttribute(IMarker.MESSAGE, "Fix in Sprint 2: " + line.strip())

```

如果你的 java 文件中包含了 printStackTraces，你就可以看见任务视图和编辑器侧边栏上自动新加的标记。

![](/data/attachment/album/201604/25/191916xrf3fa6nsaffforj.png)

### 自动构建繁琐任务

当同时工作在多个项目的时候，肯定需要完成许多繁杂、重复的任务。可能你需要在所有源文件头上加入版权信息，或者采用新框架时候自动更新文件。例如，当首次切换到 Tycho 和 Maven 的时候，我们需要 giel每个项目添加 pom.xml 文件。使用几行 Python 代码可以很轻松的完成这个任务。然后当 Tycho 支持无 pom 构建后，我们需要移除不要的 pom 文件。同样，几行代码就可以搞定这个任务，例如，这里有个脚本可以在每一个打开的工作空间项目上加入 README.md。请看源代码 [add\_readme.py](https://gist.github.com/tracymiranda/f20f233b40f1f79b1df2)。

拷贝该文件到工作空间来运行，右击并选择“Run as -> EASE script”。

```
loadModule('/System/Resources')

for iproject in getWorkspace().getProjects():
    if not iproject.isOpen():
        continue

    ifile = iproject.getFile("README.md")

    if not ifile.exists():
        contents = "# " + iproject.getName() + "\n\n"
        if iproject.hasNature("org.eclipse.jdt.core.javanature"):
            contents += "A Java Project\n"
        elif iproject.hasNature("org.python.pydev.pythonNature"):
            contents += "A Python Project\n"
        writeFile(ifile, contents)

```

脚本运行的结果会在每个打开的项目中加入 README.md，java 和 Python 的项目还会自动加上一行描述。

![](/data/attachment/album/201604/25/191917t5sikssm56m0jm85.png)

### 构建新功能

你可以使用 Python 脚本来快速构建一些急需的功能，或者做个原型给团队和用户演示你想要的功能。例如，一个 Eclipse 目前不支持的功能是自动保存你正在工作的文件。即使这个功能将会很快提供，但是你现在就可以马上拥有一个能每隔 30 秒或处于后台时自动保存的编辑器。以下是主要方法的片段。请看下列代码：[autosave.py](https://gist.github.com/tracymiranda/e9588d0976c46a987463)。

```
def save_dirty_editors():
    workbench = getService(org.eclipse.ui.IWorkbench)
    for window in workbench.getWorkbenchWindows():
        for page in window.getPages():
            for editor_ref in page.getEditorReferences():
                part = editor_ref.getPart(False)
                if part and part.isDirty():
                    print "Auto-Saving", part.getTitle()
                    part.doSave(None)

```

在运行脚本之前，你需要勾选 'Allow Scripts to run code in UI thread' 设定，这个设定在 Window > Preferences > Scripting 中。然后添加该脚本到工作空间，右击并选择“Run as > EASE Script”。每次编辑器自动保存时，控制台就会输出一个保存的信息。要关掉自动保存脚本，只需要点击控制台的红色方块的停止按钮即可。

![](/data/attachment/album/201604/25/191917swd14d7ycg8la18m.png)

### 快速扩展用户界面

EASE 最棒的事情是可以将你的脚本与 IDE 界面上元素（比如一个新的按钮或菜单）结合起来。不需要编写 java 代码或者安装新的插件，只需要在你的脚本前面增加几行代码。

下面是一个简单的脚本示例，用来创建三个新项目。

```
# name      : Create fruit projects
# toolbar   : Project Explorer
# description   : Create fruit projects

loadModule("/System/Resources")

for name in ["banana", "pineapple", "mango"]:
    createProject(name)

```

上述注释会专门告诉 EASE 增加了一个按钮到 Project Explorer 工具条。下面这个脚本是用来增加一个删除这三个项目的按钮的。请看源码 [createProjects.py](https://gist.github.com/tracymiranda/55995daaea9a4db584dc) 和 [deleteProjects.py](https://gist.github.com/tracymiranda/baa218fc2c1a8e898194)。

```
# name            :Delete fruit projects
# toolbar        : Project Explorer
# description    : Get rid of the fruit projects

loadModule("/System/Resources")

for name in ["banana", "pineapple", "mango"]:
    project = getProject(name)
    project.delete(0, None)

```

为了使按钮显示出来，增加这两个脚本到一个新的项目，假如叫做 'ScriptsProject'。然后到 Windows > Preference > Scripting > Script Location，点击 'Add Workspace' 按钮并选择 ScriptProject 项目。这个项目现在会成为放置脚本的默认位置。你可以发现 Project Explorer 上出现了这两个按钮，这样你就可以通过这两个新加的按钮快速增加和删除项目。

![](/data/attachment/album/201604/25/191917oycpekkflccppc55.png)

### 整合第三方工具

不管怎么说，你可能需要除了 Eclipse 生态系统以外的工具（这是真的，虽然 Eclipse 已经很丰富了，但是不是什么都有）。这些时候你会发现将他们包装在一个脚本来调用会非常方便。这里有一个简单的例子让你整合资源管理器，并将它加入到右键菜单栏，这样点击图标就可以打开资源管理器浏览当前文件。请看源码 [explorer.py](https://gist.github.com/tracymiranda/8aa3f0fc4bf44f4a5cd3)。

```
# name      : Explore from here
# popup     : enableFor(org.eclipse.core.resources.IResource)
# description   : Start a file browser using current selection
loadModule("/System/Platform")
loadModule('/System/UI')

selection = getSelection()
if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection):
    selection = selection.getFirstElement()

if not isinstance(selection, org.eclipse.core.resources.IResource):
    selection = adapt(selection, org.eclipse.core.resources.IResource)

if isinstance(selection, org.eclipse.core.resources.IFile):
    selection = selection.getParent()

if isinstance(selection, org.eclipse.core.resources.IContainer):
    runProcess("explorer.exe", [selection.getLocation().toFile().toString()])

```

为了让这个菜单显示出来，像之前一样将该文件加入一个新项目，比如说 'ScriptProject'。然后到 Windows > Preference > Scripting > Script Locations，点击“Add Workspace”并选择 'ScriptProject' 项目。当你在文件上右击鼠标键，你会看到弹出菜单出现了新的菜单项。点击它就会出现资源管理器。（注意，这个功能已经出现在 Eclipse 中了，但是你可以在这个例子中换成其它第三方工具。）

![](/data/attachment/album/201604/25/191918r7cyc7cl7zxlrtt4.png)

Eclipse 高级基本环境 （EASE）提供一套很棒的扩展功能，使得 Eclipse IDE 能使用 Python 来轻松扩展。虽然这个项目还在早期，但是[关于这个项目](https://eclipse.org/ease/)更多更棒的功能也正在加紧开发中，如果你想为它做出贡献，请到[论坛](https://dev.eclipse.org/mailman/listinfo/ease-dev)讨论。

我会在 2016 年的 [Eclipsecon North America](https://www.eclipsecon.org/na2016) 会议上发布更多 EASE 细节。我的演讲 [Scripting Eclipse with Python](https://www.eclipsecon.org/na2016/session/scripting-eclipse-python) 也会不单会介绍 Jython，也包括 C-Python 和这个功能在科学领域是如何扩展的。

---

via: <https://opensource.com/life/16/2/how-use-python-hack-your-ide>

作者：[Tracy Miranda](https://opensource.com/users/tracymiranda) 译者：[VicYu/Vic020](http://vicyu.net) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


支持树莓派3的 Chromium OS 发布0.5版本

Chromium OS for SBC 项目发布了<ruby> 树莓派 <rp>  （ </rp> <rt>  Raspberry Pi </rt> <rp>  ） </rp></ruby> 3 版本，已经可以下载安装了。

这是该项目第一次发布面向树莓派3的版本，其版本号 0.5 则是沿袭自面向树莓派2的0.5版本。

树莓派3B 发布于2016年2月的最后一天，具有内建的 Wi-Fi 和蓝牙支持，以及64位的 quad-core ARM Cortex-A53 处理器。而现在，Chromium OS for SBC 项目成功地将 Chromium OS 移植到了树莓派3上了。

![](/data/attachment/album/201604/26/095426y7p8v6yhjorhj8vy.jpg)

### 面向树莓派3 的 Chrome OS 0.5 版亮点

不要被这个版本号所迷惑，面向树莓派3的 Chromium OS 其实并没有之前的版本，该团队只是将面向树莓派2的0.5版移植到了树莓派3罢了。

在这个版本中，我们注意到使用的是精简了大小的 Linux 4.2.8-ckt8 内核，它调整了 BFS 以减少延迟、更少的调试输出、以及非动态时钟、声卡驱动的多项改进、更好的存储性能，这些主要都是由于新的 BFQ 分层调度器和实时调度器的优化带来的。

用户体验也有了较大改善，为用户修复了 Kiosk 模式从而取得了更好的性能，也有一些小的视频方面的改进，特别是修复了 VC4 GPU 驱动和各种视频模式，比如让树莓派版的 Chromium OS 运行在非 1080p 显示下。

在这个首次移植版本中还有一些不足，比如现在还不支持树莓派 3B 板载的 Wi-Fi、不能播放 Netflix 视频、HTML 5 回放仅支持提供了 Flash 替代回放的网站。

你现在就可以从该项目的官网上下载 [Chromium OS for Raspberry Pi 3 0.5 二进制镜像](http://www.chromiumosforsbc.org/download/)了。对了，最后补充一句，该项目团队正在将 Chromium OS 移植到 PINE64 单板计算机上，几周后就能发布了。


Firefox 46.0 发布！终于为 Linux 用户集成了 GTK3！

换了个数字，居然是最小的一个发布版本。

GTK3然后嘞？会有什么惊艳的外观变化么？

应该说，主要的精力可能都放在 GTK3 集成了，所以其他的变化就很少了。

终于等到你……

我能说24号的时候更新的就已经是46而不是46 beta了吗。。。

支持gtk3到底意味着什么？

其实就是可以同其它的 GTK 3的一些应用更好的配合，比如输入法。

更新后外观无改变，而且滚动条消失 = =

支持一下！

这图片，我有点邪恶了。

请看本篇的前传~~然后你就会知道，这是传统~

Firfox47 beta1昨天推送更新啦

就在刚才，我们发现 Mozilla 将最终版本的 Firefox 46.0 上传到了他们的 FTP 服务器上，不过目前官方还没有正式更新下载链接。

被一直期待的 Firefox 46.0 定于今天发布，这次他们终于完成了[承诺](/article-7102-1.html)，在 GNU/Linux 平台上集成了 GTK3！集成 GTK3 这个事情可是从 Firefox 42.0 就开始给 Linux 用户们许诺了，而在 2015 年 11 月 42.0 发布时显然并没完成承诺，期间屡次许诺完成又屡次失信，直到现在才算真正实现。

![](/data/attachment/album/201604/26/103535a8nzr1brrdrwwcrc.jpg)

除了 GTK3 之外，此次新版本还改进了 JavaScript JIT（Just In Time）编译器的安全，支持使用<ruby> 内容解密模块 <rp>  （ </rp> <rt>  Content Decryption Module </rt> <rp>  ） </rp></ruby>（CDN）作为解码未加密的 H.264 和 AAC 流的回退解码器。

Mozilla Firefox 46.0 看起来是一个小的发布版本，应该是我们所见过的最小的一个发布版本了，至少从之前的 Beta 版本的变更日志来看是这样的。从变更日志中可以看到，它改进了 WebRTC API 的稳定性和性能、支持 HTML5 的 document.elementsFromPoint 、增加了 Web Crypto API 的 HKDF 支持。

对于开发者来说，Mozilla Firefox 46.0 现在可以在内存工具中显示 dominator trees，在性能面板中增加了分配和垃圾回收的暂停分析，此外还支持在样式编辑器中直接启动响应模式。


Open365 ：一个开源的 Office 365 替代品

Summary: Open365 主要有两个用途，一个是它可以让你在你的设备和云服务之间同步；另外一个是可以让你通过开源的办公套件 LibreOffice Online 所提供的功能在云上查看、修改和创建文档。

国内用顺畅吧？

这个，不适合在天朝用，尤其不适合中国人用。

问题1：无法显示中文汉字，中文字全部显示为“方框”

问题2：速度非常慢，再有耐心的人用着也会抓狂

问题3：You are experiencing unsteady internet connectivity. Please check your network access.

问题4：基本上用不了…

这客户端怎么这么像Seafile？

已經試用了，就是Seafile。

libreoffice真的...用起来很不爽....

Open365 是一个开源的 Office 365 替代品，可以让你在线创建和编辑文档，并将文件同步到云上。

目前该服务还处于 Beta 测试期间，不过已经可以在其官网注册使用了。你可以通过 Web 浏览器使用它，也可以下载 Windows、Mac 或 Linux 桌面的客户端，Android 客户端也已经有了，而 iOS 客户端将在不久后发布。

Open365 主要有两个用途，一个是它可以让你在你的设备和云服务之间同步；另外一个是可以让你通过开源的办公套件 [LibreOffice Online](http://www.ghacks.net/2015/12/17/code-libreoffice-online-with-owncloud-integration/) 所提供的功能在云上查看、修改和创建文档。

### Open365

![open365](/data/attachment/album/201604/26/113956wk99k0tmfrkg92r5.png)

现在你就可以在其官网上注册使用，不过其开发者计划将它开源，到时候你就可以将它安装到你自己的服务器上了。

当你注册后，你会得到一个邮件地址，可以用它来登录网站服务及同步客户端，它同时也提供了邮件服务。

你会有 20G 的存储容量，这要远超现在的其它文件同步服务。不过并不清楚是不是这20G 容量仅可用于 Beta 测试期间。

登录该网站服务，会自动载入一个“Hub”视图，默认情况下，它会列出你自己所有的库和分享给你的库。

点击文件夹会在网站页面上打开该文件夹，而点击文件则视文件类型采取不同动作，如果是支持的格式会直接打开编辑器，否则会下载它。支持的格式包括典型的文档格式，如 docx、xls 或 pptx 等，也支持查看常见的图片格式，可以回放音频和视频。

库和文件可以在线分享或删除，你也可以通过网站页面直接上传新的文件。你可以在网站页面上直接创建新的库，并指定加密选项，只有输入正确的密码才能访问——这个密码不是账户密码。

库和文件可以分享给某个人和某个用户组，可以通过分享链接取得该文件的完全控制。

#### **文档编辑与创建**

![open365 documents](/data/attachment/album/201604/26/113959x968629nyb8lb0h9.png)

该功能可以如预期的那样工作，你可以在网站页面中双击文档以载入，Open365 会以合适的编辑器打开它。然后你就可以浏览文档，或者打印和编辑它。如果你之前使用过 LibreOffice，无论是在线还是离线，你就会觉得非常熟悉，不过即使你没用过，也没有什么大的问题，你很快就会熟悉的。

Open365 会定期自动保存修改，不过你也可以手动保存。修改过的文档可以保存到线上，也可以保存到本地，也可以保存为原本的格式或者导出成其它兼容的格式。

载入文档的速度有点慢，在显示文档之前可能要等个几秒钟。

### Open365 同步客户端

![open365 sync](/data/attachment/album/201604/26/114001jab07x90z5bzazab.png)

客户端能够如预期的工作起来。你可以拖放文件夹来增加你要同步到云上的文件夹，也可以使用客户端内建的文件夹浏览器来做这个。

当你将文件夹拖放到同步客户端时，它会自动转换成一个库。在你点击开始同步的按钮前，可以修改库的名字和启用加密。

![open365 create](/data/attachment/album/201604/26/114002xb15yscz5b11patc.png)

桌面客户端的选项提供了同步的配置，你随时可以在系统托盘区右键点击打开该菜单。在选项中你可以设置上传和下载的速度限制、禁用 http 同步，或者配置当你从本地删除一个库或在云上没有找到一个库时应该采取的操作。

### **结语**

Open365 是一个 Office 365 和 Google Docs 的替代品，它是免费开源的，支持文件同步和在互联网上查看、编辑和创建文档。

将 Open365 安装到你自己的服务器可以让你完全控制你的文档，而 Office 365 和 Google Docs 则不能做到这一点。


开源新闻速递(160426)：Debian 7 进入 LTS 周期

Summary:
Budgie-Remix 发布了 16.04 LTS；
Thunderbird 有望被接手

我大天山美景横扫这些图片

Debian GNU/Linux 7 "Wheezy" 在昨天[结束了版本周期](https://www.debian.org/News/2016/20160425)，变成了所谓的 LTS 版本，接下来的两年，它将由 Debian LTS (Long Term Support) Team 团队进行支持，为其提供重要的安全补丁和软件更新。（我怎么就觉得 Debian 的这个 LTS 的说法和别家不同呢。）不过对于 Debian 7 的用户来说，并不需要为此做什么修改，LTS 的更新会继续通过原来的 sources.list 通道推送给你——只是推送的少了，不重要的不推罢了。另外，有个变化是，从6/26 开始，OpenJDK 7 会变成新的 Java JRE/JDK，并一直更新到两年后。

![](/data/attachment/album/201604/26/162328hn8ijvmixno5p35b.png)

Fedora 项目组[宣布](https://fedoramagazine.org/introducing-extra-wallpapers-fedora-24/)了墙纸比赛的胜出者，共有 133 个投稿，最终选择了 16 张，它们将会出现在 6 月 7 日发布的 Fedora 24 中。

![](/data/attachment/album/201604/26/151817mldoux0uwdlfluwz.jpg)

![](/data/attachment/album/201604/26/151828dpl2ivh4l4c9lc5z.jpg)![](/data/attachment/album/201604/26/151834ecrrurjefrr4u0ca.jpg)

更多墙纸可以[在此下载](https://fedoramagazine.org/introducing-extra-wallpapers-fedora-24/)，或者等到 Fedora 24 发布。

著名的 Shotwell 开源图片查看器又继续开始维护了，最近[发布](https://mail.gnome.org/archives/gnome-announce-list/2016-April/msg00021.html)了一年来第一个主要版本 0.23.0。现在支持更窄的迷你边栏、支持 WebKit2GTK+ 4.0 开源渲染引擎等。

基于 Ubuntu 16.04 和 Budgie 桌面开发的 [Budgie-Remix](https://xpressubuntu.wordpress.com/) 发布了 16.04 LTS，这个发行版即将会成为 Ubuntu 官方分支，到时候就会改名为 Ubuntu Budgie 了。

继 Lubuntu 16.04 LTS [发布了支持树莓派2的镜像之后](/article-7265-1.html)， Ubuntu MATE 16.04 LTS 也[发布](https://ubuntu-mate.org/blog/ubuntu-mate-xenial-raspberry-pi/)了支持树莓派2和树莓派3的版本，完全支持板载的 Wi-Fi 和蓝牙。此外，[Chromium OS 也发布了支持树莓派3的0.5版](/article-7270-1.html)，但是目前还不能支持板载的 Wi-Fi。

Mozilla Firefox 46.0 发布了，虽然现在官方还没更新下载链接。这次终于在 Linux 平台上支持 GTK3 了，而放弃了老旧的 GTK2。具体可以[阅读此文](/article-7271-1.html)。

还是 Mozilla 的事情，Thunderbird 是一个 Mozilla 开发的著名开源邮件客户端，它发布于 2004 年。它和 Firefox 共享了很多代码，因为它们都用了 Mozilla 的 Gecko 渲染引擎。但是自 2012 年起， Mozilla 就[停止了它的开发](http://news.softpedia.com/news/Mozilla-Stops-Thunderbird-Development-Will-Only-Get-Stability-and-Security-Fixes-279909.shtml)，只保持一些安全性和稳定性的修复。而现在，有个[好消息](https://blog.mozilla.org/thunderbird/files/2016/04/Finding-a-Home-for-Thunderbird.pdf)是，至少有两个开源基金会希望接手它的开发和维护。看起来 Thunderbird 会有一个更好的明天了。


从 Hello World 容器进阶是件困难的事情

Summary: 可能对某些人来说这很简单，因为他们在运维工作方面付出了大量的时间。但是对我来说实际上是很困难的，但是还有一个好消息：我最终搞定了。而且它工作的还不错。所以我准备分享向你分享我如何制作我的第一个微服务容器。我的痛苦可能会节省你不少时间呢。

在[我的上一篇文章里](/article-6594-1.html)， 我介绍了 Linux 容器背后的技术的概念。我写了我知道的一切。容器对我来说也是比较新的概念。我写这篇文章的目的就是鼓励我真正的来学习这些东西。

我打算在使用中学习。首先实践，然后上手并记录下我是怎么走过来的。我假设这里肯定有很多像 "Hello World" 这种类型的知识帮助我快速的掌握基础。然后我能够更进一步，构建一个微服务容器或者其它东西。

我想，它应该不会有多难的。

但是我错了。

可能对某些人来说这很简单，因为他们在运维工作方面付出了大量的时间。但是对我来说实际上是很困难的，可以从我在Facebook 上的状态展示出来的挫折感就可以看出了。

但是还有一个好消息：我最终搞定了。而且它工作的还不错。所以我准备分享向你分享我如何制作我的第一个微服务容器。我的痛苦可能会节省你不少时间呢。

如果你曾经发现你也处于过这种境地，不要害怕：像我这样的人都能搞定，所以你也肯定行。

让我们开始吧。

![](/data/attachment/album/201604/27/075114th59hcys5hf00b59.png)

### 一个缩略图微服务

我设计的微服务在理论上很简单。以 JPG 或者 PNG 格式在 HTTP 终端发布一张数字照片，然后获得一个100像素宽的缩略图。

下面是它的流程：

![container-diagram-0](/data/attachment/album/201604/27/075116myjj7cgvdjrmmvz2.png)

我决定使用 NodeJS 作为我的开发语言，使用 [ImageMagick](https://github.com/rsms/node-imagemagick) 来转换缩略图。

我的服务的第一版的逻辑如下所示：

![container-diagram-1](/data/attachment/album/201604/27/075117gwacgat4ic9mtzcc.png)

我下载了 [Docker Toolbox](https://www.docker.com/toolbox)，用它安装了 Docker 的快速启动终端（Docker Quickstart Terminal）。Docker 快速启动终端使得创建容器更简单了。终端会启动一个装好了 Docker 的 Linux 虚拟机，它允许你在一个终端里运行 Docker 命令。

虽然在我的例子里，我的操作系统是 Mac OS X。但是 Windows 下也有相同的工具。

我准备使用 Docker 快速启动终端里为我的微服务创建一个容器镜像，然后从这个镜像运行容器。

Docker 快速启动终端就运行在你使用的普通终端里，就像这样：

![container-diagram-2](/data/attachment/album/201604/27/075118oll7zvv7l0lqzvcn.png)

### 第一个小问题和第一个大问题

我用 NodeJS 和 ImageMagick 瞎搞了一通，然后让我的服务在本地运行起来了。

然后我创建了 Dockerfile，这是 Docker 用来构建容器的配置脚本。（我会在后面深入介绍构建过程和 Dockerfile）

这是我运行 Docker 快速启动终端的命令：

```
$ docker build -t thumbnailer:0.1

```

获得如下回应：

```
docker: "build" requires 1 argument.

```

呃。

我估摸着过了15分钟我才反应过来：我忘记了在末尾参数输入一个点`.`。

正确的指令应该是这样的：

```
$ docker build -t thumbnailer:0.1 .

```

但是这不是我遇到的最后一个问题。

我让这个镜像构建好了，然后我在 Docker 快速启动终端输入了 [`run` 命令](https://docs.docker.com/reference/commandline/run/)来启动容器，名字叫 `thumbnailer:0.1`:

```
$ docker run -d -p 3001:3000 thumbnailer:0.1

```

参数 `-p 3001:3000` 让 NodeJS 微服务在 Docker 内运行在端口3000，而绑定在宿主主机上的3001。

到目前看起来都很好，对吧？

错了。事情要马上变糟了。

我通过运行 `docker-machine` 命令为这个 Docker 快速启动终端里创建的虚拟机指定了 ip 地址：

```
$ docker-machine ip default

```

这句话返回了默认虚拟机的 IP 地址，它运行在 Docker 快速启动终端里。在我这里，这个 ip 地址是 192.168.99.100。

我浏览网页 <http://192.168.99.100:3001/> ，然后找到了我创建的上传图片的网页：

![container-diagram-3](/data/attachment/album/201604/27/075118w4e12qxppq3npkpk.png)

我选择了一个文件，然后点击上传图片的按钮。

但是它并没有工作。

终端告诉我他无法找到我的微服务需要的 `/upload` 目录。

现在，你要知道，我已经在此耗费了将近一天的时间－从浪费时间到研究问题。我此时感到了一些挫折感。

然后灵光一闪。某人记起来微服务不应该自己做任何数据持久化的工作！保存数据应该是另一个服务的工作。

所以容器找不到目录 `/upload` 的原因到底是什么？这个问题的根本就是我的微服务在基础设计上就有问题。

让我们看看另一幅图：

![container-diagram-4](/data/attachment/album/201604/27/075119szuxasd6xxxurr1j.png)

我为什么要把文件保存到磁盘？微服务按理来说是很快的。为什么不能让我的全部工作都在内存里完成？使用内存缓冲可以解决“找不到目录”这个问题，而且可以提高我的应用的性能。

这就是我现在所做的。下面是我的计划：

![container-diagram-5](/data/attachment/album/201604/27/075120at22uz2kerqplus2.png)

这是我用 NodeJS 写的在内存运行、生成缩略图的代码：

```
// Bind to the packages
var express = require('express');
var router = express.Router();
var path = require('path'); // used for file path
var im = require("imagemagick");

// Simple get that allows you test that you can access the thumbnail process
router.get('/', function (req, res, next) {
 res.status(200).send('Thumbnailer processor is up and running');
});

// This is the POST handler. It will take the uploaded file and make a thumbnail from the
// submitted byte array. I know, it's not rocket science, but it serves a purpose
router.post('/', function (req, res, next) {
 req.pipe(req.busboy);
 req.busboy.on('file', function (fieldname, file, filename) {
   var ext = path.extname(filename)

   // Make sure that only png and jpg is allowed
   if(ext.toLowerCase() != '.jpg' && ext.toLowerCase() != '.png'){
     res.status(406).send("Service accepts only jpg or png files");
   }

   var bytes = [];

   // put the bytes from the request into a byte array
   file.on('data', function(data) {
     for (var i = 0; i < data.length; ++i) {
       bytes.push(data[i]);
     }
     console.log('File [' + fieldname + '] got bytes ' + bytes.length + ' bytes');
   });

   // Once the request is finished pushing the file bytes into the array, put the bytes in
   // a buffer and process that buffer with the imagemagick resize function
   file.on('end', function() {
     var buffer = new Buffer(bytes,'binary');
     console.log('Bytes  got ' + bytes.length + ' bytes');

     //resize
     im.resize({
         srcData: buffer,
         height: 100
     }, function(err, stdout, stderr){
       if (err){
         throw err;
       }
       // get the extension without the period
       var typ = path.extname(filename).replace('.','');
       res.setHeader("content-type", "image/" + typ);
       res.status(200);
       // send the image back as a response
       res.send(new Buffer(stdout,'binary'));
     });
   });
 });
});

module.exports = router;

```

好了，一切回到了正轨，已经可以在我的本地机器正常工作了。我该去休息了。

但是，在我测试把这个微服务当作一个普通的 Node 应用运行在本地时...

![Containers Hard](/data/attachment/album/201604/27/075121k3swmmbs1pqqrxsb.png)

它工作的很好。现在我要做的就是让它在容器里面工作。

第二天我起床后喝点咖啡，然后创建一个镜像——这次没有忘记那个"."!

```
$ docker build -t thumbnailer:01 .

```

我从缩略图项目的根目录开始构建。构建命令使用了根目录下的 Dockerfile。它是这样工作的：把 Dockerfile 放到你想构建镜像的地方，然后系统就默认使用这个 Dockerfile。

下面是我使用的Dockerfile 的内容：

```
FROM ubuntu:latest
MAINTAINER bob@CogArtTech.com

RUN apt-get update
RUN apt-get install -y nodejs nodejs-legacy npm
RUN apt-get install imagemagick libmagickcore-dev libmagickwand-dev
RUN apt-get clean

COPY ./package.json src/

RUN cd src && npm install

COPY . /src

WORKDIR src/

CMD npm start

```

这怎么可能出错呢？

### 第二个大问题

我运行了 `build` 命令，然后出了这个错：

```
Do you want to continue? [Y/n] Abort.

The command '/bin/sh -c apt-get install imagemagick libmagickcore-dev libmagickwand-dev' returned a non-zero code: 1

```

我猜测微服务出错了。我回到本地机器，从本机启动微服务，然后试着上传文件。

然后我从 NodeJS 获得了这个错误：

```
Error: spawn convert ENOENT

```

怎么回事？之前还是好好的啊！

我搜索了我能想到的所有的错误原因。差不多4个小时后，我想：为什么不重启一下机器呢？

重启了，你猜猜结果？错误消失了！（LCTT 译注：万能的“重启试试”）

继续。

### 将精灵关进瓶子里

跳回正题：我需要完成构建工作。

我使用 [`rm` 命令](https://docs.docker.com/reference/commandline/rm/)删除了虚拟机里所有的容器。

```
$ docker rm -f $(docker ps -a -q)

```

`-f` 在这里的用处是强制删除运行中的镜像。

然后删除了全部 Docker 镜像，用的是[命令 `rmi`](https://docs.docker.com/reference/commandline/rmi/):

```
$ docker rmi if $(docker images | tail -n +2 | awk '{print $3}')

```

我重新执行了重新构建镜像、安装容器、运行微服务的整个过程。然后过了一个充满自我怀疑和沮丧的一个小时，我告诉我自己：这个错误可能不是微服务的原因。

所以我重新看到了这个错误：

```
Do you want to continue? [Y/n] Abort.

The command '/bin/sh -c apt-get install imagemagick libmagickcore-dev libmagickwand-dev' returned a non-zero code: 1

```

这太打击我了：构建脚本好像需要有人从键盘输入 Y！ 但是，这是一个非交互的 Dockerfile 脚本啊。这里并没有键盘。

回到 Dockerfile，脚本原来是这样的：

```
RUN apt-get update
RUN apt-get install -y nodejs nodejs-legacy npm
RUN apt-get install imagemagick libmagickcore-dev libmagickwand-dev
RUN apt-get clean

```

第二个`apt-get` 忘记了`-y` 标志，它用于自动应答提示所需要的“yes”。这才是错误的根本原因。

我在这条命令后面添加了`-y` ：

```
RUN apt-get update
RUN apt-get install -y nodejs nodejs-legacy npm
RUN apt-get install -y imagemagick libmagickcore-dev libmagickwand-dev
RUN apt-get clean

```

猜一猜结果：经过将近两天的尝试和痛苦，容器终于正常工作了！整整两天啊！

我完成了构建工作：

```
$ docker build -t thumbnailer:0.1 .

```

启动了容器：

```
$ docker run -d -p 3001:3000 thumbnailer:0.1

```

获取了虚拟机的IP 地址：

```
$ docker-machine ip default

```

在我的浏览器里面输入 <http://192.168.99.100:3001/> ：

上传页面打开了。

我选择了一个图片，然后得到了这个：

![container-diagram-7](/data/attachment/album/201604/27/075122aq9qq848vja84g69.png)

工作了！

在容器里面工作了，我的第一次啊！

### 这让我学到了什么?

很久以前，我接受了这样一个道理：当你刚开始尝试某项技术时，即使是最简单的事情也会变得很困难。因此，我不会把自己当成最聪明的那个人，然而最近几天尝试容器的过程就是一个充满自我怀疑的旅程。

但是你想知道一些其它的事情吗？这篇文章是我在凌晨2点完成的，而每一个受折磨的时刻都值得了。为什么？因为这段时间你将自己全身心投入了喜欢的工作里。这件事很难，对于所有人来说都不是很容易就获得结果的。但是不要忘记：你在学习技术，运行世界的技术。

P.S. 了解一下Hello World 容器的两段视频，这里会有 [Raziel Tabib’s](http://twitter.com/RazielTabib) 的精彩工作内容。

千万被忘记第二部分...

---

via: <https://deis.com/blog/2015/beyond-hello-world-containers-hard-stuff>

作者：[Bob Reselman](https://deis.com/blog) 译者：[Ezio](https://github.com/oska874) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


我是如何学习 Linux 的

Summary: 第一、抱着良好的心态去学习；第二、合适的学习方式和教材；第三、不要抵触“无聊”的英语；第四、找到乐趣以及伙伴；第五、多动手实践

不错哦，我也想学一下，呵呵

<<Linux就該這麼學>>這本書挺好的。文中點了一個關鍵，其實英語好了，學習Linux會進步很快，英語世界有很多很好的初學教科書，比如<<Linux Bible>>、<<Debian Administrator Handbook>>，wiki, document, man...就更不用說了～

<鸟哥的linux私房菜>和<Linux就该这么学>都是国内品质最好的Linux教材，没有推荐之分。

just look

学习Linux应用层面是一部分，当有一定的基础的时候，建议花点时间学习Linux内核和操作系统层面的知识，可以拓宽Linux的视野。推荐《深入理解Linux内核》和《操作系统的精髓和原理设计》

想学好Linux？简单，把你最常用的笔记本或电脑都换成Linux系统即可。

好玩！就继续咯！

谢谢前辈分享经验

mark

zan

赞！

默默支持   ！

默默支持

如果想做专业人士，可以跟着马哥学一下

马哥现在在北京上课了。。。

为何要学习 Linux？

这个问题可能困扰着很多 Linux 初学者和爱好者，其实我也说不上来为何要学习 Linux，可能最实在的理由就是----Linux 相关工作岗位很多。在“见到” Linux 的第一面并不会感觉到此物有多么惊艳和神奇，但经历了漫长的学习和接触之后，你会发现它是如此的让人神往和愉悦。

那么，如何才能学好Linux呢？

### 第一、抱着良好的心态去学习

学习 Linux 一定要保持一个良好的心态，切忌怀疑自己的学习方向和成果。

拿我自己的经验来说，我学 Linux 是因为要比赛，学习 Linux 成了我每天的任务，就像“出租车司机每天一起床就欠200百元钱”一样。苦于学校没有专业的老师，只好一心扑在“圣贤书”之上，在经历了半年的强制学习和强制灌输，我产生了严重的自我怀疑：“学习 Linux 有什么用？那么多命令记到死啊？还比什么赛，干脆退赛完事”。这些不良的情绪直接阻碍了我学习的动力和效率，但试问这世间有什么是容易的呢？还记得你敲出的第一条命令在一个“黑漆漆”的窗口中显示了什么样的神迹吗？**学习 Linux 绝非是件易事，但请不要怀疑你自己的方向和成果，你所付出的终将会给丰厚的回报。**

“善终若始，则无败势”这句话就总结了我上面说的一些乱七八糟的话，如果一件事情结束的时候你还能保持像你开始那样心态的话，那么你将立于不败之地。

这一段最后补充一个小的问题吧，不要纠结去学习哪个 Linux 发行版，其实从任何一个发行版开始你的学习之旅都是一样的。

### 第二、合适的学习方式和教材

上面也说了，笔者最开始学习 Linux 的时候纯自学，经历了“鸟哥”的厚重，以及 Linux 从入门到“进坑”，各种各样的书籍和视频充斥着我本来就不太大的脑容量。说实话《鸟哥的 Linux 私房菜》是一本特别好的书，清晰明了、幽默风趣，但因为此书“厚如砖头”以及目前 Linux 的版本情况，所以不太推荐初学者拿此书系统的学习 Linux。当然如果第四版出了还是赶紧拜读一下的好（听说第四版今年就会引入到大陆了）。

又扯了一堆废话，那么来个明确的问题，**选择视频还是书籍？**

很多初学者比较倾向于找一些视频教程来看，其实这真是极好的，但是你得找一些质量高、口碑好，最好是一些大型培训机构内部的视频。但是**请不要一直依赖视频**，毕竟视频除了没有互动之外，跟上课一样的，所以看视频的唯一缺点就是学习成本的增加，这个成本包括了取得费用和时间成本，所以在你什么都不懂而且看书看“懵逼”的时候先看看视频吧。当你把 Linux 基础命令用熟练了，理解简单的服务原理并可以独立配置简单的服务的时候，那么就去看书吧！看书可以大大的节省你的时间、金钱成本。

![](/data/attachment/album/201604/27/101642g5yxyzvji5imyjhv.jpg)

看什么书？我个人比较推荐初学者去系统学习刘遄老师的[《Linux就该这么学》](http://www.linuxprobe.com/)这本书。作为一名从业7年的运维高手，刘遄老师的书籍里每一章的主题非常明确，章节内容也很精练简洁，每个章节最后都会有一些小的练习题和思考题，可以让新手更快、更好的理解和掌握每一章的知识。我自己用了3个月通读了一番，受益匪浅（而且免费）。

当然萝卜白菜各有所爱，选择什么样的学习方式和学习教材对每个人来说都是不一样的，就跟谈恋爱一样，没有最好只有最合适。

### 第三、不要抵触“无聊”的英语

英语无聊吗？楼主目前还在学校学习，经常可以听到一些放弃英语的朋友们说“我们是中国人，干嘛要学英语”，我就提提不吐槽了。

基本上你学习 Linux 或者使用 Linux 一段时间以后，你会发现与其说是学习 Linux 操作系统，还不如说是学习如何阅读英文呢。比如初期我们使用英文基本是在“**找男人**”的时候用的，当然这个 **man** 是个金发碧眼的“猛男”，你跟他说中文？我敢保证他能打死你。:D

随着知识的深入，你可能会需要经常去搜索一些资料，当度娘不能满足你的时候，你还得去找另一个男人---谷哥。你跟谷哥讲中文当然是可以的，但是有时候谷哥会用中文含蓄的跟你表达“我这里资料还是太少了，你去我哥哥（英文谷哥）那问问？” 试问此时如果你不会用英文描述你的问题，或者看不懂外国牛人的回答，那时候真的有种想拿豆腐撞死自己的冲动。

拿一朋友的例子来说，他就属于那种宁可背命令、背参数、背配置格式，也不愿意多记点单词的家伙。但我们仔细分析一下，假如我背了200个在 man 文档中经常出现的单词，通过这200个单词我可以猜测大多数的英文段落的意思，我还用背那些“毫无生机”的命令和参数吗？而且说实话，语言的学习是非常有意思的一件事情。

### 第四、找到乐趣以及伙伴

能从枯燥的学习中找到属于自己的乐趣，这是一件很幸福的事情。楼主在学习的过程中经常会产生一些天马行空的想法，类似于“这样行不行？那样做好不好？如果我这样做会产生什么样的效果？”这种想法总会让我非常急切的去试一试，虽然结果可能跟你的想象相差甚远。甚至这些问题度娘都能告诉你，但我就是喜欢自己动手尝试所带来的“快感”。当然所谓的乐趣也是相对于个人而言的，有些人把尝试新东西当做乐趣，每一次成功输出所产生的小小的成就感也可以是乐趣，当然还有一些恶趣味不是吗？

找到小伙伴也是一件很重要的事情，楼主在刚学习 Linux 的时候有好多同学、学弟学妹在同一屋檐下学习，彼此竞争、彼此帮助，每个人都能得到长足的进步。当然其实这里我想说的是找个已经学会或者从事 Linux 的朋友，当你不会的时候有个人可以帮你，这样会省掉很多查资料、翻文档的时间。

**什么？“那些高手都不理我”。**

亲，我推荐你先检查自己问问题的态度。楼主在长期混迹的 QQ 群中经常见到一些初学者会提问一些问题，在得到回答后连句感谢的话都没有就默默的潜水了，甚至经常看到那种得不到响应就破口大骂的。天哪，谁欠你的吗？OK，自己的态度没问题之后，那么你可以怀疑那些高手是否名副其实，真正的高手永远乐于分享并且伴着强烈的“开源精神”。当然有时候那些大神仅仅会抛出一句“方向”性的回答，但有时候这种答案才是真正优秀的答案，会帮你理清前进道路上的很多岔口。

### 第五、多动手实践

这一段其实真的没必要多说，上面介绍了我自己的 Linux 学习经历和学习方法，这些都是有差异性的，但永恒的不变的是“**熟能生巧**”这四个字，学好 Linux 绝非一朝一夕之事，时间、知识的积累一定可以将你推上顶峰。


开源新闻速递(160427)：Node.js 发布 6.0

Summary:
Tails 2.3 发布；Vivaldi 浏览器 1.1 发布
更多新闻请移步链接。

这年头版本不起飞都不好意思混

![](/data/attachment/album/201604/27/114253g3eycivmiyix5ako.png)

Node.js 经过了半年的开发之后，今天[发布](https://nodejs.org/en/blog/release/v6.0.0/)了 6.0 LTS 版本。这是一个长期支持版本，它会支持到2018年4月，并在其后的一年内提供维护更新。随着今天的发布，Node.js 基金会将停止支持老的 0.12 分支，官方将只支持 4.x 和 6.x 分支，而 5.x 是一个实验性分支。基金会的专家说依旧建议在产品环境中使用 4.x，直到人们认为 6.x 已经稳定了。

Node.js 6.0 支持了 93% 的 ECMAScript 6 （JavaScript 2015） 标准，而 5.0 仅支持了 56%。Node.js 6.0 中新的模块载入系统据说比 4.x 要快4倍。另外，新的 Node.js 6.0 使用了 Google 的 V8 引擎的 5.0 版本。

Tails 2.3 发布了，这是一个专门用于“悄悄地进村”的发行版，本次[发布](https://tails.boum.org/news/version_2.3/index.en.html)更新了大部分的核心组件，修复了不少错误，也有一些新的功能，比如支持从 KeePassX 复制黏贴你的 GnuPG 口令等。下一个版本 2.4 预计在6月份发布。建议所有的用户尽快升级。

然后是两个分区软件发布了新的版本。GParted 发布了 0.26.0，带来了一些新功能，包括 LUKS 加密文件系统的只读支持、支持 NTFS、XFS、EXT2、EXT3、EXT4 等文件系统拷贝时的进度条、同时也会在内部拷贝时显示一个整体进度条、支持最大2 TiB 的 FAT32 分区。

另外一个刚刚发布了 2016\_04\_26 版本 [Parted Magic](https://partedmagic.com/) 却是一个商业付费的发行版，它是基于前面提到 GParted 分区软件、 TestDisk 分区恢复和反删除软件等开源软件的一个发行版。本次更新由于 Chrome 放弃了32位 Linux 版本的支持，所以该发行版也移除了其中的 Chrome 浏览器。

最近发展很快的 ubuntuBSD 项目在有了自己的[官方主页](http://www.ubuntubsd.org/)之后，又有了自己的论坛：[https://forums.ubuntubsd.org](https://forums.ubuntubsd.org/)，关心它的朋友可以去看看。ubuntuBSD 项目是一个[将 ubuntu 的桌面嫁接于 FreeBSD 内核上的项目](/article-7176-1.html)，目前正在[寻求成为 Ubuntu 的官方分支](/article-7207-1.html)。

Vivaldi 浏览器[发布](https://vivaldi.net/en-US/teamblog/110-vivaldi-1-1-is-here)了 1.1 版本，这次是重新基于 Chromium 50 进行开发的。新的功能包括更多的选项卡控制、支持模仿 Opera 的 Speed Dials 等。

基于 Ubuntu 16.04 LTS 的 RaspEX 是一个面向树莓派2和3的发行版，在一周前发布时，还不能支持 Kodi 媒体中心，不过现在发布的 [160426](https://extonlinux.wordpress.com/2016/04/26/raspex-build-160426-based-on-ubuntu-16-04-with-kodi-media-center-16-0-and-fluxbox/) 更新中，他们解决了这个问题。


开源新闻速递(160428)：《古墓丽影》2013 登陆 Linux

Summary:
ntpd 中最近发现的大批安全漏洞得到了修复；
前 Tor 项目核心开发人员“反水”，协助 FBI 开发监控 Tor 的软件

![](/data/attachment/album/201604/28/200517txrqbrqzrr3urhu3.jpg)

经典的《古墓丽影》2013 重启版正式移植到了 Linux 平台，现在可以在 Linux 平台上的 [Steam](http://store.steampowered.com/app/203160/) 或 SteamOS 中下载并享受这个经典游戏了。

近两个月来，被众多服务器和网络设备中使用的网络时间协议 NTP 守护进程 ntpd 中发现了一大批的安全漏洞，这些安全漏洞可以用来发起 DoS 攻击和跳过安全验证。ntpd 已经发布了修复更新，请系统管理员们尽快升级（4.2.8p7）。

[据称](http://www.dailydot.com/politics/government-contractor-tor-malware/)，一位前 Tor 项目的核心开发人员 Matthew Edman 在离开了这个开源项目之后，为 FBI 开发了一个 Torsploit 软件，用于在 Tor 网络中发现用户匿名的身份。

前两天我们报道过，Mozilla Firefox 发布了 46.0，现在 Mozilla 已经正式发布了下载链接：[Linux 32 位](http://download.firefox.com.cn/releases/firefox/46.0/zh-CN/Firefox-latest.tar.bz2)、[Linux 64 位](http://download.firefox.com.cn/releases/firefox/46.0/zh-CN/Firefox-latest-x86_64.tar.bz2)。其它语言和操作系统的请[在这里选择](http://www.firefox.com.cn/download/#more)。在 46.0 发布之后，Mozilla 就开始了 [47.0](https://www.mozilla.org/en-US/firefox/47.0beta/releasenotes/) 的开发，在此版本中会支持 ChaCha20/Poly1305 加密套件、在较高性能的计算机上支持 VP9 视频编码等。

GNOME 的 Software 软件中的一个 bug 导致它在 Ubuntu 16.04 LTS 中不能安装第三方 .deb 软件包。[上游已经发布了修正](https://bugzilla.gnome.org/show_bug.cgi?id=765482)，Ubuntu 16.04 LTS 估计过几天就会发布更新。

Linux 内核[发布](http://lkml.iu.edu/hypermail/linux/kernel/1604.3/03783.html) 3.12.59，这是一个 LTS 版本，会支持到 2017 年。

Proxmox VE（虚拟环境）服务器操作系统[发布](https://www.proxmox.com/en/news/press-releases/proxmox-ve-4-2-released)了 4.2 版本，带有 Let's Encrypt 支持及对 ZFS 进行了大量改进。Proxmox VE 是基于 Debian GNU/Linux 8.4 "Jessie" 的衍生版，被用在 140 个国家、超过12万台主机之中。


NTP 服务进程修复了一大波安全漏洞，请尽快升级

Summary: US-CERT 披露，在 ntpd 中最近发现了大量安全缺陷。在今年的一月和四月它分别修复了两大批安全漏洞。管理员们应该尽快升级其设备固件和服务器软件到最新的版本（4.2.8p7）。

US-CERT [披露](http://www.kb.cert.org/vuls/id/718152)，在 ntpd 中最近发现了大量安全缺陷。ntpd 是 网络时间协议 NTP 的服务进程，绝大多数的服务器和各种设备都采用它来处理时间相关的任务。

虽然有多种 NTP 的服务进程，但是我们一般说的都是指 NTP.org 的 ntpd 服务进程，它也是大部分服务器和设备所用的版本。在今年的[一月](http://support.ntp.org/bin/view/Main/SecurityNotice#January_2016_NTP_4_2_8p6_Securit)和[四月](http://support.ntp.org/bin/view/Main/SecurityNotice#April_2016_NTP_4_2_8p7_Security)它分别修复了两大批安全漏洞。

[据 Cisco 说](http://blog.talosintel.com/2016/04/vulnerability-spotlight-further-ntpd_27.html)，一些漏洞会导致 DoS 攻击或者甚至跳过认证过程。Cisco 是负责推动对 NTP 进行安全评估的 <ruby> Linux 基金会核心基础架构计划 <rp>  （ </rp> <rt>  Linux Foundation Core Infrastructure Initiative </rt> <rp>  ） </rp></ruby>的成员。

由于各种智能设备都需要时间相关的功能，所以很多的设备都采用了 NTP 协议及 NTP.org 的服务进程，以确保系统时钟同步一致。

在这个协议中发现的安全问题是非常严重的，因为这会让攻击者非常容易地造成破坏。

![](/data/attachment/album/201604/29/054214ow7joxx1eosed07h.jpg)

### NTP ——通向各个网络

在两周前，两位安全研究人员发现了 NTP 服务进程中的安全缺陷，他们已经开发了一个通过网络进行攻击的漏洞验证程序，并使用它来模仿 NTP 通讯，从而可以[利用臭名昭著的 1970 漏洞让 iOS 设备变砖](http://news.softpedia.com/news/ios-1970-bug-can-be-exploited-via-network-connections-502955.shtml)！

除了这个漏洞缺陷之外，Web 安全厂商也都知道， NTP 协议也是最常见的发起 DDoS 攻击的方式之一。

US-CERT 提请网站管理员和系统管理员们对此引起重视，并打上最新的补丁。该组织已经列出了受到 NTP.org 的 ntpd 服务进程中安全漏洞影响的厂商名称，多达 75 家，这里包括苹果、思科、谷歌和 VMWare 等等著名厂商。

管理员们应该尽快升级其设备固件和服务器软件到最新的版本（4.2.8p7）。


前 Tor 开发者“反水”，帮助 FBI 开发软件来跟踪 Tor 用户

Summary: 据 Daily Dot 报道，马修·艾德曼（Matthew Edman ）以前是一位 Tor 项目的核心开发人员，但是在他离开了这个非盈利组织之后，帮助 FBI 开发了一个软件来跟踪 Tor 网络上的用户。

据 [Daily Dot](http://www.dailydot.com/politics/government-contractor-tor-malware/) 报道，<ruby> 马修·艾德曼 <rp>  （ </rp> <rt>  Matthew Edman </rt> <rp>  ） </rp></ruby> 以前是一位 Tor 项目的核心开发人员，但是在他离开了这个非盈利组织之后，帮助 FBI 开发了一个软件来跟踪 Tor 网络上的用户。

艾德曼于 2008 年加入了 Tor 项目，那时他还是<ruby> 贝勒大学 <rp>  （ </rp> <rt>  Baylor University </rt> <rp>  ） </rp></ruby>的一名大学生。他被分配到一个现已解散的项目 Vidalia 上，该项目用于开发一个简易的用户界面，可以让用户在计算机上设置和管理 Tor 连接。

Tor 的领导层于 2013 年终止了 Vidalia 项目，不过在那时，艾德曼已经在<ruby> 米特雷 <rp>  （ </rp> <rt>  Mitre </rt> <rp>  ） </rp></ruby>公司担任高级网络安全工程师了。也许很多人都没听说过米特雷公司，不过大家所熟知的<ruby> <a href="http://cve.mitre.org/">  常见漏洞与缺陷 </a> <rp>  （ </rp> <rt>  Common Vulnerabilities and Exposures </rt> <rp>  ） </rp></ruby> CVE 数据库就是由该公司维护管理的。该公司也是一家成熟的网络安全和国防方面的承包商，年收入近15亿美金，主要的合同来自政府部门。

![](/data/attachment/album/201604/29/165612ktadoneot9gkzmvk.jpg)

### 艾德曼开发了 Torsploit 软件

在米特雷公司期间， 艾德曼和几个 FBI 特工一起开发了 Torsploit 软件（也叫做 <ruby> 玉米剥皮者 <rp>  （ </rp> <rt>  Cornhusker </rt> <rp>  ） </rp></ruby>）。FBI 将这个软件用在了其 Operation Torpedo 钓鱼行动中，也将其部署到了暗网的儿童色情门户网站上。FBI 特工[将艾德曼的软件打包到一个 Flash 文件中](http://news.softpedia.com/news/fbi-uses-spyware-to-catch-tor-based-child-pornography-suspect-493268.shtml)，并将其放到网站上，如果用户使用 Tor 浏览器访问带有该 Flash 的站点时，这个恶意软件就会将访问者的真实 IP 地址和时间戳发送到 FBI 服务器。FBI 使用这些信息定位了25个嫌疑人，并已经起诉了其中19人。此外，FBI 还在使用其他的恶意软件，很多人怀疑 FBI 偷偷利用了 Tor 浏览器的漏洞，甚至还会[利用 Firefox 浏览器的零日漏洞](http://news.softpedia.com/news/is-the-fbi-hiding-a-firefox-zero-day-503026.shtml)。

### FBI “弄丢”了 Torsploit 的源代码

一位暗网的嫌疑人想要他的律师和技术专家们调查一下 Torsploit ，以便了解它是如何工作的，以及精度如何。而 FBI 的回答就像是四年级学生说‘他的家庭作业被狗吃了’一样可笑，FBI 官员说他们丢失了该软件的源代码。

艾德曼和 FBI 的合作仍在继续，有消息称他协助 Bureau 关闭了丝路地下市场，据闻他在其中扮演了关键角色，特别是在跟踪罗斯布利的暗网和比特币交易方面。

在前几年，艾德曼先后加入了彭博社、FTI 咨询，现在是伯克利研究小组的[关键执行人员](http://www.thinkbrg.com/professionals-matthew-edman.html)，在那里他同三位前 FBI 特工和一位前联邦检察官共同负责丝路这件案件。


开源新闻速递(160430)：GNOME 3.22 开始开发

Summary: Fedora 24 发布延迟一周

![](/data/attachment/album/201604/30/082501l0uu5sgy40qkibi4.jpg)

首先是三则 GNOME 的消息：

* 虽然 GNOME 3.20.1 已经发布了一段时间，但是有一些组件还没有发布相应的更新版本。在两周后，文件管理器 Nautilus 才发布了一个小的更新版本 3.20.1，这个版本里，用户可以将一些项目拖拽到“网络位置”。
* GNOME Builder IDE 发布了 3.20.2，支持 LLVM 3.8，而下一个版本的维护版本 3.21.1 已经准备好公测了。
* 虽然几天前才发布了 GNOME 3.21.1，不过 GNOME 3.22 已经从 3.21 中分支出来了，进入了其开发周期，预计 9/21 发布。

Fedora 的发布计划延迟已经成了传统，所以我们对 Fedora 24 的发布要[延迟一周](https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/5KUAYCUAXPBQVWIECQXWVG2ZE3IHUFKZ/)毫不惊讶，目前预计要到 6/14 才能发布——如果不出现意外的话。

流行的跨平台开源多媒体框架 FFmpeg 发布了 3.0.2，更新了包括 libavutil、libavcodec 、 libavformat 在内的多数组件。

Oracle [发布](https://www.virtualbox.org/wiki/Changelog)了 VirtualBox 5.0.20，多处改进了对 Linux 内核 4.5 的支持，并初步支持了即将发布的 4.6 内核。对 Windows 宿主机的支持做了改进，并重新支持了 Windows XP。

Linux 内核发布 3.18.32 LTS、4.1.23 LTS。

Google 和 Mozilla 分别发布了 Chrome [50](http://googlechromereleases.blogspot.ro/2016/04/stable-channel-update_28.html) 和 Mozilla [46](https://www.mozilla.org/en-US/security/known-vulnerabilities/firefox/#firefox46) 的更新版本，解决了若干安全漏洞。


开源新闻速递(160501)：elementary OS 0.4 将基于 Ubuntu 16.04 LTS

Summary: SparkyLinux 发布 4.3 "Tyche"

elementary OS 挺看好的一个ubuntu衍生版。稳定性美观性都挺不错，关键是够精简适合老机器

好久不用wine了。感觉需要wine的很多也做不好。很多软件也不用wine了，有替代品了。

@wxy  小编很直接呀！哈哈……  开门见山  今天没有什么大的消息  够直接  我喜欢  下面提供的信息也很有价值啊！

我们也在考虑，如何做好这个新闻简讯栏目，确实需要仔细想想。

就这样  也挺好的  真的

谢谢！！

今天没有什么大的消息。

![](/data/attachment/album/201605/01/060156qk1lpm1gol1lllz0.jpg)

已经期待了一年之久的 elementary OS 0.4 还未发布，不过根据之前的计划，它将会[重新基于最新发布的 Ubuntu 16.04 LTS](http://blog.elementary.io/post/143436823881/how-long-until-loki) 进行开发，按照官方的说法，这次发布会有大的新功能——虽然还不知道什么时间能发布——目前[正在](http://t.umblr.com/redirect?z=https%3A%2F%2Felementary.io%2Fget-involved%23desktop-development&t=MmNkZGJhOTkzOTYzZDI3Njc3Y2VlYmIwNjBjN2VjMjE1NDEzZTljNSx6Z1VvN3N1QQ%3D%3D)开发第一个 beta 版本。

SparkyLinux [发布](http://sparkylinux.org/sparkylinux-4-3-is-out/) 4.3 "Tyche"，它是一个基于 Debian 9.0 的发行版，采用了相当新的 Linux 内核 4.5.1。

Wine 1.9.9 [发布](https://www.winehq.org/news/2016043001)了，看起来离 Wine 2.0 不远了。这次更新修复了38个1.9.8的 bug。

著名的电子书管理工具 Calibre [发布](http://calibre-ebook.com/whats-new)了 2.56 版本，这是一个维护版本，修复了一些小问题。

Sabayon 16.05 [发布](http://www.sabayon.org/release/latest-monthly-release-sabayon-1511)，它是一个基于 Gentoo 的发行版。这个版本是一个维护版本，这次使用了 Linux 内核 4.5。

任职华为的 Linux 内核中国开发者 Zefan Li 发布了 3.4 LTS 内核的 112 个版本。


开源新闻速递(160502)：Arch Linux 2016.05.01 发布

Summary:
BlackArch 发布了新的版本 2016.04.28；
Ubuntu 在线峰会 UOS 即将在 五月 3-5 日召开

![](/data/attachment/album/201605/02/152221viw6wwuaa6vya3na.jpg)

[Arch Linux 2016.05.01](https://www.archlinux.org/download/) 发布。Arch Linux 是一个滚动发行版，因此如果你已经是 Arch 用户的话，你并不需要下载这个新的 ISO，只需要执行升级命令即可：`sudo pacman -Syu` 或 `yaourt -Syua`。2016.05.01 版本是第一个使用 Linux 4.5 内核的 Arch Linux 发行版，它安装了 Linux 内核 4.5.1。

BlackArch [发布](https://www.blackarch.org/blog.html)了新的版本 2016.04.28，它是一个基于 Arch 的衍生版，专门用于渗透测试，目前已经包含了超过 1400 个脆弱性测试工具。新的 ISO 使用了 Linux 内核 4.5.1，并且修复了 EFI 引导问题。

[Ubuntu 在线峰会 UOS](http://summit.ubuntu.com/) 即将在 五月 3-5 日召开，UOS 是 Ubuntu 每年最大的活动，本次峰会会讨论 Ubuntu 16.10 的开发。你可以[注册](http://summit.ubuntu.com/uos-1605/registration/)并在线[参与](http://summit.ubuntu.com/)，并参考具体的[活动计划](http://summit.ubuntu.com/uos-1605/)，此外你还可以[提交](http://summit.ubuntu.com/getinvolved/propose-a-session/)你的议题。

Linus Torvalds 发布了 Linux 内核 4.6 “<ruby> <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=04974df8049fc4240d22759a91e035082ccd18b4">  焦鼬 </a> <rp>  （ </rp> <rt>  Charred Weasel </rt> <rp>  ） </rp></ruby>”的 RC6 版本。他说，虽然一切看起来都很正常，不过他还是准备在下周发布一个 RC7 版本，并在下下周正式发布 Linux 内核 4.6。

紧跟着 Xubuntu 16.04 LTS 的发布，基于它的衍生版 Voyager 也[发布](http://voyagerlive.org/index.php/live-voyager-16-04-lts/)了 16.04 LTS 版本。Voyager 是一个高度定制的 Xfce 桌面系统，包含了大量的开源工具。

Chrome 52 将支持 ES7，目前已经在 alpha 测试通道 Canary 中支持了 ES7，并会逐步发布到 beta 测试通道和正式版通道。


KDE、GNOME 和 XFCE 桌面比较

总而言之，各取所好。

还是推荐用 Fedora，自带最新 GNOME

当前用的K、G，前一代X，再前一代……除了字符模式……

用openbox一年，感覺很好，lightweight & highly customizable & powerful，就是我需要的workspace

feh as background / wallpaper manager

tint2 as panel

gmrun as quick launcher

xscreensaver as x screen saver

GNOME3怎么用都不习惯，用得几乎崩溃。

WM 表示不服

KDE 系统性还是最好的！

习惯了都还行

![](/data/attachment/album/201605/03/054945isqi9wvqyhy9r9mg.png)

这么多年来，很多人一直都在他们的 linux 桌面端使用 KDE 或者 GNOME 桌面环境。在这两个桌面环境多年不断发展的同时，其它的桌面也在持续增加它们的用户规模。举个例子说，在轻量级桌面环境下，XFCE 一举成为了最受欢迎的桌面环境，相较于 LXDE 缺少的优美视觉效果，默认配置下的 XFCE 在这方面就可以打败前者。XFCE 提供的功能特性都能在 GNOME2 下得到，然而，在一些较老的计算机上，它的轻量级的特性却能取得更好的效果。

### 桌面主题定制

用户完成安装之后，XFCE 看起来可能会有一点无趣，因为它在视觉上还缺少一些吸引力。但是，请不要误解我的话， XFCE 仍然拥有漂亮的桌面，但是对于大多数刚刚接触 XFCE 桌面环境的人来说，可能它看起来像香草一样普普通通。不过好消息是当我们想要给 XFCE 安装新的主题的时候，这会是一个十分轻松的过程，因为你能够快速的找到你喜欢的 XFCE 主题，之后你就可以将它解压到一个合适的目录中。从这一点上来说，XFCE 自带的一个放在“外观”下的重要的图形界面工具可以帮助用户更加容易的选择中意的主题，这可能是目前在 XFCE 上这方面最好用的工具了。如果用户按照上面的建议去做的话，对于想要尝试使用 XFCE 的任何用户来说都将不存在困难。

在 GNOME 桌面上，用户也可以按照类似上面的方法去做。不过，其中最主要的不同点就是在你做之前，用户必须手动下载并安装 GNOME Tweak Tool。当然，对于使用来说都不会有什么障碍，但是对于用户来说，使用 XFCE 安装和激活主题并不需要去额外去下载安装各种调整工具，这可能是他们无法忽略的一个优势。而在 GNOME 上，尤其是在用户已经下载并安装了 GNOME Tweak tool 之后，你仍将必须确保你已经安装了“用户主题扩展”。

同 XFCE 一样，用户需要去搜索并下载自己喜欢的主题，然后，用户可以再次使用 GNOME Tweak tool，并点击该工具界面左边的“外观”按钮，接着用户便可以直接查看页面底部并点击文件浏览按钮，然后浏览到那个压缩的文件夹并打开。当完成这些之后，用户将会看到一个告诉用户已经成功应用了主题的对话框，这样你的主题便已经安装完成。然后用户就可以简单的使用下拉菜单来选择他们想要的主题。和 XFCE 一样，主题激活的过程也是十分简单的，然而，对于因为要使用一个新的主题而去下载一个没有预先安装到系统里面的应用，这种情况也是需要考虑的。

最后，就是 KDE 桌面主题定制的过程了。和 XFCE 一样，不需要去下载额外的工具来安装主题。从这点来看，让人有种XFCE 可能要被 KDE 战胜了的感觉。不仅在 KDE 上可以完全使用图形用户界面来安装主题，而且甚至只需要用户点击获取新主题的按钮就可以找到、查看新的主题，并且最后自动安装。

然而，我们应该注意到 KDE 相比 XFCE 而言，是一个更加健壮完善的桌面环境。当然，对于主要以极简设计为目的的桌面来说，缺失一些更多的功能是有一定的道理的。为此，我们要为这样优秀的功能给 KDE 加分。

### MATE 不是一个轻量级的桌面环境

在继续比较 XFCE、GNOME3 和 KDE 之前，对于老手我们需要澄清一下，我们没有将 MATE 桌面环境加入到我们的比较中。MATE 可被看作是 GNOME2 的另一个衍生品，但是它并没有主要作为一款轻量级或者快捷桌面出现。相反，它的主要目的是成为一款更加传统和舒适的桌面环境，并使它的用户在使用它时就像在家里一样舒适。

另一方面，XFCE 生来就是要实现他自己的一系列使命。XFCE 给它的用户提供了一个更轻量而仍保持吸引人的视觉体验的桌面环境。然后，对于一些认为 MATE 也是一款轻量级的桌面环境的人来说，其实 MATE 真正的目标并不是成为一款轻量级的桌面环境。这两种选择在各自安装了一款好的主题之后看起来都会让人觉得非常具有吸引力。

### 桌面导航

XFCE 除了桌面，还提供了一个醒目的导航器。任何使用过传统的 Windows 或者 GNOME 2/MATE 桌面环境的用户都可以在没有任何帮助的情况下自如的使用新安装的 XFCE 桌面环境的导航器。紧接着，添加小程序到面板中也是很显眼的。就像找一个已经安装的应用程序一样，直接使用启动器并点击你想要运行的应用程序图标就行。除了 LXDE 和 MATE 之外，还没有其他的桌面的导航器可以做到如此简单。不仅如此，更好的是控制面板的使用是非常容易使用的，对于刚刚使用这个新桌面的用户来说这是一个非常大的好处。如果用户更喜欢通过老式的方法去使用他们的桌面，那么 GNOME 就不合适。通过热角而取代了最小化按钮，加上其他的应用排布方式，这可以让大多数新用户易于使用它。

如果用户来自类似 Windows 这样的桌面环境，那么这些用户需要摒弃这些习惯，不能简单的通过鼠标右击一下就将一个小程序添加到他们的工作空间顶部。与此相反，它可以通过使用扩展来实现。GNOME 是可以安装拓展的，并且是非常的容易，这些容易之处体现在只需要用户简单的使用位于 GNOME 扩展页面上的 on/off 开关即可。不过，用户必须知道这个东西，才能真正使用上这个功能。

另一方面，GNOME 正在它的外观中体现它的设计理念，即为用户提供一个直观和易用的控制面板。你可能认为那并不是什么大事，但是，在我看来，它确实是我认为值得称赞并且有必要被提及的方面。KDE 给它的用户提供了更多的传统桌面使用体验，并通过提供相似的启动器和一种更加类似的获取软件的方式的能力来迎合来自 Windows 的用户。添加小部件或者小程序到 KDE 桌面是件非常简单的事情，只需要在桌面上右击即可。唯一的问题是 KDE 中这个功能不好发现，就像 KDE 中的其它东西一样，对于用户来说好像是隐藏的。KDE 的用户可能不同意我的观点，但我仍然坚持我的说法。

要增加一个小部件，只要在“我的面板”上右击就可以看见面板选项，但是并不是安装小部件的一个直观的方法。你并不能看见“添加部件”，除非你选择了“面板选项”，然后才能看见“添加部件”。这对我来说不是个问题，但是对于一些用户来说，它变成了不必要的困惑。而使事情变得更复杂的是，在用户能够找到部件区域后，他们后来发现一种称为“活动”的新术语。它和部件在同一个地方，可是它在自己的区域却是另外一种行为。

现在请不要误解我，KDE 中的活动特性是很不错的，也是很有价值的，但是从可用性的角度看，为了不让新手感到困惑，它更加适合于放在另一个菜单项。用户各有不同，但是让新用户多测试一段时间可以让它不断改进。对“活动”的批评先放一边，KDE 添加新部件的方法的确很棒。与 KDE 的主题一样，用户不能通过使用提供的图形用户界面浏览和自动安装部件。这是一个有点神奇的功能，但是它这样也可以工作。KDE 的控制面板可能和用户希望的样子不一样，它不是足够的简单。但是有一点很清楚，这将是他们致力于改进的地方。

### 因此，XFCE 是最好的桌面环境，对吗？

就我自己而言，我在我的计算机上使用 GNOME、KDE，并在我的办公室和家里的电脑上使用 Xfce。我也有一些老机器在使用 Openbox 和 LXDE。每一个桌面的体验都可以给我提供一些有用的东西，可以帮助我以适合的方式使用每台机器。对我来说，Xfce 是我的心中的挚爱，因为 Xfce 是一个我使用了多年的桌面环境。但对于这篇文章，我是用我日常使用的机器来撰写的，事实上，它用的是 GNOME。

这篇文章的主要思想是，对于那些正在寻找稳定的、传统的、容易理解的桌面环境的用户来说，我还是觉得 Xfce 能提供好一点的用户体验。欢迎您在评论部分和我们分享你的意见。

---

via: <http://www.unixmen.com/kde-vs-gnome-vs-xfce-desktop/>

作者：[M.el Khamlichi](http://www.unixmen.com/author/pirat9/) 译者：[kylepeng93](https://github.com/kylepeng93) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


开源新闻速递(160503)：Chrome 超越 IE ，市场占有率第一

Summary:
微软将废弃 SHA-1 证书支持；
无 systemd 的 Debian 分支 Devuan 发布 beta 版本；
Ubuntu 镜像限制升到 2GB

喜闻乐见

IE早就该死了，可是居然还活了这么久。

![](/data/attachment/album/201605/03/170031caccehv26js0pypj.jpg)

今天有一个里程碑的事件：**谷歌的 Chrome 浏览器的市场占有率超过了微软的 IE，取得了市场占有率第一的排名。**

这是由于微软在 Windows 10 中不再携带 IE，所以 IE 的占有率下降是必然的；而另外一方面，谷歌的 Chrome 却保持了持续增长的势头。据 Net Applications 四月份的[最新调查数据显示](http://marketshare.hitslink.com/browser-market-share.aspx?qprid=1&qpcustomb=0)，谷歌 Chrome 的占有率达到了 41.72%，而微软的 IE 则降到了 40.6%，虽然相差不大，但是按照现有的发展趋势，谷歌将很快取得更大的优势。当然，微软的 Edge 系列浏览器目前占有 4.64%，如果这个部分依旧是 IE 浏览器的话，显然微软目前还能暂时保持第一。

另外一个消息也是浏览器相关的，微软宣布它计划在今年夏天**在 Edge 和 IE 中废弃对 SHA-1 证书的支持**。也就是说，到时候使用更新后的 Edge 或 IE 访问 SHA-1 证书的 HTTPS 站点，将不会显示绿色的小锁，以表明其加密方案并不安全。而到 2017年2月时，微软会[进一步](https://blogs.windows.com/msedgedev/2016/04/29/sha1-deprecation-roadmap/)对使用 SHA-1 签名证书的站点的访问进行默认拦截。

2014年，因为对 systemd 不满，一群开发者[创建](/article-4512-1.html)了不使用 systemd 的 [Debian 分支 Devuan](/article-4335-1.html)。现在，他们[宣布](http://lwn.net/Articles/685521/)发布了Devuan Jessie 的 [beta](https://files.devuan.org/) 版本。Debian 8 Jessie 是在去年发布的，默认的初始化系统是 systemd，可选使用 sysvinit。Devuan 开发者称，Devuan 提供了从 Debian 7 Wheez 安全升级的路径，避免引入 systemd 导致的大部分问题。

之前，Ubuntu 的安装镜像会限制在 1GB 以内，但是 Ubuntu 16.04 LTS 的发布打破了这一限制，大小达到了1.4GB。因此，Canonical [决定](https://lists.ubuntu.com/archives/ubuntu-release/2016-May/003739.html)将大小限制将提高到 2GB，甚至一些衍生版，比如 Ubuntu Studio 会将限制放到更大，比如一张 DVD 的大小4.7GB。

以下是一些开源软件的版本更新情况：

* 历经了八个月的 beta 开发，Apricity OS 最近[发布](http://apricityos.com/blog/index.php/2016/05/01/apricity-os-04-2016-beta-rc1-release/)了第一个 RC 公测版本。它是一个基于 Arch Linux 的发行版，已经被下载超过了10万次。
* OpenELEC 7.0 的第三个 beta 版本[发布](http://openelec.tv/news/22-releases/180-beta-openelec-7-0-beta-3-released)。
* 在上一个维护版本发布一个月之后，[Git](https://git-scm.com/) 发布了 2.8.2 版本，做了若干改进和错误修复。
* Manjaro Linux LXQt 16.04 的一个衍生版 Manjaro Linux LXQt 16.04 黑暗版[发布](http://manjaro.github.io/Manjaro-Lxqt-dark-16.04-released/)了，它使用了一个名为 Kwantum 的暗色系主题，以避免刺激眼睛。
* 跨平台的开源多媒体播放软件 VLC 2.2 发布了第三个维护版本 2.2.3。

![Manjaro Linux LXQt 16.04 Dark Edition](/data/attachment/album/201605/03/170849w2i5r0bbaib2beai.jpg)


Debian Live 项目的剧变

反正就是撕逼。。

好复杂...

尽管围绕 Debian Live 项目发生了很多戏剧性事件，关于 [Debian Live 项目](https://lwn.net/Articles/666127/)结束的[公告](http://live.debian.net/)的影响力甚至小于该项目首次出现时的公告。主要开发者的离开是最显而易见的损失，而社区对他本人及其项目的态度是很令人困惑的，但是这个项目也许还是会以其它的形式继续下去。所以 Debian 仍然会有更多的工具去创造启动光盘和其他介质。尽管是用这样一种有遗憾的方式，项目创始人 Dabiel Baumann 和 Debian CD 团队以及安装检测团队之间出现的长期争论已经被「解决」了。

![](/data/attachment/album/201605/04/153452uaryxnczyazanatp.png)

在 11 月 9 日， Baumann 发表了题为「 Debian Live 项目的突然结束」的一篇公告。在那篇短文中，他一一列举出了自从这个和他有关的[项目被发起](https://www.debian.org/News/weekly/2006/08/)以来近 10 年间发生的不同的事件，这些事件可以表明他在 Debian Live 项目上的努力一直没有被重视或没有被足够重视。最具决定性的因素是因为在「包的含义」上存在冲突， R.Learmonth [申请](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804315)了新的包名，而这侵犯了在 Debian Live 上使用的命名空间。

考虑到最主要的 Debian Live 包之一被命名为 live-build ，而 R.Learmonth 申请的新包名却是 live-build-ng ，这简直是对 live-build 的挑战。 live-build-ng 意为一种围绕 [vmdebootstrap](http://liw.fi/vmdebootstrap/)（LCTT 译注：创造真实的和虚拟机Debian的磁盘映像）工具的外部包装，这种包装是为了创造 live 介质（光盘和USB的插入），也是 Debian Live 最需要的的部分。但是当 Baumann Learmonth [要求](https://lwn.net/Articles/666173/)为他的包换一个不同的名字的时候，他得到了一个「有趣」的[回复](https://lwn.net/Articles/666176/)：

>
> 应该注意到， live-build 不是一个 Debian 项目，它是一个声称自己是官方 Debian 项目的外部项目，这是一个需要我们解决的问题。
>
>
> 这不是命名空间的问题，我们要将以目前维护的 live-config 和 live-boot 包为基础，把它们加入到 Debian 的本地项目。如果迫不得已的话，这将会有很多分支，但是我希望它不要发生，这样的话我们就可以把这些包整合到 Debian 中并继续以一种协作的方式去开发。
>
>
> live-build 已经被 debian-cd 放弃，live-build-ng 将会取代它。至少在一个精简的 Debian 环境中，live-build 会被放弃。我们（开发团队）正在与 debian-cd 和 Debian Installer 团队合作开发 live-build-ng 。
>
>
>

Debian Live 是一个「官方的」 Debian 项目（也可以是狭义的「官方」），尽管它因为思路上的不同产生过争论。除此之外， vmdebootstrap 的维护者 Neil Willians 为脱离 Debian Live 项目[提供了如下的解释](https://lwn.net/Articles/666181/):

>
> 为了更好的支持 live-build 的代替者, vmdebootstrap 肯定会被推广。为了能够用 live-build 解决目前存在的问题，这项工作会由 debian-cd 团队来负责。这些问题包括可靠性问题，以及不能很好的支持多种机器和 UEFI 等。 vmdebootstrap 也存在着这些问题，我们用来自于对 live-boot 和 live-config 的支持情况来确定 vmdebootstrap 的功能。
>
>
>

这些抱怨听起来合情合理，但是它们可能已经在目前的项目中得到了解决。然而一些秘密的项目有很明显的取代 live-build 的意图。正如 Baumann [指出](https://lwn.net/Articles/666208/)的，这些计划没有被发布到 debian-live 的邮件列表中。人们首次从 Debian Live 项目中获知这些计划正是因为这一次的ITP事件，所以它看起来像是一个「秘密计划」——有些事情在像 Debian 这样的项目中得不到很好的安排。

人们可能已经猜到了，有很多帖子都支持 Baumann [重命名](https://lwn.net/Articles/666321/) live-build-ng 的请求，但是紧接着，人们就因为他要停止继续在 Debian Live 上工作的决定而变得沮丧。然而 Learmonth 和 Williams 却坚持认为取代 live-build 很有必要。Learmonth 给 live-build-ng 换了一个争议性也许小一些的名字： live-wrapper 。他说他的目标是为 Debian Live 项目加入新的工具（并且「把 Debian Live 项目引入 Debian 里面」），但是完成这件事还需要很大的努力。

>
> 我向已经被 ITP 问题所困扰的每个人道歉。我们已经告知大家 live-wrapper 还不足以完全替代 live-build 且开发工作仍在进行以收集反馈。尽管有了这部分的工作，我们收到的反馈缺并不是我们所需要的。
>
>
>

这种对于取代 live-build 的强烈反对或许已经被预知到了。自由软件社区的沟通和交流很关键，所以，计划去替换一个项目的核心很容易引起争议——更何况是一个一直不为人所知的计划。从 Banumann 的角度来说，他当然不是完美的，他因为上传个不合适的 [syslinux 包](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699808)导致了 wheezy 的延迟发布，并且从那以后他被从 Debian 开发者暂时[降级](https://nm.debian.org/public/process/14450)为 Debian 维护者。但是这不意味着他应该受到这种对待。当然，这个项目还有其他人参与，所以不仅仅是 Baumann 受到了影响。

Ben Armstrong 是其他参与者中的一位，在这个事件中，他很圆滑地处理了一些事，并且想从这个事件中全身而退。他从一封邮件[13](https://lwn.net/Articles/666336/)开始，这个邮件是为了庆祝这个项目，以及他和他的团队在过去几年取得的成果。正如他所说， Debian Live 的[下游项目列表](http://live.debian.net/project/downstream/)是很令人振奋的。在另一封邮件中，他也[指出](https://lwn.net/Articles/666338/)了这个项目不是没有生命力的：

>
> 如果 Debian CD 开发团队通过他们的努力开发出可行的、可靠的、经过完善测试替代品，以及一个合适的取代 live-build 的候选者，这对于 Debian 项目有利无害。如果他们继续做这件事，他们不会「用一个官方改良，但不可靠且几乎没有经过测试的待选者取代 live-build 」。到目前为止，我还没有看到他们那样做的迹象。其间， live-build 仍保留在存档中——它仍然处于良好状态，且没有一种经过改良的继任者来取代它，因此开发团队没有必要尽快删除它。
>
>
>

11 月 24 号， Armstrong 也在[他的博客](https://lwn.net/Articles/666340/)上[发布](http://syn.theti.ca/2015/11/24/debian-live-after-debian-live/)了一个有关 Debian Live 的新消息。它展示了从 Baumann 退出起两周内的令人高兴的进展。甚至有迹象表明 Debian Live 项目与 live-wrapper 开发者开展了合作。博客上也有了一个[计划表](https://wiki.debian.org/DebianLive/TODO)，同时不可避免地寻求更多的帮助。这让人们有理由相信围绕项目发生的戏剧性事件仅仅是一个小摩擦——也许不可避免，但绝不是像现在看起来这么糟糕。

---

via: <https://lwn.net/Articles/665839/>

作者：Jake Edge 译者：[vim-kakali](https://github.com/vim-kakali) 校对：[PurlingNayuki](https://github.com/PurlingNayuki)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出


开源新闻速递(160504)：Windows 系统市场份额首次跌破90%大关

Summary:
Linux 基金会发布了其免费徽章计划“CII 最佳实践徽章”；
Ubuntu 16.10 中默认桌面不会使用 Unity 8

Mac大法好！

win 10的logo简直一坨SI，都不如xp，简直和linux的企鹅logo一个级别。严重怀疑这个logo不是设计师设计的是程序员画的。

### 头条消息

![](/data/attachment/album/201605/04/164956e5yv3333dgpxvbpl.jpg)

我们昨天[报道](/article-7295-1.html)过，根据 Net Applications 四月份的[最新调查数据显示](http://marketshare.hitslink.com/browser-market-share.aspx?qprid=1&qpcustomb=0)，**谷歌的 Chrome 浏览器的市场占有率超过了微软的 IE，取得了市场占有率第一的排名。事实上，在这次报告中，同样有另外一个重大变化需要注意到：[Windows 系统市场份额首次跌破90%大关](/article-7298-1.html)**，这是几个月以来持续下跌的结果。另外， Linux 的份额也有所下跌，唯一增长的是 Mac OS。

Linux 基金会[发布](http://www.linuxfoundation.org/news-media/announcements/2016/05/free-badge-program-signals-what-open-source-projects-meet-criteria)了其免费徽章计划“CII 最佳实践徽章”，该徽章会授予通过了安全性、稳定性和高品质评估的开源项目，目前已经授予的包括：Linux 内核、OpenSSL、Node.js、GitLab、cURL、Zephyr 和 OpenBlox。

正在召开的 [Ubuntu 在线峰会](http://summit.ubuntu.com/uos-1605/meeting/22663/ubuntu-online-summit-opening-plenary/)中，开发者们决定在不将 Unity 8 作为 Ubuntu 16.10 的默认桌面，虽然它也会安装上，但是不是默认的。

### 重要的开源软件的版本更新情况

* 基于 FreeBSD 的开源防火墙平台 pfSense 2.3 [发布](https://blog.pfsense.org/?p=2045#)了第一个修复更新，版本号为 2.3\_1 而不是 2.3.1——这个完整维护版会在稍后发布。本次紧急更新是为了解决上游修复的 NTP 中发现的严重安全漏洞。
* 另外一个基于 Linux 内核的开源防火墙平台 [IPFire](http://www.ipfire.org/) 2.19 [发布](http://www.ipfire.org/news/ipfire-2-19-core-update-101-released)了 Core Update 101 更新，解决了其 Web 界面中的一个跨站脚本安全漏洞。
* 用于搭建自己的私有云的开源云平台软件 ownCloud [发布](https://owncloud.com/blog-owncloud-9-0-2-8-2-4-8-1-7-8-0-12-7-0-14-available/)了其多个分支的维护版本：9.0.2、8.2.4、8.1.7、8.0.12 和 7.0.14，主要是修复了一些安全问题。另外要注意的是 ownCloud 7.x 系列在五月份就要结束支持期了，使用该版本的用户应该尽快升级到其它版本。
* Firefox 46.0 [推送](https://www.mozilla.org/en-US/firefox/46.0.1/releasenotes/)了第一个维护版本 46.0.1，修复了一些安全问题。
* Wordpress 的论坛插件 bbPress 中存在一个存储型 XSS 安全漏洞，黑客可以通过窃取 Cookie 来假扮成系统管理员。该安全问题至少会影响30万个使用 bbPress 的站点。最近释出的 2.5.9 解决了这个严重的安全问题，请尽快升级。
* Canonical 修复了目前还在支持的 Ubuntu 各个版本中的 OpenSSL 的多个[安全漏洞](http://www.ubuntu.com/usn/usn-2959-1/)。


Ubuntu Tweak 项目正式宣告死亡

曾经用过 还不错

恰恰说明ubuntu的桌面环境越来越好了呗

没用过，我都是用 GNOME 和 X11 的工具改。

这几乎是历史的必然，犹如win的软媒魔方，现在win10几乎用不上了。但是我还是希望能有更加友好的图像化配置工具，linux不就是一个自由吗？

周鼎，是大家熟悉的 Ubuntu Tweak 软件的创造者和维护者，他前不久宣布该项目从 2016年5月2日开始不再维护。

![](/data/attachment/album/201605/05/135258c285hi4hrbi8qbcr.jpg)

Ubuntu Tweak 是 Ubuntu 上下载量最多的程序之一，它可以让 Ubuntu 用户按照自己的想法来优化 Ubuntu 系统的方方面面。

每当 Ubuntu Linux 发布新的版本，过一些天之后，Ubuntu Tweak 就会发布相应的新版本，用户就可以用它来配置和优化他们的系统和桌面的设置。

这并不是第一次听到 Ubuntu Tweak 的开发要终结了，三年前周鼎就宣布过他不再准备开发这个开源项目了。

就在不久前，他终于因用户的请求而“被迫”正式关闭了这个项目，他将该项目的官方网站 [ubuntu-tweak.com](http://ubuntu-tweak.com/) 下线，并将用户访问重定向到了该项目博客。并且，[Launchpad](https://launchpad.net/ubuntu-tweak) 和 [GitHub](https://github.com/tualatrix/ubuntu-tweak/) 上的项目页面也显示了自5/2开始“该项目不再维护”的消息。周鼎在社区里面发了一个[简短的公告](http://imtx.me/archives/1947.html)，说他不再开发了。

>
> 本以为我已经彻底抛开了这个项目，哪知最近因为 Ubuntu 16.04 的发布，收到了至少 5 封来询问我如何让 Ubuntu Tweak 运行在 Ubuntu 16.04 下的英文邮件，我才意识到，我根本没有正式地宣布过一次这个项目的终止，无论在它的 [Blog](http://blog.ubuntu-tweak.com/) 上、[Github 项目上](https://github.com/tualatrix/ubuntu-tweak/)还是[Launchpad 项目](https://launchpad.net/ubuntu-tweak)，甚至主站（[ubuntu-tweak.com](http://ubuntu-tweak.com/)）本身也是好好的运行着。确实不像是彻底放弃的样子。
>
>
>

然后，他会完全关闭该项目的博客和官网（目前已经不可访问了），接下来域名也会停止续费而失效。

### Unity Tweak Tool 是配置 Ubuntu 桌面的最好工具

Ubuntu Tweak 已经官方宣布死亡了，那么唯一可以帮助你优化运行着 Unity 界面的 Ubuntu Linux 操作系统的工具就是 Unity Tweak Tool 了，它可以直接从发行版的软件主仓库中找到。

[Unity Tweak Tool](https://apps.ubuntu.com/cat/applications/unity-tweak-tool/) 主要是一个 Unity 桌面环境的一个配置工具，但是你也可以用它来配置一些其它的方面，包括添加/删除桌面主题、图标集、字体等等。


开源新闻速递：Ubuntu Tweak 项目宣告死亡

Summary: ImageMagick 存在严重安全问题，大量网站存在远程执行代码的安全风险；

Tweak 真心好用...即使可以用其它软件集来替代，不过还是tweak用起来舒服...

ImageMagick 存在严重安全问题，大量网站存在远程执行代码的安全风险；

### 头条消息

![](/data/attachment/album/201605/05/141745zj3f2qfo21qo2og6.jpg)

Ubuntu Tweak 的创始人和维护者周鼎宣布，Ubuntu Tweak 项目死亡！虽然之前也听说过 Ubuntu Tweak 不再开发了，但是一直没有一个官方的、态度坚决的宣布结束的公告。而现在，周鼎终于做出了这个艰难的决定。Ubuntu Tweak 已经落下了帷幕。[更多详情……](/article-7304-1.html)

两个俄罗斯安全研究人员发现了被广泛使用的 ImageMagick 图片处理库中存在严重的零日安全缺陷。它是除了 GD 之外使用最多的图片处理库，有不计其数的网站在使用它来进行图片处理，比如对用户上传的图片进行裁剪和缩放。因此，利用该漏洞，攻击者可以上传特别制作的图片文件，从而达到在服务器端执行恶意代码的目的。这个漏洞缺陷编号为：CVE-2016–3714 。目前已经出现了概念验证代码。

在 Ubuntu 在线峰会上， Canonical 宣布即将发布 Snappy Ubuntu Core 16 操作系统，并支持树莓派2和 DragonBoard 410c 等设备。目前还没有任何镜像发布，连 alpha 版本都没有，需要再等一段时间。它是作为其 15.04 版本的延伸，但是大部分的代码都进行了修改。在 Snappy Ubuntu Core 16 中，所有的东西都是 snap，包括设备、文件、内核、应用等等，甚至这个系统本身也是一个 snap。

在 Ubuntu 在线峰会上，来自 Canonical 的开发者 David Callé 宣布为 Ubuntu Touch 移动系统的 Scopes 功能带来两款全新标签化设计的两款模型，并已经在社区上邀请有兴趣的用户进行尝鲜体验。

之前我们报道过，Ubuntu 16.04 LTS 中使用 GNOME “软件”作为图形界面的软件安装系统，替代其原来的“软件中心”，但是这个版本存在一个问题，就是不能通过它来安装第三方的 .deb 软件包（当然，你可以通过命令行来安装）。在上游的 GNOME 开发人员推出修复的更新之后，Ubuntu 16.04 LTS 今天也更新解决了这个问题。

### 重要的开源软件版本更新

* 一个以简洁漂亮为目标的 Linux 发行版 Simplicity Linux [发布](http://simplicitylinux.org/2016/05/simplicity-linux-16-04-released/)了最新版本 16.04。它是一个基于 LXPup 的发行版，采用的是 LXDE 桌面环境。它分为三个不同的版本： Desktop、X 和 Mini。
* 在 Wine 1.9.9 发布了一周之后，Wine Staging 1.9.9 发布了，不过没啥重要的新功能，只是修复了一些 bug。
* Black Lab Linux 即将发布的企业桌面版第 8 版的第六个开发者预览版可以下载了，在这个版本中，增加了实时内核补丁，也就是说，以后可以不用重启而对该发行版的内核进行升级了。
* CoreOS 899.17.0 [发布](https://coreos.com/releases/#899.17.0)，对最近出现严重安全问题的 OpenSSL、NTP 和 git 进行了升级。
* Linux 内核 4.5 发布了第三个维护版本 4.5.3。
* Ubuntu Make 发布了 16.05 版本。Ubuntu Make 是为开发者和程序员们所设计的，可以为他们安装各种不在 Ubuntu 主软件库中或没有 PPA 的第三方软件。它是一个非常简便而又值得拥有的命令行工具。这次更新修复了一些问题。


ImageMagick 严重漏洞导致大量网站面临被黑风险

Summary: 这个安全漏洞影响极其广泛，因为 ImageMagick 是除了 GD 之外使用最多的图像处理库，被广泛用于各种语言的图像处理。

我記得圖片只有讀寫權限，好像不能執行吧？

来自澳大利亚的 Chrome Mobile 50.0|Android 5.1 用户

不是你想象的那样。并没有将图片当成一个可执行的文件来执行，而是在解析图片过程中，其中埋入的特别代码会被 ImageMagick 处理——从而执行。而这些代码可以是任何代码，包括 rm -rf /  。。。

![](/data/attachment/album/201605/05/152839gra43zzrrlwnuv4l.png)

两位俄罗斯的安全研究人员刚刚在著名的图像处理库 ImageMagick 中发现了严重的安全漏洞。ImageMagick 用在大量的网站中，所以这个发现的零日漏洞一举将不计其数的网站暴露在安全攻击面前。

该漏洞被称之为“ImageTragick”，CVE 编号是 CVE-2016-3714。这个安全漏洞影响极其广泛，因为 ImageMagick 是除了 GD 之外使用最多的图像处理库，被广泛用于各种语言的图像处理，比如 PHP、Java、Python、Ruby 等等。许多开源软件，比如 WordPress、Drupal、Discuz 等都使用了它的图像处理功能。

### 通过 ImageMagick 的漏洞可以黑掉网站

据两位研究人员称，ImageMagick 中有多个安全缺陷，但是这个漏洞会导致那些允许用户上传图片（比如会员头像）的网站受到恶意制作的图片的攻击。

目前这个零日漏洞已经被 ImageMagick 项目所证实，但是尚未有修复版本发布，需要等到这个周末才能释出。不过，该项目提供了一些可以[缓解该风险的方法](https://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=29588)。更多的缓解措施，可以参考 [ImageTragick 网站](https://imagetragick.com/) 上的相关说明。

目前已经出现了验证该漏洞的 PoC，比如[这个](http://www.openwall.com/lists/oss-security/2016/05/03/18)和[另一个](https://twitter.com/Viss/status/727625561179201536)。

### 攻击者只需要找到能够上传图片的网站就行了

ImageMagick 是很多图像处理库和模块的基础，大量的编程语言都使用它来处理图像，比如 PHP、 Java、 Ruby、 JavaScript/Node.js 等等，而只要是用这些语言开发的网站就处于安全风险之中。

而唯一的条件就是网站允许用户上传图片（比如用户头像）并使用 ImageMagick 相关的库来处理它。

研究人员建议，要对上传的图片文件进行文件格式检查，比如通过 Magic Byte 来判断文件类型。Magic Byte 是一种通过文件头部的特定字节来判断文件类型的机制。

通过该漏洞，攻击者只需要构造一个特殊的文件，伪造成图片上传到服务器，服务器就会执行其中的任意代码，这相当于将整个网站的权限都交给了攻击者。

请在相应的补丁出来请先做防御性的缓解策略，并在更新版本出来后尽快更新。


开源新闻速递：朝鲜的桌面市场份额，Windows 还是第一

Summary: Fedora 24 Beta 即将发布

看了下后，觉得打印机驱动项目，以后会变得没有必要，因为目前的打印机是在有些复杂，还有驱动什么的，真是见鬼咯。往后去，所有的打印机都应该是无线wifi自动连接的，或者直接连接网线，打印机有自己的系统，直接通过或标准或简化的TCP/IP协议来传递打印任务。根本不要用户安装什么驱动，添加打印机，就是添加打印机的IP地址。如果是从手机上打印，那就直接扫描打印机身上的二维码即可识别连接打印机并打印。

有道理！

昨天刚刚回国，坐了十多个小时的飞机，实在太累了，就没有更新“开源新闻速递”，今天补上~

### 头条消息

我们前两天提到过，[Windows 的桌面市场份额已经跌破了90%](/article-7301-1.html)，不过，也许你也听说了，在朝鲜国，Windows 的份额只能排名第三：第一名是 Mac 的 OS X，31.29%；第二名是 Linux，份额基本相当， 30.93%；第三名以及往后才是**各种** Windows。等等，不要着急，如果你将这些各个版本的 Windows 份额加起来，其实发现，Windows 家族还是第一，达到 37.68%！当然，即便如此，Linux 也不错了，能有1/3的份额呢。

![](/data/attachment/album/201605/07/210504m4vq4y8nnt3naqva.jpg)

Fedora 24 的 Beta 测试版本，在经过了三次拖延之后，终于要在 [5 月 10 日](https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/G2DH3KWJVXMKDQWQ6ZUO2Z4LQD7WXBR2/)发布了。而下一步版本 Fedora 25 也公布了它的发布计划，根据该[计划](https://fedoraproject.org/wiki/Releases/25/Schedule)， Fedora 25 将于 11 月 8 号发布。当然，基于 Fedora 的传统，一般来说都是要延期的。

说起来，现在无论是 Fedora 还是 Ubuntu，都像搞军备竞赛一样，半年一个版本，真让人目不暇接。当然，除了发行版之外，浏览器也是如此，比如说， Chrome 现在版本是 50，FireFox 也放马直追，46 了。呃，不要忘记了，我们的 Linux 内核的多个分支也是如此，几天一个版本，感觉（对更新）已经不会再爱了。

### 重要的开源软件版本更新

* HPLIP （HP 复印与打印）项目[发布](https://sourceforge.net/p/hplip/news/2016/05/hplip-3165-release-notes/)了 3.16.5 版本。它是一个开源的 HP 打印机驱动项目，致力于带来最新的 HP 打印机驱动。如果你使用 HP 打印机，那你绝对应该试试它。它支持绝大多数最新的 Linux 发行版，项目开发非常活跃，每个月都至少会发布一次新版本，这次的更新后，就支持了 Ubuntu 16.04 LTS 和 Debian 8.4。
* 前 Kubuntu 项目领导人 Jonathan Riddell 宣布他的新项目 KDE Neon 的每日构建镜像可以[下载](http://files.kde.org/neon/images/plasma-wayland-devedition-gitunstable/current/)了。这是一个滚动发行版，可以给使用者带来最新的软件更新体验。
* Linux 内核 [4.4.9 LTS](https://lkml.org/lkml/2016/5/4/841) 、[3.14.68 LTS](https://lkml.org/lkml/2016/5/4/839) 发布 。
* LibreOffice 5.0.6 发布。
* Red Hat [发布](https://access.redhat.com/)了两个软件的 beta 版本： Red Hat Software Collection 2.2 Beta 和 Red Hat Developer Toolset 4.1 Beta 。
* Canonical 为三星的 ARTIK 5 和 ARTIK 10 [发布](http://insights.ubuntu.com/2016/05/05/ubuntu-core-now-available-for-samsung-artik-5-and-10/)了 [Ubuntu Core 操作系统](https://developer.ubuntu.com/en/snappy/start/samsung-artik-iot-modules/)。
* 滚动发行版 Neptune Linux [发布](https://neptuneos.com/en/news-reader/neptune-4-5-1-isos-are-available-now.html)了 4.5.1，最大的修复是解决了不能从 USB3 端口上引导的问题。
* SparkyLinux 4.3 [发布](http://sparkylinux.org/sparkylinux-4-3-special-editions/)，这是一个轻量级的 Debian 衍生版，有不同的桌面环境版本： KDE、MATE、Xfce、LXDE 和 LXQt，并且基于它有三个特殊版本：GameOver （游戏专用）、Multimedia （多媒体）和 Rescue （急救）。


Unity 8 和 Snap 将是 Ubuntu 桌面系统的未来

Summary: 越来越多的 snap 会来到 Ubuntu 上。

来自广东广州的 Internet Explorer 7.0|Windows Vista 用户

越来越多的 snap 会来到 Ubuntu 上。

在 Ubuntu 在线峰会 2016 的最后一天议程中，开发者们对 Ubuntu 16.10 之后的 Ubuntu 桌面的发展做了一些重要的讨论。

正如标题所说，**Ubuntu 桌面的未来将会采用 Snap（Snappy）和 Mir 上的 Unity 8**，这是 Canonical 的 Ubuntu 桌面经理 Will Cooke 的观点。Canonical 已经在向这方面努力推进了，在 Ubuntu 16.04 LTS 中已经支持[通过 Ubuntu Snappy Store 安装 Snap](/article-7220-1.html) 了。

### Snappy 正在慢慢占领 Ubuntu 桌面

目前看起来，从 Ubuntu 16.10 开始，我们就可以从 Ubuntu Snappy Store 中安装 Snap 应用了；而且各个主要的应用，如 LibreOffice 和 Mozilla Firefox 都会默认以 Snap 的方式安装在 Live 镜像中。Canonical 也正在开发一种将各种软件包从 .deb 格式转换为 snap 格式的方式。

举个例子说，如果你已经有一台 Ubuntu 16.04 LTS ，其中的 LibreOffice 是以 .deb 格式安装的，如果你要升级到 Ubuntu 16.10 或 17.04，而那时 LibreOffice 是以 snap 格式出现的，这个转换过程将是平滑的，你不会丢失任何配置。至少，关键性的应用，比如 Chromium、LibreOffice 和 Firefox 到时候都会只以 snap 格式提供。

### Unity 7 将走入末期，Unity 8 将接过它的大旗

![](/data/attachment/album/201605/08/090033vtsobht2sjz7abao.jpg)

Will Cooke 说 Unity 7 桌面将进入其末期，也就是说它不会再增加太多的功能，也不会投入更多的精力了。这是因为 Unity 8 日益得到关注，它会在 Ubuntu 16.10 之后的某个时间段成为默认桌面环境。可以看看下面的进度图，从 Unity 7 到 8 之间的转换将在 Ubuntu 16.10 和 17.04 之间发生。

![Unity 7 to Unity 8 transition for the Ubuntu Desktop](/data/attachment/album/201605/08/090033jqh5nauqac8xghi8.jpg "Unity 7 to Unity 8 transition for the Ubuntu Desktop")

 *Ubuntu 桌面上从 Unity 7 到 Unity 8 的转换计划*

当然，Unity 8 现在在 Ubuntu 16.04 LTS 上已经可以用了，不过还是技术预览版，仍然需要不少工作才能达成目标。到 Ubuntu 16.10 时，它就会进一步完善，Unity 8 会默认地成为 Unity 7 的可选替代桌面环境，你不需要手动地来安装它。GTK 和 Chromium 的 Mir 后端也可以正常工作了。

### 其它

今年稍晚时间，Ubuntu 桌面上还会有另外一个有趣的功能会出现，就是在重启过程中，可以通过 Ubuntu 软件包管理器离线安装更新。

Ubuntu 16.10 中，GTK 和 GNOME 软件族也会保持同步更新，以便 Ubuntu GNOME 这样的衍生版可以继续工作。不过，看起来 Qt4 会被放弃，这样可以在 ISO 镜像中为有用的软件们腾出更多的空间。


开源新闻速递：Firefox 47 中 Flash 之外的插件都需要点击激活了

Summary: Canonical 为最新的 Ubuntu 16.04 LTS 发布重要安全公告

我连flash都设置成了询问是否激活。

我設置成（已停用）永不啟用

### 头条消息

将在6月份进入稳定发布渠道的 Firefox 47 ，除了 Flash 之外的所有<ruby> 插件 <rp>  （ </rp> <rt>  plugins </rt> <rp>  ） </rp></ruby>都需要手工“<ruby> 点击激活 <rp>  （ </rp> <rt>  click-to-activate </rt> <rp>  ） </rp></ruby>”了。

![](/data/attachment/album/201605/08/101954g23bves2fz5z2z4q.jpg)

之前，在 Firefox 上，网页中使用的各种插件，比如 Java、Flash、视频解码器等等需要用户点击才能激活。在2013年9月，Mozilla 的开发者引入了一个“点击激活”的白名单，在该白名单中的插件不需要用户为每个站点单独指定是否自动激活，而针对所有站点都默认激活。这个白名单是由 Mozilla 开发人员手工维护的，并硬编码到 Firefox 中。

而现在，Mozilla 决定将白名单中除了 Flash 之外的所有插件都移除，也就是说，其它插件都需要用户一一点击激活或在设置中手工设置激活才行。对于一般用户来说，这不是问题，因为除了 Flash ，其它的插件很少接触到。

Mozilla 的这个动作被视为从 Firefox 中移除 Flash 支持的一个重要步骤。之前在2015年10月时，Mozilla 就说过要停止支持除了 Flash 之外的所有 NPAPI 插件，而到2017年1月的 Firefox 53 中会停止支持所有 NPAPI 插件。这会推动开发者们尽快摆脱 Flash ，投入到新的技术应用中。

### 版本更迭

* Canonical 为最新的 Ubuntu 16.04 LTS 发布[重要安全公告](http://www.ubuntu.com/usn/usn-2965-1/)，升级了 Linux 内核，以解决15个安全缺陷。
* Linux Mint 18 “Sarah” 将基于 Ubuntu 16.04 LTS 开发，提供更好的硬件支持。
* 即将发布的 Manjaro Linux 操作系统将支持[全盘加密](http://manjaro.github.io/Calamares-LUKS/)。
* [GNOME Builder IDE](https://wiki.gnome.org/Apps/Builder) 发布了 3.20.4，重新实现了“打开远程文件”的功能。[GNOME Builder IDE](https://wiki.gnome.org/Apps/Builder) 是一个 GNOME 下的集成开发工具，提供了诸多特性，虽然目前还处于早期开发期间，但是看起来确实不错。
* 开源的网络部署与管理工具 m32 Rock [发布](http://m23.sourceforge.net/PostNuke-0.750/html/index.php?id=1000000473)了16.2，支持 Ubuntu 16.04 LTS 客户端。
* WordPress 发布 4.5.2，修复了若干安全缺陷。


Linux 游戏完全指南

Summary:
我能在 Linux 上玩游戏吗 ？
这是打算投奔 Linux 阵营的人最经常问的问题之一。

日常浏览信息！！！

网页都是不玩的！！！走的都是单机游戏！！

错字：<br />
“1. 在哪里去找 Llinux 原生游戏 ？”

谢谢！

求方法

有linux版本的dota2，只要安装好steam，他会选择安装哪个版本的。

dota2三个平台都能玩，装了Steam就行，有独显的话，显卡驱动最好是官方闭源的。

linux 下玩dota2

我不玩游戏。。

cdda dota csgo hacknet cs（密教模拟器） ‘’this war of mine' buabuabua

i wanna play games in the vm lbuntu

![](/data/attachment/album/201605/08/213509ptwtsdllg2lkgkzs.jpg)

**我能在 Linux 上玩游戏吗 ？**

这是打算[投奔 Linux 阵营](http://itsfoss.com/reasons-switch-linux-windows-xp/)的人最经常问的问题之一。毕竟，在 Linux 上面玩游戏经常被认为有点难以实现。事实上，一些人甚至考虑他们能不能在 Linux 上看电影或者听音乐。考虑到这些，关于 Linux 的平台的游戏的问题是很现实的。

在本文中，我将解答大多数 Linux 新手关于在 Linux 中打游戏的问题。例如 Linux 下能不能玩游戏，如果能的话，在哪里**下载游戏**或者如何获取有关游戏的信息。

但是在此之前，我需要说明一下。我不是一个 PC 上的玩家或者说我不认为我是一个在 Linux 桌面游戏玩家。我更喜欢在 PS4 上玩游戏并且我不关心 PC 上的游戏甚至也不关心手机上的游戏（我没有给我的任何一个朋友安利糖果传奇）。这也就是你很少能在 It's FOSS 上很少看见关于 [Linux 上的游戏](http://itsfoss.com/category/games/)的原因。

所以我为什么要提到这个主题？

因为别人问过我几次有关 Linux 上的游戏的问题并且我想要写出来一个能解答这些问题的 Linux 游戏指南。注意，在这里我不只是讨论在 Ubuntu 上玩游戏。我讨论的是在所有的 Linux 上的游戏。

### 我能在 Linux 上玩游戏吗 ？

是，但不是完全是。

“是”，是指你能在Linux上玩游戏；“不完全是”，是指你不能在 Linux 上玩 ‘所有的游戏’。

感到迷惑了吗？不必这样。我的意思是你能在 Linux 上玩很多流行的游戏，比如[反恐精英以及地铁：最后的曙光](http://blog.counter-strike.net/)等。但是你可能不能玩到所有在 Windows 上流行的最新游戏，比如[实况足球 2015](https://pes.konami.com/tag/pes-2015/) 。

在我看来，造成这种情况的原因是 Linux 在桌面系统中仅占不到 2%，这样的占比使得大多数开发者没有开发其游戏的 Linux 版的动力。

这就意味指大多数近年来被提及的比较多的游戏很有可能不能在 Linux 上玩。不要灰心。还有别的方式在 Linux 上玩这些游戏，我们将在下面的章节中讨论这些方法。但是，在此之前，让我们看看在 Linux 上能玩的游戏的种类。

要我说的话，我会把那些游戏分为四类：

1. Linux 原生游戏
2. Linux 上的 Windows 游戏
3. 浏览器里的游戏
4. 终端里的游戏

让我们以最重要的一类， Linux 的原生游戏开始。

### 1. 在哪里去找 Linux 原生游戏 ？

原生游戏指的是官方支持 Linux 的游戏。这些游戏有原生的 Linux 客户端并且能像在 Linux 上的其他软件一样不需要附加的步骤就能安装在 Linux 上面（我们将在下一节讨论）。

所以，如你所见，有一些为 Linux 开发的游戏，下一个问题就是在哪能找到这些游戏以及如何安装。我将列出一些让你玩到游戏的渠道。

#### Steam

![](/data/attachment/album/201605/08/213511syzvtjygvt4tvv4t.jpg)

“[Steam](http://store.steampowered.com/) 是一个游戏的分发平台。就如同 Kindle 是电子书的分发平台， iTunes 是音乐的分发平台一样， Steam 也具有那样的功能。它提供购买和安装游戏，玩多人游戏以及在它的平台上关注其他游戏的选项。其上的游戏被 [DRM](https://en.wikipedia.org/wiki/Digital_rights_management) 所保护。”

两年以前，游戏平台 Steam 宣布支持 Linux ，这在当时是一个大新闻。这是 Linux 上玩游戏被严肃对待的一个迹象。尽管这个决定更多地影响了他们自己的基于 Linux 游戏平台以及一个独立 Linux 发行版 [Steam OS](http://itsfoss.com/valve-annouces-linux-based-gaming-operating-system-steamos/) ，这仍然是令人欣慰的事情，因为它给 Linux 带来了一大堆游戏。

我已经写了一篇详细的关于安装以及使用 Steam 的文章。如果你想开始使用 Steam 的话，读读那篇文章。

* [在 Linux 上安装以及使用 Steam](http://itsfoss.com/install-steam-ubuntu-linux/)

#### GOG.com

[GOG.com](http://www.gog.com/) 是另一个与 Steam 类似的平台。与 Steam 一样，你能在这上面找到数以百计的 Linux 游戏，并购买和安装它们。如果游戏支持好几个平台，你可以在多个操作系统上安装他们。你可以随时游玩使用你的账户购买的游戏。你也可以在任何时间下载。

GOG.com 与 Steam 不同的是前者仅提供没有 DRM 保护的游戏以及电影。而且，GOG.com 完全是基于网页的，所以你不需要安装类似 Steam 的客户端。你只需要用浏览器下载游戏然后安装到你的系统上。

#### Portable Linux Games

[Portable Linux Games](http://www.portablelinuxgames.org/) 是一个集聚了不少 Linux 游戏的网站。这家网站最特别以及最好的点就是你能离线安装这些游戏。

你下载到的文件包含所有的依赖（仅需 Wine 以及 Perl）并且他们也是与平台无关的。你所需要的仅仅是下载文件并且双击来启动安装程序。你也可以把文件储存起来以用于将来的安装。如果你网速不够快的话，我很推荐你这样做。

#### Game Drift 游戏商店

[Game Drift](http://gamedrift.org/GameStore.html) 是一个只专注于游戏的基于 Ubuntu 的 Linux 发行版。但是如果你不想只为游戏就去安装这个发行版的话，你也可以经常去它的在线游戏商店去看哪个游戏可以在 Linux 上运行并且安装他们。

#### Linux Game Database

如其名字所示，[Linux Game Database](http://www.lgdb.org/)是一个收集了很多 Linux 游戏的网站。你能在这里浏览诸多类型的游戏并从游戏开发者的网站下载/安装这些游戏。作为这家网站的会员，你甚至可以为游戏打分。 LGDB 致力于成为 Linux 游戏界的 IMDB 或者 IGN。

#### Penguspy

此网站由一个不想用 Windows 玩游戏的玩家创立。[Penguspy](http://www.penguspy.com/) 聚集了一些 Linux 下最好的游戏。在这里你也能分类浏览游戏，如果你喜欢这个游戏的话，你可以跳转到游戏开发者的网站去下载安装。

#### 软件源

看看你自己的发行版的软件源。其中可能有一些游戏。如果你用 Ubuntu 的话，它的软件中心里有一个游戏的分类。在一些其他的发行版里也有，比如 Linux Mint 等。

### 2. 如何在 Linux 上玩 Windows 的游戏 ？

![](/data/attachment/album/201605/08/213514k602x3004x3vl4jf.png)

到现在为止，我们一直在讨论 Linux 的原生游戏。但是并没有很多 Linux 上的原生游戏，或者更准确地说，火的不要不要的游戏大多不支持 Linux，但是都支持 Windows PC 。所以，如何在 Linux 上玩 Windows 的游戏？

幸好，由于我们有 Wine 、 PlayOnLinux 和 CrossOver 等工具，我们能在 Linux 上玩不少的 Windows 游戏。

#### Wine

Wine 是一个能使 Windows 应用在类似 Linux ， BSD 和 OS X 上运行的兼容层。在 Wine 的帮助下，你可以在 Linux 下安装以及使用很多 Windows 下的应用。

[在 Ubuntu 上安装 Wine](http://itsfoss.com/wine-1-5-11-released-ppa-available-to-download/)或者在其他 Linux 上安装 Wine 是很简单的，因为大多数发行版的软件源里都有它。这里也有一个很大的 [Wine 支持的应用的数据库](https://appdb.winehq.org/)供您浏览。

#### CrossOver

[CrossOver](https://www.codeweavers.com/products/) 是 Wine 的增强版，它给 Wine 提供了专业的技术上的支持。但是与 Wine 不同， CrossOver 不是免费的。你需要购买许可。好消息是它会把更新也贡献到 Wine 的开发者那里并且事实上加速了 Wine 的开发使得 Wine 能支持更多的 Windows 上的游戏和应用。如果你可以接受每年支付 48 美元，你可以购买 CrossOver 并得到他们提供的技术支持。

#### PlayOnLinux

PlayOnLinux 也基于 Wine 但是执行程序的方式略有不同。它有着更好用的，不同的界面。与 Wine 一样，PlayOnLinux 也是免费使用。你可以在[开发者自己的数据库里查看它支持的应用以及游戏](https://www.playonlinux.com/en/supported_apps.html)。

### 3. 网页游戏

![](/data/attachment/album/201605/08/213519gg8zbfmjmzz22j2g.jpg)

不必说你也应该知道有非常多的基于网页的游戏，这些游戏都可以在任何操作系统里运行，无论是 Windows ，Linux ，还是 OS X 。大多数让人上瘾的手机游戏，比如[帝国之战](http://empire.goodgamestudios.com/)就有官方的网页版。

除了这些，还有 [Google Chrome 在线商店](https://chrome.google.com/webstore/category/apps)，你可以在 Linux 上玩更多的这些游戏。这些 Chrome 上的游戏可以像一个单独的应用一样安装并从应用菜单中打开，一些游戏就算是离线也能运行。

### 4. 终端游戏

![](/data/attachment/album/201605/08/213521bwdejdup3rdjddmm.jpg)

使用 Linux 的一个附加优势就是可以使用命令行终端玩游戏。我知道这不是最好的玩游戏的方法，但是在终端里玩[贪吃蛇](http://itsfoss.com/nsnake-play-classic-snake-game-linux-terminal/)或者 [2048](http://itsfoss.com/play-2048-linux-terminal/) 很有趣。在[这个博客](http://itsfoss.com/play-2048-linux-terminal/)中有一些好玩的的终端游戏。你可以浏览并安装你喜欢的游戏。

---

### 如何保证游戏的版本是最新的 ？

当你了解了不少的在 Linux 上你可以玩到的游戏以及你如何使用他们，下一个问题就是如何保持游戏的版本是最新的。对于这件事，我建议你看看下面的博客，这些博客能告诉你 Linux 游戏世界的最新消息：

* [Gaming on Linux](https://www.gamingonlinux.com/)：我认为我把它叫做 Linux 游戏专业门户并没有错误。在这你可以得到关于 Linux 的游戏的最新的传言以及新闻。它经常更新， 还有由 Linux 游戏爱好者组成的优秀社区。
* [Free Gamer](http://freegamer.blogspot.fr/)：一个专注于免费开源的游戏的博客。
* [Linux Game News](http://linuxgamenews.com/)：一个提供很多的 Linux 游戏的升级的 Tumbler 博客。

### 还有别的要说的吗？

我认为让你知道如何开始在 Linux 上的游戏人生是一个好事。如果你仍然不能被说服，我推荐你做个[双系统](http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/)，把 Linux 作为你的主要桌面系统，当你想玩游戏时，重启到 Windows。这是一个对游戏妥协的解决办法。

现在，这里是你说出你自己的想法的时候了。你在 Linux 上玩游戏吗？你最喜欢什么游戏？你关注了哪些游戏博客？

请在下面发表你的评论，你怎样在 Linux 上玩游戏？

1. 我玩原生 Linux 游戏，也用 Wine 以及 PlayOnLinux 运行 Windows 游戏
2. 我喜欢网页游戏
3. 我喜欢终端游戏
4. 我只玩原生 Linux 游戏
5. 我用 Steam
6. 我用双系统，要玩游戏时就换到 Windows
7. 我不玩游戏

---

via: <http://itsfoss.com/linux-gaming-guide/>

作者：[Abhishek](http://itsfoss.com/author/abhishek/) 译者：[name1e5s](https://github.com/name1e5s) 校对：[PurlingNayuki](https://github.com/PurlingNayuki)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


SELinux 入门

学习啦

只是皮毛， 一直没法深入了解

恩，不错

还可以！

中国人具备发扬精神过于保守只能证明能力被局限

来自湖南娄底的 Chrome Mobile 37.0|Android 5.1 用户

作为入门来说，这篇文章挺合适，可以再深入谢谢管理selinux的命令操作的实例等。

sdf

![](/data/attachment/album/201605/09/114709nmpn3rn000ky1m0m.jpg)

回到 Kernel 2.6 时代，那时候引入了一个新的安全系统，用以提供访问控制安全策略的机制。这个系统就是 [Security Enhanced Linux (SELinux)](http://selinuxproject.org/page/Main_Page)，它是由[美国国家安全局（NSA）](https://www.nsa.gov/research/selinux/)贡献的，它为 Linux 内核子系统引入了一个健壮的<ruby> 强制控制访问 <rp>  （ </rp> <rt>  Mandatory Access Control </rt> <rp>  ） </rp></ruby>架构。

如果你在之前的 Linux 生涯中都禁用或忽略了 SELinux，这篇文章就是专门为你写的：这是一篇对存在于你的 Linux 桌面或服务器之下的 SELinux 系统的介绍，它能够限制权限，甚至消除程序或守护进程的脆弱性而造成破坏的可能性。

在我开始之前，你应该已经了解的是 SELinux 主要是红帽 Red Hat Linux 以及它的衍生发行版上的一个工具。类似地， Ubuntu 和 SUSE（以及它们的衍生发行版）使用的是 AppArmor。SELinux 和 AppArmor 有显著的不同。你可以在 SUSE，openSUSE，Ubuntu 等等发行版上安装 SELinux，但这是项难以置信的挑战，除非你十分精通 Linux。

说了这么多，让我来向你介绍 SELinux。

### DAC vs. MAC

Linux 上传统的访问控制标准是<ruby> 自主访问控制 <rp>  （ </rp> <rt>  Discretionary Access Control </rt> <rp>  ） </rp></ruby>（DAC）。在这种形式下，一个软件或守护进程以 User ID（UID）或 Set owner User ID（SUID）的身份运行，并且拥有该用户的目标（文件、套接字、以及其它进程）权限。这使得恶意代码很容易运行在特定权限之下，从而取得访问关键的子系统的权限。

另一方面，<ruby> 强制访问控制 <rp>  （ </rp> <rt>  Mandatory Access Control </rt> <rp>  ） </rp></ruby>（MAC）基于保密性和完整性强制信息的隔离以限制破坏。该限制单元独立于传统的 Linux 安全机制运作，并且没有超级用户的概念。

### SELinux 如何工作

考虑一下 SELinux 的相关概念:

* <ruby> 主体 <rp>  （ </rp> <rt>  Subjects </rt> <rp>  ） </rp></ruby>
* <ruby> 目标 <rp>  （ </rp> <rt>  Objects </rt> <rp>  ） </rp></ruby>
* <ruby> 策略 <rp>  （ </rp> <rt>  Policy </rt> <rp>  ） </rp></ruby>
* <ruby> 模式 <rp>  （ </rp> <rt>  Mode </rt> <rp>  ） </rp></ruby>

当一个<ruby> 主体 <rp>  （ </rp> <rt>  Subject </rt> <rp>  ） </rp></ruby>（如一个程序）尝试访问一个<ruby> 目标 <rp>  （ </rp> <rt>  Object </rt> <rp>  ） </rp></ruby>（如一个文件），<ruby> SELinux 安全服务器 <rp>  （ </rp> <rt>  SELinux Security Server </rt> <rp>  ） </rp></ruby>（在内核中）从<ruby> 策略数据库 <rp>  （ </rp> <rt>  Policy Database </rt> <rp>  ） </rp></ruby>中运行一个检查。基于当前的<ruby> 模式 <rp>  （ </rp> <rt>  mode </rt> <rp>  ） </rp></ruby>，如果 SELinux 安全服务器授予权限，该主体就能够访问该目标。如果 SELinux 安全服务器拒绝了权限，就会在 /var/log/messages 中记录一条拒绝信息。

听起来相对比较简单是不是？实际上过程要更加复杂，但为了简化介绍，只列出了重要的步骤。

### 模式

SELinux 有三个模式（可以由用户设置）。这些模式将规定 SELinux 在主体请求时如何应对。这些模式是：

* <ruby> Enforcing <rp>  （ </rp> <rt>  强制 </rt> <rp>  ） </rp></ruby>— SELinux 策略强制执行，基于 SELinux 策略规则授予或拒绝主体对目标的访问
* <ruby> Permissive <rp>  （ </rp> <rt>  宽容 </rt> <rp>  ） </rp></ruby>— SELinux 策略不强制执行，不实际拒绝访问，但会有拒绝信息写入日志
* <ruby> Disabled <rp>  （ </rp> <rt>  禁用 </rt> <rp>  ） </rp></ruby>— 完全禁用 SELinux

![](/data/attachment/album/201605/09/114726f6rphbs6krt4o4hr.png)

*图 1：getenforce 命令显示 SELinux 的状态是 Enforcing 启用状态。*

默认情况下，大部分系统的 SELinux 设置为 Enforcing。你要如何知道你的系统当前是什么模式？你可以使用一条简单的命令来查看，这条命令就是 `getenforce`。这个命令用起来难以置信的简单（因为它仅仅用来报告 SELinux 的模式）。要使用这个工具，打开一个终端窗口并执行 `getenforce` 命令。命令会返回 Enforcing、Permissive，或者 Disabled（见上方图 1）。

设置 SELinux 的模式实际上很简单——取决于你想设置什么模式。记住：**永远不推荐关闭 SELinux**。为什么？当你这么做了，就会出现这种可能性：你磁盘上的文件可能会被打上错误的权限标签，需要你重新标记权限才能修复。而且你无法修改一个以 Disabled 模式启动的系统的模式。你的最佳模式是 Enforcing 或者 Permissive。

你可以从命令行或 `/etc/selinux/config` 文件更改 SELinux 的模式。要从命令行设置模式，你可以使用 `setenforce` 工具。要设置 Enforcing 模式，按下面这么做：

1. 打开一个终端窗口
2. 执行 `su` 然后输入你的管理员密码
3. 执行 `setenforce 1`
4. 执行 `getenforce` 确定模式已经正确设置（图 2）

![](/data/attachment/album/201605/09/114726efnh5hztvph5hhhl.png)

*图 2：设置 SELinux 模式为 Enforcing。*

要设置模式为 Permissive，这么做：

1. 打开一个终端窗口
2. 执行 `su` 然后输入你的管理员密码
3. 执行 `setenforce 0`
4. 执行 `getenforce` 确定模式已经正确设置（图 3）

![](/data/attachment/album/201605/09/114727e22fgab546grung6.png)

*图 3：设置 SELinux 模式为 Permissive。*

注：通过命令行设置模式会覆盖 SELinux 配置文件中的设置。

如果你更愿意在 SELinux 命令文件中设置模式，用你喜欢的编辑器打开那个文件找到这一行：

```
SELINUX=permissive

```

你可以按你的偏好设置模式，然后保存文件。

还有第三种方法修改 SELinux 的模式（通过 bootloader），但我不推荐新用户这么做。

### 策略类型

SELinux 策略有两种：

* <ruby> Targeted <rp>  （ </rp> <rt>  目标 </rt> <rp>  ） </rp></ruby> — 只有目标网络进程（dhcpd，httpd，named，nscd，ntpd，portmap，snmpd，squid，以及 syslogd）受保护
* <ruby> Strict <rp>  （ </rp> <rt>  严格 </rt> <rp>  ） </rp></ruby> — 对所有进程完全的 SELinux 保护

你可以在 `/etc/selinux/config` 文件中修改策略类型。用你喜欢的编辑器打开这个文件找到这一行：

```
SELINUXTYPE=targeted

```

修改这个选项为 targeted 或 strict 以满足你的需求。

### 检查完整的 SELinux 状态

有个方便的 SELinux 工具，你可能想要用它来获取你启用了 SELinux 的系统的详细状态报告。这个命令在终端像这样运行：

```
sestatus -v

```

你可以看到像图 4 那样的输出。

![](/data/attachment/album/201605/09/114728a379999n525vall9.png)

*图 4：sestatus -v 命令的输出。*

### 仅是皮毛

和你预想的一样，我只介绍了 SELinux 的一点皮毛。SELinux 的确是个复杂的系统，想要更扎实地理解它是如何工作的，以及了解如何让它更好地为你的桌面或服务器工作需要更加地深入学习。我的内容还没有覆盖到疑难解答和创建自定义 SELinux 策略。

SELinux 是所有 Linux 管理员都应该知道的强大工具。现在已经向你介绍了 SELinux，我强烈推荐你回到 Linux.com（当有更多关于此话题的文章发表的时候）或看看 [NSA SELinux 文档](https://www.nsa.gov/research/selinux/docs.shtml) 获得更加深入的指南。

LCTT - 相关阅读：[鸟哥的 Linux 私房菜——程序管理与 SELinux 初探](http://vbird.dic.ksu.edu.tw/linux_basic/0440processcontrol_5.php)

---

via: <https://www.linux.com/learn/docs/ldp/883671-an-introduction-to-selinux>

作者：[Jack Wallen](https://www.linux.com/community/forums/person/93) 译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


开源新闻速递：Linux 内核 4.6 即将发布

Summary: Debian 9 中将停止对 32 位架构的支持

Debian 9 中将停止对 32 位架构的支持

### 头条消息

![](/data/attachment/album/201605/09/155421largc0lavyauevwv.jpg)

Linux 内核 4.6 将于 5/15 日发布。在上周日的例行发布中，Linus Torvalds 发布了 4.6 内核的最后一个 RC 版本：RC7。如果一切都如现在一样正常的话，那么一周后，我们就能迎来 4.6 内核的正式发布。既然 4.6 这么快要发布了，而且看起来开发一切顺利，显然质量乐观，所以各个发行版肯定会在下一个版本中积极跟进。比如，Canonical 就[宣布](https://wiki.ubuntu.com/KernelTeam/Newsletter/2016-05-03) Ubuntu 16.10 将基于 Linux 内核 4.6。而 Manjaro Linux 也[宣布](http://manjaro.github.io/Update-2016-05-08_(stable)/)它的 15.12 会支持 4.6 内核。当然，赶在 4.6 发布之前释出的那些 Linux 发行版不会等着 4.6 发布，比如 Porteus Linux 3.2 [发布](http://forum.porteus.org/viewtopic.php?t=5824&p=45046#p45046)了第二个 RC 版本，还是支持 4.5.3。4MLinux 发布的 18.0 支持 4.4.8 LTS。

Debian 9 中将停止对 32 位架构的支持。

单板计算机版的 Chromium OS 开始发售，现在可以从该项目[购买](http://www.chromiumosforsbc.org/marketplace/)树莓派3，同时会带有预安装好的单板计算机版 Chromium OS 的 SD 卡。

### 版本更迭

* Waha Linux [发布](http://wahaproject.org/linux/wahalinux-8-4-hijra-released/)了 8.4 版本，不过似乎跳过了 8.3 版本。它是一个基于 Debian 的发行版，本次升级主要是解决了来自上游 Debian 的一些安全问题。这应该是一个来自阿拉伯世界的发行版，其发行公告都是阿拉伯语的。
* 自称为“终极 Linux”的 ExTiX [发布](https://extonlinux.wordpress.com/2016/05/08/extix-16-2-build-160508-with-kde-4-15-together-with-kde-frameworks-5-15-0/)了 16.2 版本，它吸收了不少来自 Debian 8.4 Jessie/Debian 9 和 Ubuntu 16.04 的内容，但是去除了 Unity，而安装了 KDE。


安装 openSUSE Leap 42.1 之后要做的 8 件事

Summary: openSUSE Leap 确实是个巨大的飞跃，它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版。和其它系统一样，为了实现最佳的使用效果，在使用它之前需要做些优化设置。

這種文章非常不錯，大大有利於普及Linux。另外，我覺得Linux下最好用的郵件客戶端是Nylas N1，她也是跨平台的;-)

来看看

正在用suse<br />
感觉很给力，要是有个如何配置安装deb包的教程就好了，网上的转换工具用不了

来自湖南湘潭的 Internet Explorer 9.0|Windows 7 用户

中国用户的最好用中科大和阿里云的源。

中科大比阿里云速度要快

非常不错的分享

![Credit: Metropolitan Transportation/Flicrk](/data/attachment/album/201605/10/051309mfo6r5fs3y2yveau.jpg)

*致谢：[Metropolitan Transportation/Flicrk](https://www.flickr.com/photos/mtaphotos/11200079265/)*

>
> 如果你已经在你的电脑上安装了 openSUSE，这就是你接下来要做的。
>
>
>

[openSUSE Leap 确实是个巨大的飞跃](https://www.linux.com/news/software/applications/865760-opensuse-leap-421-review-the-most-mature-linux-distribution)，它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版。和其它系统一样，为了实现最佳的使用效果，在使用它之前需要做些优化设置。

下面是一些我在我的电脑上安装 openSUSE Leap 之后做的一些事情（不适用于服务器）。这里面没有强制性的设置，基本安装对你来说也可能足够了。但如果你想获得更好的 openSUSE Leap 体验，那就跟着我往下看吧。

### 1. 添加 Packman 仓库

由于专利和授权等原因，openSUSE 和许多 Linux 发行版一样，不通过官方仓库（repos）提供一些软件、解码器，以及驱动等。取而代之的是通过第三方或社区仓库来提供。第一个也是最重要的仓库是“Packman”。因为这些仓库不是默认启用的，我们需要添加它们。你可以通过 YaST（openSUSE 的特色之一）或者命令行完成（如下方介绍）。

![o42 yast repo](/data/attachment/album/201605/10/051312smzhsharrarkke4a.png)

*添加 Packman 仓库。*

使用 YaST，打开软件源部分。点击“添加”按钮并选择“社区仓库（Community Repositories）”。点击“下一步”。一旦仓库列表加载出来了，选择 Packman 仓库。点击“确认”，然后点击“信任”导入信任的 GnuPG 密钥。

或者在终端里使用以下命令添加并启用 Packman 仓库：

```
zypper ar -f -n packmanhttp://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ packman

```

仓库添加之后，你就可以使用更多的包了。想安装任意软件或包，打开 YaST 软件管理器，搜索并安装即可。

### 2. 安装 VLC

VLC 是媒体播放器里的瑞士军刀，几乎可以播放任何媒体文件。你可以从 YaST 软件管理器 或 software.opensuse.org 安装 VLC。你需要安装两个包：vlc 和 vlc-codecs。

如果你用终端，运行以下命令：

```
sudo zypper install vlc vlc-codecs

```

### 3. 安装 Handbrake

如果你需要转码或转换视频文件格式，[Handbrake 是你的不二之选](https://www.linux.com/learn/tutorials/857788-how-to-convert-videos-in-linux-using-the-command-line)。Handbrake 就在我们启用的仓库中，所以只需要在 YaST 中搜索并安装它即可。

如果你用终端，运行以下命令：

```
sudo zypper install handbrake-cli handbrake-gtk

```

（提示：VLC 也能转码音频和视频文件。）

### 4. 安装 Chrome

openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能够播放专有媒体，比如 Netflix，我推荐安装 Chrome。这需要额外的工作。首先你需要从谷歌导入信任密钥。打开终端执行“wget”命令下载密钥：

```
wget https://dl.google.com/linux/linux_signing_key.pub

```

然后导入密钥：

```
sudo rpm --import linux_signing_key.pub

```

现在到 [Google Chrome 网站](https://www.google.com/intl/en/chrome/browser/desktop/index.html#brand=CHMB&utm_campaign=en&utm_source=en-ha-na-us-sk&utm_medium=ha) 去，下载 64 位 .rpm 文件。下载完成后执行以下命令安装浏览器：

```
sudo zypper install /PATH_OF_GOOGLE_CHROME.rpm

```

### 5. 安装 Nvidia 驱动

即便你使用 Nvidia 或 ATI 显卡，openSUSE Leap 也能够开箱即用。但是，如果你需要专有驱动来游戏或其它目的，你可以安装这些驱动，但需要一点额外的工作。

首先你需要添加 Nvidia 源；它的步骤和使用 YaST 添加 Packman 仓库是一样的。唯一的不同是你需要在社区仓库部分选择 Nvidia。添加好了之后，到 **软件管理 > 附加** 去并选择“附加/安装所有匹配的推荐包”。

![o42 nvidia](/data/attachment/album/201605/10/051314s3ehi7i43spufegi.png)

它会打开一个对话框，显示所有将要安装的包，点击确认后按介绍操作。添加了 Nvidia 源之后你也可以通过命令安装需要的 Nvidia 驱动：

```
sudo zypper inr

```

（注：我没使用过 AMD/ATI 显卡，所以这方面我没有经验。）

### 6. 安装媒体解码器

你安装 VLC 之后就不需要安装媒体解码器了，但如果你要使用其它软件来播放媒体的话就需要安装了。一些开发者写了脚本/工具来简化这个过程。打开[这个页面](http://opensuse-community.org/)并点击合适的按钮安装完整的包。它会打开 YaST 并自动安装包（当然通常你还需要提供 root 权限密码并信任 GnuPG 密钥）。

### 7. 安装你喜欢的电子邮件客户端

openSUSE 自带 Kmail 或 Evolution，这取决于你安装的桌面环境。我用的是 KDE Plasma 自带的 Kmail，这个邮件客户端还有许多地方有待改进。我建议可以试试 Thunderbird 或 Evolution。所有主要的邮件客户端都能在官方仓库找到。你还可以看看我[精心挑选的 Linux 最佳邮件客户端][7]。

### 8. 在防火墙允许 Samba 服务

相比于其它发行版，openSUSE 默认提供了更加安全的系统。但对新用户来说它也需要一点设置。如果你正在使用 Samba 协议分享文件到本地网络的话，你需要在防火墙允许该服务。

![o42 firewall](/data/attachment/album/201605/10/051316acbjnaacd5dcvdj1.png)

*在防火墙设置里允许 Samba 客户端和服务端*

打开 YaST 并搜索 Firewall。在防火墙设置里，进入到“允许的服务（Allowed Services）”，你会在“要允许的服务（Service to allow）”下面看到一个下拉列表。选择“Samba 客户端”，然后点击“添加”。同样方法添加“Samba 服务器”。都添加了之后，点击“下一步”，然后点击“完成”，现在你就可以通过本地网络从你的 openSUSE 分享文件以及访问其它机器了。

这差不多就是我以我喜欢的方式对我的新 openSUSE 系统做的所有设置了。如果你有任何问题，欢迎在评论区提问。

---

via: <http://www.itworld.com/article/3003865/open-source-tools/8-things-to-do-after-installing-opensuse-leap-421.html>

作者：[Swapnil Bhartiya](http://www.itworld.com/author/Swapnil-Bhartiya/) 译者：[alim0x](https://github.com/alim0x) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Linux 内核里的数据结构——双向链表

Summary: 我们将会首先从双向链表数据结构开始介绍内核里的数据结构。为什么？因为它在内核里使用的很广泛，你只需要在 free-electrons.com 检索一下就知道了。

Linux 内核中自己实现了双向链表，可以在 [include/linux/list.h](https://github.com/torvalds/linux/blob/master/include/linux/list.h) 找到定义。我们将会首先从双向链表数据结构开始介绍**内核里的数据结构**。为什么？因为它在内核里使用的很广泛，你只需要在 [free-electrons.com](http://lxr.free-electrons.com/ident?i=list_head) 检索一下就知道了。

![](/data/attachment/album/201605/10/053544tvbmvkebls3evvea.jpg)

首先让我们看一下在 [include/linux/types.h](https://github.com/torvalds/linux/blob/master/include/linux/types.h) 里的主结构体：

```
struct list_head {
    struct list_head *next, *prev;
};

```

你可能注意到这和你以前见过的双向链表的实现方法是不同的。举个例子来说，在 [glib](http://www.gnu.org/software/libc/) 库里是这样实现的：

```
struct GList {
  gpointer data;
  GList *next;
  GList *prev;
};

```

通常来说一个链表结构会包含一个指向某个项目的指针。但是 Linux 内核中的链表实现并没有这样做。所以问题来了：**链表在哪里保存数据呢？**。实际上，内核里实现的链表是**侵入式链表（Intrusive list）**。侵入式链表并不在节点内保存数据-它的节点仅仅包含指向前后节点的指针，以及指向链表节点数据部分的指针——数据就是这样附加在链表上的。这就使得这个数据结构是通用的，使用起来就不需要考虑节点数据的类型了。

比如：

```
struct nmi_desc {
    spinlock_t lock;
    struct list_head head;
};

```

让我们看几个例子来理解一下在内核里是如何使用 `list_head` 的。如上所述，在内核里有很多很多不同的地方都用到了链表。我们来看一个在杂项字符驱动里面的使用的例子。在 [drivers/char/misc.c](https://github.com/torvalds/linux/blob/master/drivers/char/misc.c) 的杂项字符驱动 API 被用来编写处理小型硬件或虚拟设备的小驱动。这些驱动共享相同的主设备号：

```
#define MISC_MAJOR              10

```

但是都有各自不同的次设备号。比如：

```
ls -l /dev |  grep 10
crw-------   1 root root     10, 235 Mar 21 12:01 autofs
drwxr-xr-x  10 root root         200 Mar 21 12:01 cpu
crw-------   1 root root     10,  62 Mar 21 12:01 cpu_dma_latency
crw-------   1 root root     10, 203 Mar 21 12:01 cuse
drwxr-xr-x   2 root root         100 Mar 21 12:01 dri
crw-rw-rw-   1 root root     10, 229 Mar 21 12:01 fuse
crw-------   1 root root     10, 228 Mar 21 12:01 hpet
crw-------   1 root root     10, 183 Mar 21 12:01 hwrng
crw-rw----+  1 root kvm      10, 232 Mar 21 12:01 kvm
crw-rw----   1 root disk     10, 237 Mar 21 12:01 loop-control
crw-------   1 root root     10, 227 Mar 21 12:01 mcelog
crw-------   1 root root     10,  59 Mar 21 12:01 memory_bandwidth
crw-------   1 root root     10,  61 Mar 21 12:01 network_latency
crw-------   1 root root     10,  60 Mar 21 12:01 network_throughput
crw-r-----   1 root kmem     10, 144 Mar 21 12:01 nvram
brw-rw----   1 root disk      1,  10 Mar 21 12:01 ram10
crw--w----   1 root tty       4,  10 Mar 21 12:01 tty10
crw-rw----   1 root dialout   4,  74 Mar 21 12:01 ttyS10
crw-------   1 root root     10,  63 Mar 21 12:01 vga_arbiter
crw-------   1 root root     10, 137 Mar 21 12:01 vhci

```

现在让我们看看它是如何使用链表的。首先看一下结构体 `miscdevice`：

```
struct miscdevice
{
      int minor;
      const char *name;
      const struct file_operations *fops;
      struct list_head list;
      struct device *parent;
      struct device *this_device;
      const char *nodename;
      mode_t mode;
};

```

可以看到结构体`miscdevice`的第四个变量`list` 是所有注册过的设备的链表。在源代码文件的开始可以看到这个链表的定义：

```
static LIST_HEAD(misc_list);

```

它实际上是对用`list_head` 类型定义的变量的扩展。

```
#define LIST_HEAD(name) \
    struct list_head name = LIST_HEAD_INIT(name)

```

然后使用宏 `LIST_HEAD_INIT` 进行初始化，这会使用变量`name` 的地址来填充`prev`和`next` 结构体的两个变量。

```
#define LIST_HEAD_INIT(name) { &(name), &(name) }

```

现在来看看注册杂项设备的函数`misc_register`。它在一开始就用函数 `INIT_LIST_HEAD` 初始化了`miscdevice->list`。

```
INIT_LIST_HEAD(&misc->list);

```

作用和宏`LIST_HEAD_INIT`一样。

```
static inline void INIT_LIST_HEAD(struct list_head *list)
{
    list->next = list;
    list->prev = list;
}

```

接下来，在函数`device_create` 创建了设备后，我们就用下面的语句将设备添加到设备链表：

```
list_add(&misc->list, &misc_list);

```

内核文件`list.h` 提供了向链表添加新项的 API 接口。我们来看看它的实现：

```
static inline void list_add(struct list_head *new, struct list_head *head)
{
    __list_add(new, head, head->next);
}

```

实际上就是使用3个指定的参数来调用了内部函数`__list_add`：

* new - 新项。
* head - 新项将会插在`head`的后面
* head->next - 插入前，`head` 后面的项。

`__list_add`的实现非常简单：

```
static inline void __list_add(struct list_head *new,
                  struct list_head *prev,
                  struct list_head *next)
{
    next->prev = new;
    new->next = next;
    new->prev = prev;
    prev->next = new;
}

```

这里，我们在`prev`和`next` 之间添加了一个新项。所以我们开始时用宏`LIST_HEAD_INIT`定义的`misc` 链表会包含指向`miscdevice->list` 的向前指针和向后指针。

这儿还有一个问题：如何得到列表的内容呢？这里有一个特殊的宏：

```
#define list_entry(ptr, type, member) \
    container_of(ptr, type, member)

```

使用了三个参数：

* ptr - 指向结构 `list_head` 的指针；
* type - 结构体类型;
* member - 在结构体内类型为`list_head` 的变量的名字；

比如说：

```
const struct miscdevice *p = list_entry(v, struct miscdevice, list)

```

然后我们就可以使用`p->minor` 或者 `p->name`来访问`miscdevice`。让我们来看看`list_entry` 的实现：

```
#define list_entry(ptr, type, member) \
    container_of(ptr, type, member)

```

如我们所见，它仅仅使用相同的参数调用了宏`container_of`。初看这个宏挺奇怪的：

```
#define container_of(ptr, type, member) ({                      \
    const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
    (type *)( (char *)__mptr - offsetof(type,member) );})

```

首先你可以注意到花括号内包含两个表达式。编译器会执行花括号内的全部语句，然后返回最后的表达式的值。

举个例子来说：

```
#include <stdio.h>

int main() {
    int i = 0;
    printf("i = %d\n", ({++i; ++i;}));
    return 0;
}

```

最终会打印出`2`。

下一点就是`typeof`,它也很简单。就如你从名字所理解的，它仅仅返回了给定变量的类型。当我第一次看到宏`container_of`的实现时，让我觉得最奇怪的就是表达式`((type *)0)`中的0。实际上这个指针巧妙的计算了从结构体特定变量的偏移，这里的`0`刚好就是位宽里的零偏移。让我们看一个简单的例子：

```
#include <stdio.h>

struct s {
        int field1;
        char field2;
     char field3;
};

int main() {
    printf("%p\n", &((struct s*)0)->field3);
    return 0;
}

```

结果显示`0x5`。

下一个宏`offsetof`会计算从结构体起始地址到某个给定结构字段的偏移。它的实现和上面类似：

```
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

```

现在我们来总结一下宏`container_of`。只需给定结构体中`list_head`类型 字段的地址、名字和结构体容器的类型，它就可以返回结构体的起始地址。在宏定义的第一行，声明了一个指向结构体成员变量`ptr`的指针`__mptr`，并且把`ptr` 的地址赋给它。现在`ptr` 和`__mptr` 指向了同一个地址。从技术上讲我们并不需要这一行，但是它可以方便地进行类型检查。第一行保证了特定的结构体（参数`type`）包含成员变量`member`。第二行代码会用宏`offsetof`计算成员变量相对于结构体起始地址的偏移，然后从结构体的地址减去这个偏移，最后就得到了结构体。

当然了`list_add` 和 `list_entry`不是`<linux/list.h>`提供的唯一功能。双向链表的实现还提供了如下API：

* list\_add
* list\_add\_tail
* list\_del
* list\_replace
* list\_move
* list\_is\_last
* list\_empty
* list\_cut\_position
* list\_splice
* list\_for\_each
* list\_for\_each\_entry

等等很多其它API。

---

via: <https://github.com/0xAX/linux-insides/blob/master/DataStructures/dlist.md>

译者：[Ezio](https://github.com/oska874) 校对：[Mr小眼儿](https://github.com/tinyeyeser)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


32 位 CPU 都将被淘汰，仅剩下 i686 被 Debian 9 支持

debian真心良心了

早就應該淘汰掉

Debian 开发者及 Linux 内核维护者 Ben Hutchings 在上周宣布，Debian 项目正在逐步停止对老式的 32 位 硬件架构的支持，32 位处理器里仅支持 i686 处理器。

![](/data/attachment/album/201605/10/060324eajb3j99j8rc4333.png)

在即将到来的 Debian GNU/Linux 9.0 “Stretch” 中，他们会停止支持 i586 和混合式 i586/i686 处理器。当前 Debian 9 正处于前期开发的 Debian Testing 通道。之所以停止支持，这是由于**最近发布的 GCC 仅支持 i686 级别的处理器了**。

“可能你没有注意到这个变化， gcc for i386 现在被改成针对 i686 级别处理器的了，其生成的代码在 i686 之外的处理器上运行会崩溃。在这种老式系统上运行运行测试通道和不稳定通道的机器请切换到之前的稳定通道（Jessie）。” Ben Hutchings 在[公告](https://lists.debian.org/debian-devel-announce/2016/05/msg00001.html)中说。

该变化已经出现在 Linux 内核 4.3 中，并在去年上传到了 Debian 不稳定通道的软件库中。现在，如果用户仍然在 i586 或 i486 的老式计算机上运行 Debian 的话，请切换到 Debian GNU/Linux 8 “Jessie”上。

### 在 Debian GNU/Linux 8 “Jessie” 上支持的处理器

当前 Debian GNU/Linux 的稳定版，并且也是长期支持的版本是 Jessie，即 Debian GNU/Linux 8，会直到 2020年前都提供安全补丁和软件更新的支持。也就是说，至少到 2018 年都会对老式处理器提供支持。

下列的处理器是 Debian 8 “Jessie”中支持，而在 Debian 9 “Stretch” 中不支持的：

AMD K5、K6、K6-2 （即 K6 3D）和 K6-3，DM&P/SiS Vortex86 和 Vortex86SX， Cyrix III， MediaGX， MediaGXm， IDT Winchip C6 和 Winchip 2， Intel Pentium 和 Pentium with MMX， Rise mP6， VIA C3 'Samuel 2' 和 C3 'Ezra' i386。


Mark Shuttleworth：我们不会在 Unity 8 上犯同样错误

不成熟，不把用户当小白鼠，是一种进步。

内部错误

Ubuntu 在线峰会 2016 已经结束，我们之前已经报道过，[Unity 8 和 Snap 将是 Ubuntu 桌面系统的未来](/article-7312-1.html "Unity 8 和 Snap 将是 Ubuntu 桌面系统的未来")。

正如预期，Canonical 和 Ubuntu 的创始人 Mark Shuttleworth 在他的 Q&A 环节回答了用户各种关于 Ubuntu 和开源的问题。除了我们非常感兴趣的新的 Unity 8 界面之外，其它方面他并没有回答太多。

![](/data/attachment/album/201605/10/062955subzb2p5ebd3y2s3.jpg)

有一个看起来希望 Unity 8 能出现在 Ubuntu 16.10 的用户提问道，即将到来的 Unity 8 桌面环境在 Canonical 内部的优先级如何？Mark Shuttleworth 回答说 Unity 8 将默认安装到 Ubuntu 16.10——这事我们已经知道了。

在 Ubuntu 16.10 中，用户可以直接在登录屏选用 Unity 8 会话，而不需要按照那些复杂的教程，在命令行下运行一大堆命令来安装各种软件包和调整才能使用，就像用 KDE、MATE 或 GNOME 一样简单。

### 没有用户的首肯，Unity 8 不会取代 Unity 7

说到 Unity 8 在 Canonical 内的重要程度，Mark Shuttleworth 说有一个18个人的团队正在努力开发它，争取让一切都变得完善起来，这是他们现在最高优先级的事情。他也提到，Canonical 不会重复之前在 Ubuntu 11.04 中  [Unity 7 上犯的同样错误](http://news.softpedia.com/news/Mark-Shuttleworth-Admits-That-Ubuntu-s-Unity-Interface-Was-a-Mistake-Five-Years-Ago-475130.shtml)。

所以，最重要的是 Unity 8 不会成为用户的默认桌面，在没有用户反馈时就直接替代 Unity 7。这是一个非常好的消息。只有人们真正把 Unity 8 当成他们的桌面来用时，Canonical 才会完全移除 Unity 7 ，并用 Mir 上 Unity 8 去取代它。


开源新闻速递：Google Play 中发现可绕过审查的高危木马

Summary: Canonical 为 Ubuntu 12.04 、 Ubuntu 14.04 和 Ubuntu 15.10 修复了多个内核安全补丁。

測試下rime輸入法

Android的缺点就是让人用的不安心

### 头条消息

在 Google 的 Play 市场中发现了一个名为 Viking Horde 的高危木马，它已经在五个应用中发现：Viking Jump、Parrot Copter、WiFi Plus、Memory Booster 和 Simple 2048。感染该木马的设备可以被攻击者利用来进行点击欺诈、发送短信甚至发起 DDoS 攻击。这些应用虽然已被 Google 清除，但是[安全研究人员称](http://blog.checkpoint.com/2016/05/09/viking-horde-a-new-type-of-android-malware-on-google-play/)，同样的手法可以绕过 Google 的应用审查过程，所以将来还有可能出现更多的含有该木马的应用。

![](/data/attachment/album/201605/10/202205c8hcoky2mfc2u2ss.jpg)

### 版本更迭

* [AryaLinux](http://aryalinux.org/) [发布](http://aryalinux.org/releaseNotes.php?id=1)了 2016.04 版本。它是一个基于 LFS 及 BLFS 的发行版，采用了轻量级的 MATE 桌面。
* [Q4OS](http://www.q4os.org/) 项目发布了针对树莓派 3B 的版本， Q4OS 是一个轻巧易用的 Linux 系统，基于 Raspbian 构建，提供了已经优化好的 TDE （Trinity 桌面环境）。
![](/data/attachment/album/201605/10/202205jh6361uxz8drf6r3.jpg)
* Canonical 为 [Ubuntu 12.04](http://www.ubuntu.com/usn/usn-2967-1/) 、 [Ubuntu 14.04](http://www.ubuntu.com/usn/usn-2968-1/) 和 [Ubuntu 15.10](http://www.ubuntu.com/usn/usn-2971-1/) 修复了多个内核安全补丁。
* Mesa 3D 图形库[发布](https://lists.freedesktop.org/archives/mesa-announce/2016-May/000214.html) 11.1.4 ，但是建议用户升级到 11.2 系列，它也最新[发布](https://lists.freedesktop.org/archives/mesa-announce/2016-May/000213.html)了 11.2.2 版本。
* [Solus 项目](https//solus-project.com)发布了新打造的软件管理器，界面看起来非常现代化。
![](/data/attachment/album/201605/10/202206piil3eq3ir9kgo3i.jpg)
* 在经过了一年多的开发后， Rebellin Linux 3 [发布](https://therebellin.com/rebellin-linux-v3-released/)了。它是一个基于 Debian 的发行版，带有两种桌面环境 GNOME 和 MATE 。
* [Linux AIO](http://linuxaio.net/) 发布了 Linux AIO Debian Live 8.4.0 和 Linux AIO Debian Live 7.10.0 的 Live 镜像，将这两个版本的不同分支分别打包到了两个单一的 ISO 镜像中。