在Linux下用命令行中玩转音乐库

Summary: linux下的命令行可能是对于新手而言最恐怖的经历了。我记得花费若干小时来尝试搞明白终端爆出的错误信息。当然，这是完全值得的！如果现在让我只能挑一个让新手学习学习命令行的原因，那可能就是用命令行来整个管理音乐库。在这个事情上，我喜欢用的软件叫做cmus，是"C* MUsic Player"(C音乐播放器)的简写，它完全由C写成。 cmus是一个内置了音频播放器的强大的音乐文件管理器。用它的基于ncurses的命令行界面，你可以浏览你的音乐库，并从播放列表或队列中播放音乐，这一切都是在命令行下。 Linux上安装cmus 首先，你需要按照如下建议设

这个嗲

不错

话说能后台运行么？

Repost

极客是怎样炼成的？都支持哪些音乐格式？估计又不支持中文显示。

尝试过了啊 不错i

3210 首歌成功崩溃.............

不能自己整理播放列表哎……

linux下的命令行可能是对于新手而言最恐怖的经历了。我记得花费若干小时来尝试搞明白终端爆出的错误信息。当然，这是完全值得的！如果现在让我只能挑一个让新手学习学习命令行的原因，那可能就是用命令行来整个管理音乐库。在这个事情上，我喜欢用的软件叫做[cmus](https://cmus.github.io/)，是"C\* MUsic Player"(C音乐播放器)的简写，它完全由C写成。

![](/data/attachment/album/201405/21/214351leriyo2kjxk517oi.png)

cmus是一个内置了音频播放器的强大的音乐文件管理器。用它的基于ncurses的命令行界面，你可以浏览你的音乐库，并从播放列表或队列中播放音乐，这一切都是在命令行下。

### Linux上安装cmus

首先，你需要按照如下建议设置并安装cmus。

在Ubuntu, Debian 或者Linux Mint中:

```
$ sudo apt-get install cmus

```

在Fedora上，首先[启用RPM Fusion仓库](http://xmodulo.com/2013/06/how-to-install-rpm-fusion-on-fedora.html)，接着运行:

```
$ sudo yum install cmus

```

在CentOS上，首先[启用Repoforge仓库](http://xmodulo.com/2013/01/how-to-set-up-rpmforge-repoforge-repository-on-centos.html)，接着运行:

```
$ sudo yum install cmus

```

在Archlinux上:

```
$ sudo pacman -S cmus

```

安装完之后，在命令行下如下输入就可运行cums:

```
$ cmus

```

### 导入音乐文件到 cmus

第一件要做的事情是导入你的音乐文件到你的库中。这个过程可以看出两个事情：快捷方式受到了vim的命令模式的启发；还有cmus运行的很快。我已经在20秒之内成功地导入了超过1000首歌！而在iTunes或者其他任何图形音乐库软件下试一下导入，我想你会有足够的时间来做一份花生酱三明治 :>。

要在cmus下面导入音乐，输入下面的像vim一样的命令。

```
:a /path/to/your/music/folder

```

在我的Xubuntu上，我这么做:

```
:a /home/adrien/Music/

```

接下来这个目录下所有的音乐文件会立马按照艺术家或者专辑的方式排列显示。

![](/data/attachment/album/201405/21/213606xo754fmi52e21xzz.jpg)

### 快速入门

在开始前，你可能希望记住一些基本快捷方式来开始播放你的音乐。这是cmus的唯一缺点。除非你改变它们，否则默认的快捷方式并不直观，并且你不得不学习它们。简而言之:

* **x** 播放或重播音乐
* **c** 暂停
* **b** 播放下一首音乐
* **z** 播放前一首音乐
* **s** 激活随机播放

记住之后，我们就准备开始了！

### 基本使用

cmus的界面由7个界面组成，你可以按下适当的数字键来访问。比如，启动页面是一个树形界面，你随时可以通过按下“1”来访问。这个界面可以很直观地来使用：通过上下键来导航位于左侧面板的艺术家，按下空格就可以看到特定艺术家的专辑，使用tab键来切换到右侧面板来选择某个歌曲，最后按下回车键来播放音乐。

![](/data/attachment/album/201405/21/213609aaf4e9bf4z54fumu.jpg)

如你所见，底部显示了艺术家的名字，专辑，和正在播放歌曲的标题，还有时间和音量。

第二个界面与第一个刚才显示的类似，显示了按照艺术家排列的歌曲列表。

![](/data/attachment/album/201405/21/213612ze3sus8l40e2sxel.jpg)

然而，第三个界面更有用些，它显示了目前的播放列表。要在树形视图或者列表视图下增加一首歌曲，只要在选中的歌曲上输入'y'。当你创建了一个完美的歌单之后，用如下的命令行保存下来。

```
:save /path/to/playlist

```

用下面命令加载:

```
:load /path/to/playlist

```

![](/data/attachment/album/201405/21/213614dckjjkkknzftoyn9.jpg)

第四个界面显示的是队列。队列与播放列表的一点不同是，一旦歌曲是按队列播放的，播放结束后就会被移出队列。要把一首歌加入队列，就像把它加到播放列表一样，但是使用快捷方式："e"

![](/data/attachment/album/201405/21/213616df7dl2l0h5n97527.jpg)

第五个界面也同样很有用，它是一个轻量级的文件浏览器。当你在你的电脑中查找一首歌曲而不必加入到库中的时候很有用。导航方式也非常标准：用向上或者向下键，回车键用来进入文件夹或者选中一个文件。

![](/data/attachment/album/201405/21/213619cuqxxh5rhxr40q6p.jpg)

第六界面是一个库过滤器，用来动态创建播放列表。如它听上去的那样，过滤器会遍历你的库，并且只显示符合相关规则定义的音乐。之后我会描述如何定义你自己的过滤器，但是cmus已经自带了一些。要试一下，只要使用:

```
:filter [name of the filter]

```

比如:

```
:filter classical

```

除了带有"Classical"标签的音乐，它会隐藏你库中所有的其它音乐。

![](/data/attachment/album/201405/21/213621tia1ios8r4fzizhg.jpg)

最后但同样重要的，第七个界面是设置。在这里，你可以定义你的快捷方式和命令。我会在下一部分给你一些例子。

![](/data/attachment/album/201405/21/213623ru1g4dk3w3gom7tr.jpg)

### 高级用法

正如承诺那样，你现在已经更加熟悉界面了，我会给你一些小技巧来增强你的体验。

要在界面中搜索任何东西，只要如vim那样使用相同的快捷方式

```
/[keyword]

```

还有:

```
n

```

来搜索下一处关键字。

要创建一个你的过滤器，使用语法：

```
:fset [name of the new filter]=[expression]

```

比如，你可以找到所有的旧式摇滚音乐:

```
:fset oldies=genre="Rock"&date<1970

```

要了解更多关于你可以使用的表达式，我建议你仔细阅读文档和已有的过滤器。

要重新播放所有的音乐（不过滤），使用如下命令:

```
:set replaygain=1

```

要改变快捷键到不同的键上，进入设置界面并找出现有的绑定表达式。举个例子来说，我想要将播放快捷方式从"x"改到"w",我会翻到下面的行：

```
common  x       player-play

```

接着按下回车，并改成下面的表达式

```
:bind -f common w player-play

```

总的来说，我真的喜欢cmus。它还有许多本篇中没有提到的技巧，因此在你准备好后，应该认真要读一下[man帮助手册](https://github.com/cmus/cmus/blob/master/Doc/cmus.txt)。简而言之，cmus是一款快速的，易于学习，不会乱动你的文件的好软件。如果你喜欢从命令行下管理音乐库的想法，但是还没有成为cmus的忠实粉丝，我建议你可以先试一下一些替代品，如MOC和PyTone，它们同样也很棒。

你认为cmus怎么样？你喜欢它么，或者作为图形界面的替代品？让我在评论区知道你们的想法。

---

via: <http://xmodulo.com/2014/04/manage-music-library-command-line-linux.html>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


保护你的文件，请修改 Linux 中的 Umask 值

Summary: 这篇教程教将指导 Linux 用户如何永久性地更改其系统的 Umask 值。特别建议全新安装的用户学习（想知道为什么的话，请移步下文） Umask 是什么？解释下，UMASK 代表用户掩码或用户文件创建掩码，它用于新创建的文件和文件夹，是其默认权限的基础。  上面的意思可以解释成任何基于 Linux 的操作系统为新建文件(包括文件夹)添加默认权限的规则。出于教育目的，下面列出了一些可以用来设置文件权限的八进制值掩码： 0  读, 写, 可执行 (rwx) 1  读和写 (rw-) 2  读和可执行 (r-x) 3  只读 (r--) 4  写和可执行 (-wx) 5  只写 (-w-) 6  仅可执

没事不要去改，人家都斟酌好了设了默认值，何必去改呢。。。[嘻嘻]

果然是很好的措施~

re

//@Linux中国:时代变了，要与时俱进。//@TinyOS开发者-ytc: 没事不要去改，人家都斟酌好了设了默认值，何必去改呢。。。[嘻嘻]

这个和安装系统时的加密主目录是一回事吗？如果碰到系统起不来的情况，对于新手来说，要操作那些文件是不是会很麻烦，这些文件转移到别的系统之后，权限还在吗？

转发微博.

说半天，到底应该设置成什么值？

mark，好实用

![](/data/attachment/album/201405/21/220211ggfaw4rux2fuvc9y.png)

**这篇教程教将指导 Linux 用户如何永久性地更改其系统的 Umask 值。特别建议全新安装的用户学习（想知道为什么的话，请移步下文）**

Umask 是什么？解释下，UMASK 代表用户掩码或用户文件创建掩码，它用于新创建的文件和文件夹，是其默认权限的基础。

![](/data/attachment/album/201405/21/220214i3dzx3hx595mdquk.jpg)

上面的意思可以解释成任何基于 Linux 的操作系统为新建文件(包括文件夹)添加默认权限的规则。出于教育目的，下面列出了一些可以用来设置文件权限的八进制值**掩码**：

```
0 – 读, 写, 可执行 (rwx)
1 – 读和写 (rw-)
2 – 读和可执行 (r-x)
3 – 只读 (r--)
4 – 写和可执行 (-wx)
5 – 只写 (-w-)
6 – 仅可执行 (--x)
7 – 没有权限 (---)

```

在几乎所有的 Linux 发行版本中默认 Umask 值是 0022(或022)，可以在终端模拟程序中输入 umask 命令来查看。也可以运行 “umask 八进制值掩码” 命令（例如 umask 027）来临时改变这个值。

你也许知道，新创建的文件的默认权限设置原本应该是 0666，文件夹的是 0777。应用上面所说的 umask 值后就得到 644 和 755 权限。

许多意见认为 022 掩码会带来隐私问题，也就是说您所创建的文件对其他用户来说是可随意查看的，一想到这就感到不太爽！

言归正传，用户可以按他们所愿来修改默认的 Umask 值，当然首先要保证修改的值合法。要修改默认值，**请在您的 shell 配置文件中或者 /etc/profile 文件中写入一个新的 Umask 值**。

好了，这就大功告成了！从现在开始，在你的 Linux 系统上新创建的文件或文件夹都会有准确设置的权限。但请注意已经存在的文件或文件夹的权限并不会因为上面的操作而改变。

如果您使用的是命令行，可以在任意目录下运行 ls -lah 命令，就可以看到当前的文件权限。另外，新手也可以很容易地查看到文件权限，在基于 GNOME 桌面的环境中，通过右击文件，选择属性 -> 权限选项卡。

如果你在阅读这篇教程时遇到任何问题，不要犹豫，请留下您的评论。

---

via: <http://news.softpedia.com/news/How-to-Change-Umask-Value-Permanently-in-Linux-435026.shtml>

译者：[runningwater](https://github.com/runningwater) 校对：[Caroline](https://github.com/carolinewuyan)

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


基于Aura的Google Chrome浏览器Linux版已提供下载

Summary: 经过似乎漫无止境的等待之后，Google近日正式发布采用Aura（它是这个 搜索巨头开发的内部图形层译注：硬件加速窗口管理器）的Chrome浏览器 for Linux的第一个稳定版本。 用于取代GTK+的Aura, 是用来在屏幕上绘制包括菜单和窗口框架在内的Chrome UI的主体部分（是的，它在局部窗口集成菜单和全局菜单中都能完美工作）。  这个外观框架已经在Windows和Chrome OS builds中使用，因其绝大部分是跨平台的，使得Google能够更快地开发新特性以及保证特性在不同的操作系统中的一致性。 在Linux上，相比GTK+版本的Chrome/Chromium，Aura加速界面能

中央不让装win8，能推荐下吗？

和Chromium都有感情了，怎么办…

没感觉呢。。。

Google这家伙又发明了一个新玩意儿~

悲剧 下载速度好慢 很欣赏Google 对大中华局域网 表示 郁闷

下不动........

![](/data/attachment/album/201405/22/215340oogh9q9vzzs7i7a9.png)

**经过似乎漫无止境的等待之后，Google近日正式发布采用Aura（它是这个 搜索巨头开发的内部图形层————译注：硬件加速窗口管理器）的Chrome浏览器 for Linux的第一个稳定版本。**

用于取代GTK+的Aura, 是用来在屏幕上绘制包括菜单和窗口框架在内的Chrome UI的主体部分（是的，它在局部窗口集成菜单和全局菜单中都能完美工作）。

![](/data/attachment/album/201405/22/215343p8ztlpjfu8f7z2yc.png)

这个外观框架已经在Windows和Chrome OS builds中使用，因其绝大部分是跨平台的，使得Google能够更快地开发新特性以及保证特性在不同的操作系统中的一致性。

在Linux上，相比GTK+版本的Chrome/Chromium，Aura加速界面能够更加有效地利用GPU的特性。尤其是Aura能够以每个窗口一个OpenGL的方式使用openGL而不是每个标签一个OpenGL。

新版的到来带来了一些额外的特性，包括Chrome通知中心、[一个可选的应用启动器](https://chrome.google.com/webstore/launcher)以及对显示选定的Google Now卡片的支持。

![](/data/attachment/album/201405/22/215345td63g8g93dz6l9vg.jpg)

### 其它变化

Chrome 35 稳定版同样带来大量的跨平台变动， 包括为开发者提供若干可用的新扩展API；新的触摸输入管理；以及未说明的‘新JavaScript特性’。

如同每个新版本，Chrome 35 同样包含大量稳定性，性能和安全更新。

点击以下链接下载Google Chrome 35 for Linux：

* [下载Google Chrome](https://www.google.com/chrome/browser/)

---

via: <http://www.omgubuntu.co.uk/2014/05/google-chrome-35-linux-arrives-aura>

译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

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


神器！将 Ubuntu 14.04 的所有分支刻录到一张DVD

Summary: Ubuntu 有基于不同桌面环境的几个官方版本。默认的 Ubuntu 自带 Unity 桌面，Kubuntu 则是KDE，Lubuntu 用LXDE，Xubuntu 自带Xfce。除此之外，还有一些其它的版本，但这些是最流行的官方桌面版本。 你该如何选择最适合你的 Ubuntu？一种方法是下载 Ubuntu 不同版本的 ISO 镜像并且通过Live CD或者USB实时运行。但是，这将意味着你将会下载多个 ISO 文件，一个个地写入 USB 盘或者 Live CD。有点麻烦，是吧？ 这就是Ubuntu AIO(ALL IN ONE)出现的原因。该项目是由Start Ubuntu小组部分成员发起的，Ubuntu 的 AIO DVD 可以让你在一张光盘或

最应该搞的是u盘安装方式,比较方便

还以为是工具，原来是iso

真是个神器，因为它不包括优麒麟，全世界都抛弃优麒麟就对了！

回复@YizeroWu:[鼓掌]

Ubuntu 在中国大展拳脚的时候到了，儿童计算机语言教育还是从Linux普及比较科学，欧洲多国都是这样。//@Linux中国:回复@YizeroWu:[鼓掌] //@YizeroWu:昨天刚用 14.04 的 server，结果发现自带 OpenSSL 还是有问题的版本（1.0.1f），然后果断卸载旧版本，编译最新的 1.0.1g , 在这里也提醒大家小心。

Repost

xfce +1，我一台 Ubuntu，一台 Debian 都在用她[害羞]//@這傢伙沒記性:xfce桌面最简单，速度最快 //@Linux中国:回复@YizeroWu:[鼓掌] //@YizeroWu:昨天刚用 14.04 的 server，结果发现自带 OpenSSL 还是有问题的版本（1.0.1f），然后果断卸载旧版本，编译最新的 1.0.1g , 在这里也提醒大家小心。

神器要顶！我是GNOME范...

Ubuntu 有基于不同桌面环境的几个官方版本。默认的 Ubuntu 自带 Unity 桌面，Kubuntu 则是[KDE](http://www.kde.org/)，Lubuntu 用[LXDE](http://lxde.org/)，Xubuntu 自带[Xfce](http://www.xfce.org/)。除此之外，还有一些其它的版本，但这些是最流行的官方桌面版本。

你该如何选择最适合你的 Ubuntu？一种方法是下载 Ubuntu 不同版本的 ISO 镜像并且[通过Live CD或者USB实时运行](http://itsfoss.com/create-live-usb-of-ubuntu-in-windows/)。但是，这将意味着你将会下载多个 ISO 文件，一个个地写入 USB 盘或者 Live CD。有点麻烦，是吧？

这就是[Ubuntu AIO(ALL IN ONE)](http://ubuntuaio.wordpress.com/about-us/)出现的原因。该项目是由[Start Ubuntu](https://wiki.ubuntu.com/StartUbuntu)小组部分成员发起的，Ubuntu 的 AIO DVD 可以让你在一张光盘或者一个U盘中尝试 Ubuntu Unity，Lubuntu，Xubuntu，Kubuntu 和 Ubuntu Gnome 等不同版本。

![](/data/attachment/album/201405/22/220229he1rnf34c31vrwei.jpg)

当然 Ubuntu AIO 也有一些缺点。首先它体积太大了，有将近4.7GB。所以，它不适合于标准的4GB U盘（你得刻录到光盘，或者虚拟光盘）。而且它只有两个版本，第一个是64位版本，包括有 Ubuntu，Kubuntu 和 Ubuntu Gnome，另外一个，则包含有32位版本的 Xubuntu 和 Lubuntu。尽管有缺点，这是一个不错的项目，可以帮助我们选择恰当的 Ubuntu 版本。

下载 Ubuntu AIO DVD

* [Sourceforge](http://sourceforge.net/projects/ubuntuaiodvd/)
* [Softpedia](http://linux.softpedia.com/get/Linux-Distributions/Ubuntu-AIO-DVD-103429.shtml)

[点此](http://ubuntuaio.wordpress.com/about-us/)了解更多。

享受 Ubuntu 吧！

---

via: <http://itsfoss.com/ubuntu-aio-dvd-puts-ubuntu-1404-flavors-disk/>

译者：[MikeCoder](https://github.com/MikeCoder) 校对：[Caroline](https://github.com/carolinewuyan)

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


Linux / Unix：chroot 命令实例讲解

Summary: 我是一个刚接触 Linux 和 Unix 的新手。我该如何改变一个命令的根目录？我要怎样改变一个进程的根目录呢，比如用 chroot 命令将web服务与文件系统隔离？我要如何使用 chroot 恢复密码或修复基于 Linux/Unix的受损坏的环境？   在 Linux和类 Unix 系统下每一个进程/命令的当前工作目录称之为进程/命令的根目录（译注：译者以为此处有误，实际上没有进行过chroot的进程，其根目录是系统的根目录，而不是其工作目录）。你可以使用 chroot 命令改变一个命令的根目录，这最终将会改变当前运行的进程及其子进程的根目录。 如果一个进程/命令运行

转发微博.

@我的印象笔记

@我的印象笔记

@mark

回复@果壳中的米特尼克:[赞]

chroot 花了我多少闲暇时间…//@Linux中国:回复@果壳中的米特尼克:[赞] //@果壳中的米特尼克:说得简单了点，实际使用上chroot之前最好把环境变量设了，如果需要，proc sys dev 都mount 上。看一遍gentoo的安装手册会大有裨益。最后插一句，chroot是一种很简单的虚拟化技术。

@我的印象笔记

>
> 我是一个刚接触 Linux 和 Unix 的新手。我该如何改变一个命令的根目录？我要怎样改变一个进程的根目录呢，比如用 chroot 命令将web服务与文件系统隔离？我要如何使用 chroot 恢复密码或修复基于 Linux/Unix的受损坏的环境？
>
>
>

![](/data/attachment/album/201405/22/231304gl1211mttz1sjk1a.jpg)

在 Linux和类 Unix 系统下每一个进程/命令的当前工作目录称之为进程/命令的根目录（译注：译者以为此处有误，实际上没有进行过chroot的进程，其根目录是系统的根目录，而不是其工作目录）。你可以使用 chroot 命令改变一个命令的根目录，这最终将会改变当前运行的进程及其子进程的根目录。

如果一个进程/命令运行在一个不能访问外部根目录文件的已修改环境中。这种修改环境通常被称为"监禁目录"（jail）或是"chroot 监禁"。只有特权进程和根用户才能使用 chroot 命令。然而这通常是很有用的：

1. 将特权分配给无特权的进程，例如 Web 服务或 DNS 服务。
2. 建立测试环境。
3. 不使程序或系统崩溃下，运行旧程序或 ABI 兼容的程序。
4. 系统恢复。
5. 重新安装引导装载程序，例如 Grub 或 Lilo。
6. 密码找回，重置一个已丢失的密码等。

### 用途

>
> chroot 命令 **改变其当前目录，并将根目录变为指定目录,然后如果提供了命令则运行命令**，也可以运行一个用户的交互式shell的副本（译注：即bash等。）。请注意并不是每一个程序都可以使用 chroot 命令。
>
>
>

### 语法

基本语法如下：

```
chroot /path/to/new/root command

```

或者

```
chroot /path/to/new/root /path/to/server

```

或者

```
chroot [options] /path/to/new/root /path/to/server

```

#### chroot 命令实例

在这个例子中，建立了一个"迷你监狱"用来测试一个只有 ls 命令的 Bash shell。首先用 mkdir 命令设定好 jail "监狱" 路径。

```
$ J=$HOME/jail

```

在 $J 内创建目录：

```
$ mkdir -p $J
$ mkdir -p $J/{bin,lib64,lib}
$ cd $J

```

用[cp 命令](http://www.cyberciti.biz/faq/cp-copy-command-in-unix-examples/)将/bin/bash 和 /bin/ls 复制到 $J/bin/ 路径下：

```
$ cp -v /bin/{bash,ls} $J/bin

```

将所需库文件拷贝到$J。可以用 ldd 命令找到 bash 所依赖的共享库。

```
$ ldd /bin/bash

```

输出样例：

```
linux-vdso.so.1 =>  (0x00007fff8d987000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000032f7a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000032f6e00000)
libc.so.6 => /lib64/libc.so.6 (0x00000032f7200000)
/lib64/ld-linux-x86-64.so.2 (0x00000032f6a00000)

```

直接拷贝上面输出中的库文件到 $J 目录：

```
$ cp -v /lib64/libtinfo.so.5 /lib64/libdl.so.2 /lib64/libc.so.6 /lib64/ld-linux-x86-64.so.2 $J/lib64/

```

输出样例：

```
`/lib64/libtinfo.so.5' -> `/home/vivek/jail/lib64/libtinfo.so.5'
`/lib64/libdl.so.2' -> `/home/vivek/jail/lib64/libdl.so.2'
`/lib64/libc.so.6' -> `/home/vivek/jail/lib64/libc.so.6'
`/lib64/ld-linux-x86-64.so.2' -> `/home/vivek/jail/lib64/ld-linux-x86-64.so.2'

```

复制 ls 命令所需的库文件到 $J 目录下。用 ldd 命令打印出 ls 命令依赖的共享库：

```
$ ldd /bin/ls

```

输出样例：

```
linux-vdso.so.1 =>  (0x00007fff68dff000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00000032f8a00000)
librt.so.1 => /lib64/librt.so.1 (0x00000032f7a00000)
libcap.so.2 => /lib64/libcap.so.2 (0x00000032fda00000)
libacl.so.1 => /lib64/libacl.so.1 (0x00000032fbe00000)
libc.so.6 => /lib64/libc.so.6 (0x00000032f7200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000032f6e00000)
/lib64/ld-linux-x86-64.so.2 (0x00000032f6a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000032f7600000)
libattr.so.1 => /lib64/libattr.so.1 (0x00000032f9600000)

```

你可以一个个的复制库文件，为了更高效的作业，我们也可以使用[bash shell 的循环指令](http://www.cyberciti.biz/faq/bash-for-loop/)实现：

```
list="$(ldd /bin/ls | egrep -o '/lib.*\.[0-9]')"
for i in $list; do cp  -v "$i" "${J}${i}"; done

```

输出样例：

```
`/lib64/libselinux.so.1' -> `/home/vivek/jail/lib64/libselinux.so.1'
`/lib64/librt.so.1' -> `/home/vivek/jail/lib64/librt.so.1'
`/lib64/libcap.so.2' -> `/home/vivek/jail/lib64/libcap.so.2'
`/lib64/libacl.so.1' -> `/home/vivek/jail/lib64/libacl.so.1'
`/lib64/libc.so.6' -> `/home/vivek/jail/lib64/libc.so.6'
`/lib64/libdl.so.2' -> `/home/vivek/jail/lib64/libdl.so.2'
`/lib64/ld-linux-x86-64.so.2' -> `/home/vivek/jail/lib64/ld-linux-x86-64.so.2'
`/lib64/libpthread.so.0' -> `/home/vivek/jail/lib64/libpthread.so.0'
`/lib64/libattr.so.1' -> `/home/vivek/jail/lib64/libattr.so.1'

```

最后，chroot 到你的新jail：

```
$ sudo chroot $J /bin/bash

```

尝试浏览一下 /etc 或 /var：

```
# ls /
# ls /etc/
# ls /var/

```

改变了根目录的 bash 和 ls 程序现在被监禁在$HOME/$J这个特殊目录中，而且不能再访问外部的目录树，这个目录可以看做是它们的"/"(root)目录。如果配置正确的话,这会极大增强安全性。我通常用这种技术锁定以下的应用程序。

1. [Apache - Red Hat / CentOS: Chroot Apache 2 Web Server](http://www.cyberciti.biz/tips/chroot-apache-under-rhel-fedora-centos-linux.html)
2. [Nginx - Linux nginx: Chroot (Jail) Setup](http://www.cyberciti.biz/faq/howto-run-nginx-in-a-chroot-jail/)
3. [Chroot Lighttpd web server on a Linux based system](http://www.cyberciti.biz/tips/howto-setup-lighttpd-php-mysql-chrooted-jail.html)
4. Chroot mail server.
5. Chroot Bind DNS server 等等

### 如何退出 chroot 监禁呢？

键入 exit 即可

```
$ exit

```

上述会话样例如下：

[![Animated gif 01: Linux / Unix: Bash Chroot ls Command Demo](/data/attachment/album/201405/22/231306b9smfdf3u1ofjbm3.gif)](http://www.cyberciti.biz/faq/?attachment_id=28148)

Gif 动画01: Linux / Unix: Bash Chroot ls 命令演示

### 查找服务是否存在于 chrooted 监禁内

你可以用下面两个命令[轻松的找出 Postfix 邮件服务是否已经 chrooted]：

```
pid=$(pidof -s master)
ls -ld /proc/$pid/root

```

从基本Linux服务中输出样例：

```
lrwxrwxrwx. 1 root root 0 Mar  9 11:16 /proc/8613/root -> /

```

PID 8613 指向了 / (root) 也就是说这个程序的根目录并没有被改变或是被 chroot。这个方法非常的快速而又直接，不需要打开配置文件。下面是从已经 chroot 的 ngnix 服务中得到的另一个例子：

```
pid=$(pidof -s master)
ls -ld /proc/$pid/root

```

输出样例：

```
lrwxrwxrwx 1 nginx nginx 0 Mar  9 11:17 /proc/4233/root -> /nginxjail

```

程序的根目录已经改为 /nginxjail。

### 用 chroot 救援和修复软件RAID(磁盘阵列)系统

我先假设基于软RAID的 Linux 系统无法正常启动。所以你[需要用Live CD或用基于网络的内核应急模式](http://www.cyberciti.biz/faq/centos-rhel-linux-mount-raid-hard-disk-from-livecd/)来修复系统。在这个例子中，我用了 Live Linux DVD/CD 启动一个基于 RHEL 的系统，然后再 chroot 到 /dev/sda1 和 /或 /dev/md0 修复问题：

```
## 在 Live CD 的提示符下，键入以下命令来恢复数据。##
## /dev/sda1 系统主分区##
# 建立 jail 目录
d=/chroot
mkdir $d

# 挂载 sda1 和其他所需目录
mount /dev/sda1 $d
mount -o bind /dev $d/dev
mount -o bind /sys $d/sys
mount -o bind /dev/shm $d/dev/shm
mount -o bind /proc $d/proc

# 挂载软件RAID /dev/md0
mount /dev/md0 $d/data

# Chroot 到我们新建的 jail 中。这将允许我们修复引导装载系统(bootloader)，或者在所有文件被/dev/null吞噬之前抓取数据。
chroot $d

#你能看见吗？
ls
df

# 将文件置入安全路径
rsync -avr /path/to/my_precious_data_dir user@safe.location.cyberciti.biz:/path/to/dest

# 退出 jail ,然后重启或者根据个人所需格式化服务 ;)
exit
umount {dev,sys,[...],}
reboot

```

**别急，还有更精彩的内容！**

查看nixCraft下所有其他有关 chroot 命令的文章：

1. [Ubuntu: Mount Encrypted Home Directory (~/.private) From an Ubuntu Live CD](http://www.cyberciti.biz/faq/ubuntu-mounting-your-encrypted-home-from-livecd/)
2. [Linux Configure rssh Chroot Jail To Lock Users To Their Home Directories Only](http://www.cyberciti.biz/tips/howto-linux-unix-rssh-chroot-jail-setup.html)
3. [Fix a dual boot MS-Windows XP/Vista/7/Server and Linux problem](http://www.cyberciti.biz/tips/howto-fix-dual-boot-windows-vista-linux.html)
4. [Restore Debian Linux Grub boot loader](http://www.cyberciti.biz/tips/restore-debian-linux-grub-boot-loader.html)

### 在 Linux 和 类Unix 系统下 chroot 应用程序的注意事项

你应该在各种情况下都用 chroot 特性吗？从上面的例子看出，这个程序是相当简单的，但是最终可能出现几种不同的问题而结束，例如：

1.在 jail 中缺失库文件可能直接导致 jail 崩溃。 1.一些复杂的程序不好被 chroot。所以我建议你要么尝试[真正的jail，例如FreeBSD提供的](http://www.cyberciti.biz/faq/how-to-upgrade-freebsd-jail-vps/)，要么用虚拟化解决，比如[Linux 下的 KVM](http://www.cyberciti.biz/faq/kvm-virtualization-in-redhat-centos-scientific-linux-6/)。 1.正在运行某一程序的 jail 不能再运行其他程序，不能更改任何文件，也不能"假设"另一个用户的身份。放宽这些限制，会降低你的安全性，请根据具体情况 chroot。

还要注意：

1. 当你升级本地程序时，不要忘记升级已 chroot 的程序。
2. 并非所有程序能够或者应该被 chroot。
3. 任何需要 root 权限操作的程序，对其 chroot 是没意义的。因为通常 root 用户都能脱离 chroot。
4. Chroot 并不一个高招。更多的可以学习[如何保护和加强系统的各个部分](http://www.cyberciti.biz/tips/linux-security.html)

### choort 部分命令选项

取自 man 帮助页面[chroot(8)](http://www.manpager.com/linux/man8/chroot.8.html):

```
  --userspec=USER:GROUP  使用指定的 用户 和 组 (ID 或 名称)
  --groups=G_LIST        指定补充组 g1,g2,..,gN
      --help     显示帮助并退出
      --version  显示版本信息并退出

```

### 参见

* [chroot(8) Linux/Unix 命令 man 页面](http://www.manpager.com/linux/man8/chroot.8.html)
* [Man页面 chroot(2)](http://www.manpager.com/linux/man2/chroot.2.html)
* [OpenBSD文档参见Apache chrooting FAQ 提取更多信息](http://www.openbsd.org/faq/)

---

via: <http://www.cyberciti.biz/faq/unix-linux-chroot-command-examples-usage-syntax/>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[wxy](https://github.com/wxy)

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


一条命令在Manjaro/Arch Linux上安装Sublime Text 3

Summary: Sublime Text 3目前还处于beta测试状态，目前最新的版本为Build 3059。 这个教程中我们将通过AUR安装Sublime Text 3 build 3059。  打开终端并运行下列命令, 选择是否(Y/N)继续安装（这里选择Y）。 sudo yaourt -S sublime-text-dev   loading packages... resolving dependencies... looking for inter-conflicts... Packages (1): sublime-text-dev-3.3059-1 Total Installed Size: 16.02 MiB :: Proceed with installation?  y (1/1) checking keys in keyring  100% (1/1) checking package integrity  100% (1/1) loading package fi

yaourt不要sudo吧（會提示不需要sudo的），yaourt內部會自動調用sudo pacman。

非常好用。。。

直接裝 sublime-text-dev-imfix 解決中文輸入法的問題

[赞]//@farseerfc: 直接裝 sublime-text-dev-imfix 解決中文輸入法的問題

真的假的？所有的源都有这个包？apt-get就有？回公司赶紧试试//@farseerfc: 直接裝 sublime-text-dev-imfix 解決中文輸入法的問題

我刚把2卸载了……

yaourt是强烈不建议root权限的吧，前面的这sudo.....

[Sublime Text 3](http://www.sublimetext.com/3)目前还处于beta测试状态，目前最新的版本为Build 3059。 这个教程中我们将通过AUR安装Sublime Text 3 build 3059。

![](/data/attachment/album/201405/23/140713qs0jssqk707o31h1.png)

打开终端并运行下列命令, 选择是否(Y/N)继续安装（这里选择Y）。

```
sudo yaourt -S sublime-text-dev

```

![](/data/attachment/album/201405/23/140715hgl1lcebt2s34ugl.png)

```
loading packages...
resolving dependencies...
looking for inter-conflicts...
Packages (1): sublime-text-dev-3.3059-1
Total Installed Size: 16.02 MiB
:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring           [########################################] 100%
(1/1) checking package integrity         [########################################] 100%
(1/1) loading package files              [########################################] 100%
(1/1) checking for file conflicts        [########################################] 100%
(1/1) checking available disk space      [########################################] 100%
(1/1) installing sublime-text-dev        [########################################] 100%
 ------------------------------------------------------------------------------
==> sublime-text-dev install/upgrade note:
 ------------------------------------------------------------------------------
 To disable in-application reminders about new Sublime Text dev versions,
 add the following setting to your User Preferences file:
 "update_check": false
------------------------------------------------------------------

```

![](/data/attachment/album/201405/23/140717g17ldii31f6i286i.png)

---

via: <http://www.unixmen.com/install-sublime-text-3-build-3059-manjaroarch-linux/>

译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

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


让 Ubuntu 上的 Unity 在线搜索功能见鬼去吧！

Summary: 无论何时，你开始在 Unity Dash 搜索计算机中的应用程序或文件时，你的检索词将被自动发送给第三方，如亚马逊，并且第三方将依据您的搜索词显示相关结果（主要是广告）。如果你不喜欢这个功能，感觉真的打扰到你，你可以禁用它。 例如，当我在 Unity Dash 中输入 Terminal 时，将显示 Terminal 应用和 web 上其他第三方的东东（我要发狂了！我不想要这些！）。  正如上面的截图所见，Unity显示内置的 Terminal 应用、引用链接、天气链接和其他第三方的推荐，如电影等。这是非常恼人的并且在 Unity Dash 上看起来很糟。同时，它显示了太多

直接讓Ubuntu見鬼去不就好了喵……這種綁架用戶還不尊重上游的發行版縱容它只會留下壞榜樣

这东西的确让人抓狂。

Repost

已转投linux mint，不用担心收据收集了，请主页君放心

好麻烦啊，系统设置->安全和隐私->搜索  在Dash中搜索时：选关闭就好了

无论何时，你开始在 Unity Dash 搜索计算机中的应用程序或文件时，你的检索词将被自动发送给第三方，如亚马逊，并且第三方将依据您的搜索词显示相关结果（主要是广告）。如果你不喜欢这个功能，感觉真的打扰到你，你可以禁用它。

例如，当我在 Unity Dash 中输入 “Terminal” 时，将显示 “Terminal” 应用和 web 上其他第三方的东东（我要发狂了！我不想要这些！）。

![](/data/attachment/album/201405/23/142452j5q8x29lol542zqx.png)

正如上面的截图所见，Unity显示内置的 **Terminal** 应用、引用链接、天气链接和其他第三方的推荐，如电影等。这是非常恼人的并且在 Unity Dash 上看起来很糟。同时，它显示了太多的搜索结果，并使我迷惑。

如果你像我一样不需要这个功能，在你的终端输入以下命令：

```
wget -q -O - https://fixubuntu.com/fixubuntu.sh | bash

```

上述脚本的内容如下：

```
#!/bin/bash

GS="/usr/bin/gsettings"
CCUL="com.canonical.Unity.lenses"

# Figure out the version of Ubuntu that you're running
V=`/usr/bin/lsb_release -rs`
# The privacy problems started with 12.10, so earlier versions should do nothing
if awk "BEGIN {exit !($V < 12.10 || $V >= 14.10)}"; then
  echo "Good news! This version of Ubuntu is not known to invade your privacy."
else

  # Check Canonical schema is present. Take first match, ignoring case.
  SCHEMA="`$GS list-schemas | grep -i $CCUL | head -1`"
  if [ -z "$SCHEMA" ]
    then
    printf "Error: could not find Canonical schema %s.\n" "$CCUL" 1>&2
    exit 1
  else
    CCUL="$SCHEMA"
  fi

  # Turn off "Remote Search", so search terms in Dash don't get sent to the internet
  $GS set $CCUL remote-content-search none

  # If you're using earlier than 13.10, uninstall unity-lens-shopping
  if [ $V \< 13.10 ]; then
    sudo apt-get remove -y unity-lens-shopping

  # If you're using a later version, disable remote scopes
  else
    $GS set $CCUL disabled-scopes \
      "['more_suggestions-amazon.scope', 'more_suggestions-u1ms.scope',
      'more_suggestions-populartracks.scope', 'music-musicstore.scope',
      'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope',
      'more_suggestions-skimlinks.scope']"
  fi;

  # Block connections to Ubuntu's ad server, just in case
  if ! grep -q "127.0.0.1 productsearch.ubuntu.com" /etc/hosts; then
    echo -e "\n127.0.0.1 productsearch.ubuntu.com" | sudo tee -a /etc/hosts >/dev/null
  fi

  echo "All done. Enjoy your privacy."
fi

```

再次，我进入到 Unity dash 的终端。现在 Unity 只显示终端应用，而不是无用的垃圾，现在 Unity Dash 看起来还不错。

![](/data/attachment/album/201405/23/142506wqlkzmqexqvrqqz5.png)

全部搞定，让那些杂乱的东西再也不要回来了。

欢呼~!

**更新**:这一招只适用Unity desktop。如果你使用其他的比如GNOME，LXDE或Xfce，你不用这么做。同时，这个在线搜索功能将不会包含在Ubuntu 14.10和即将推出的版本中。

Source & Reference: [Fixubuntu](https://fixubuntu.com/)

---

via: <http://www.unixmen.com/disable-unity-online-search-feature-ubuntu-14-04-lts-older-versions/>

译者：[tenght](https://github.com/tenght) 校对：[Caroline](https://github.com/carolinewuyan)

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


解决Ubuntu 14.04 Unity桌面环境登录后冻结问题

Summary: 如果你把Ubuntu从13.10更新到14.04，你也许会遇到用Unity桌面环境登录时冻结的现象。引导进入Ubuntu14.04，输入验证信息，系统会挂起，冻结在那里。如果你稍微幸运些，你还能看到鼠标光标、桌面背景，仅此而已。没有Unity触发器，也没有顶部面板等等。你的ubuntu基本上不可用了。  缺少Unity触发器和面板以及系统冻结的问题，可以通过重新安装Unity来解决。让我们看看怎么做： 重新安装14.04的Unity 以解决系统冻结的问题 好吧，如果你正被困在一个冻结的系统上，按下Ctrl+Alt+F2。这会让你进入一个命令行界面而不是默认的用户桌面界面。

实在是太感谢了啊！要是早点出来我就不用重装那么多次系统了，不过以后再出现这个问题就不用重装系统了。

Repost

不早说，我升级到beta版的时候，就出现过[泪][泪][泪]

使用的是--purge和--reinstall，不过--purge使用后显示的都是not install。 nvidia用户运行dpkg -l nvidia*

–purge to  -–purge

谢谢，应该是自动给变成了连字符——我这就去修改。

非常感谢，Thinkpad T410按照方法已经解决挂起不能恢复的问题。

1、重装desktop，unity

2、卸载nvidia包

3、启动后重新安装专用版nvidia包。

一切OK！

哈哈哈，解决问题就好~~~希望你也多分享经验心得给大家

acer4741g，试了下两个都行不通，还有其他方法吗

我没遇到过，估计我没办法了。

突然发现,我貌似双系统,ubuntu没装驱动,搞个32位的然后装驱动不懂能不能解决问题

必须赞一个啊，我也是试了好多种方法，最后是删了sudo apt-get remove --purge nvidia*，之前自己配置环境变量导致系统崩溃，<br />
改回环境变量再删除 nvidia* 就好了

如果你把Ubuntu从13.10更新到14.04，你也许会遇到**用Unity桌面环境登录时冻结的现象**。引导进入Ubuntu14.04，输入验证信息，系统会挂起，冻结在那里。如果你稍微幸运些，你还能看到鼠标光标、桌面背景，仅此而已。**没有Unity触发器，也没有顶部面板**等等。你的ubuntu基本上不可用了。

![](/data/attachment/album/201405/23/145139imj091bbsri29n94.jpg)

缺少Unity触发器和面板以及系统冻结的问题，可以通过重新安装Unity来解决。让我们看看怎么做：

### 重新安装14.04的Unity 以解决系统冻结的问题

好吧，如果你正被困在一个冻结的系统上，按下**Ctrl+Alt+F2**。这会让你进入一个命令行界面而不是默认的用户桌面界面。切换到命令行界面后，输入用户名和密码登录之后，使用下面的命令重装Unity桌面环境：

```
sudo apt-get update
sudo apt-get install --reinstall ubuntu-desktop
sudo apt-get install unity
sudo shutdown -r now

```

最后一个命令是重启系统，重启之后，你的Unity应该就变好了。

### 解决Nvidia显卡的Unity冻结问题

我没有使用过Nvidia的显卡，但是我找到了别人解决这个问题的方法。尽管上面的技巧对我来说有效，但是我没有过验证下面的命令。使用Nvidia的用户，请告诉我下面的步骤是否工作：

和上面一样使用**Ctrl+Alt+F2**登录到命令行界面，输入下面的命令：

```
sudo apt-get update
sudo apt-get install --reinstall ubuntu-desktop
sudo apt-get install unity
sudo apt-get remove --purge nvidia*
sudo shutdown -r now

```

如果重启之后Unity恢复了，记得重新安装你的Nvidia显卡的驱动，因为你已经卸载了它。

我希望这些技巧能够帮助你从冻结的unbuntu 14.04中恢复。最后，任何的问题和建议都欢迎来提。

---

via: <http://itsfoss.com/fix-unity-freezes-after-login-ubuntu-14-04/>

译者：[ggaaooppeenngg](https://github.com/ggaaooppeenngg) 校对：[wxy](https://github.com/wxy)

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


Java中8个顶级开源NoSQL数据库!

Summary: NoSQL正在崛起。许多企业和用户已经将MySQL数据库替换成了NoSQL数据库。NoSQL使分析非结构化的数据变得更容易，因此开发者必须意识到存在于NoSQL世界中的趋势和工具。 1.Terrastore 新的文档存储技术可以提供先进的伸缩性和弹性而不必牺牲一致性。Terrastore基于Trrracotta，它依赖于一个业界公认的，快速的（而且又酷）集群技术。 2.Neo4j 开源的图形数据库，用Java实现。开发者将Neo4j描述为嵌入式，基于磁盘，完全事务的Java持久引擎，将数据结构化存储在图中而不是在二维表格中 3.Voldemort 分布式键值存储系统。本质上说是一个大型，

Repost

转发送T恤吗？T恤挺好玩的！

一直对NOSQL不理解。

![NoSQL Databases, Java, Terrastore, Neo4j, Voldemort, HBase, InfoGrid, HyperGraphDB, Perst, NeoDatis ODB](/data/attachment/album/201405/24/122455bmbk77gw9mioo633.jpg)

NoSQL正在崛起。许多企业和用户已经将MySQL数据库替换成了NoSQL数据库。NoSQL使分析非结构化的数据变得更容易，因此开发者必须意识到存在于NoSQL世界中的趋势和工具。

#### 1.[Terrastore](https://code.google.com/p/terrastore/)

新的文档存储技术可以提供先进的伸缩性和弹性而不必牺牲一致性。Terrastore基于Trrracotta，它依赖于一个业界公认的，快速的（而且又酷）集群技术。

#### 2.[Neo4j](http://www.neo4j.org/)

开源的图形数据库，用Java实现。开发者将Neo4j描述为“嵌入式，基于磁盘，完全事务的Java持久引擎，将数据结构化存储在图中而不是在二维表格中”

#### 3.[Voldemort](http://www.project-voldemort.com/voldemort/)

分布式键值存储系统。本质上说是一个大型，分布式，持久的，容错哈希表。对于应用，它可以使用类似active-record或者hibernate的O/R映射工具，这些可以提供水平扩展和更高的可用性，但是会损失巨大的便利性。

#### 4.[HBase](http://hbase.apache.org/)

Apache HBase是Google的Chang et al开发的，是继其开发的分布式存储系统Bigtable之后的另一个开源的、分布式、版本化的、非关系型数据库。

#### 5.[InfoGrid](http://infogrid.org/trac/)

带有很多额外的软件组件的Web图形数据库，使在图形数据库基础上开发Rest-ful的web应用变得很容易。

#### 6.[HyperGraphDB](http://www.kobrix.com/hgdb.jsp)

通用的、可扩展、便携、嵌入式、开源数据存储机制。它是一个特别为人工智能和web语义项目设计的图形数据库，同样可以用于不同大小项目的嵌入式面向对象数据库。

#### 7.[Perst](http://www.mcobject.com/perst/)

Perst是McObject的开源实现，双许可证，面向对象的嵌入式数据库系统（ODBMS）。它的一个版本是用Java开发的嵌入式数据库，另外一个用C#实现（对于Microsoft .NET Framework的应用而言）。

#### 8.[NeoDatis ODB](http://neodatis.wikidot.com/)

一个简单的运行在Java、.Net、 Google Android、 Groovy 和 Scala上的对象数据库。

---

via: <http://www.efytimes.com/e1/fullnews.asp?edid=138992>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


谷歌浏览器使用的 PDF 渲染引擎已开源

Summary: 像谷歌这样的大公司并不是真的喜欢开源项目，虽然他们的谷歌浏览器基于开源的 Chromium 浏览器。现在，在谷歌浏览器中所使用的 PDF 渲染引擎以开源形式发布了。 在谷歌浏览器中所使用的 PDF 渲染引擎是 PDFium ，迄今为止这个项目都没有向公众发布过。现在还不清楚是什么改变了他们的想法，不过现在用户们可以去下载 PDFium 的源代码了。 虽然 PDFium 现在是开源的，但是它是在一个有特定条件的新 BSD 协议下发布的。例如再次使用源代码必须保留其原有的版权声明、一份条件列表以及一份免责声明。对于二进制文件的再发布需要相同的条件。

其他浏览器可以兼容吧[思考]

Repost

![](/data/attachment/album/201405/24/205705h4g1b1tu4hkhh3gg.jpg)

**像谷歌这样的大公司并不是真的喜欢开源项目，虽然他们的谷歌浏览器基于开源的 Chromium 浏览器。现在，在谷歌浏览器中所使用的 PDF 渲染引擎以开源形式发布了。**

在谷歌浏览器中所使用的 PDF 渲染引擎是 [PDFium](https://code.google.com/p/pdfium/) ，迄今为止这个项目都没有向公众发布过。现在还不清楚是什么改变了他们的想法，不过现在用户们可以去下载 PDFium 的源代码了。

虽然 PDFium 现在是开源的，但是它是在一个有特定条件的新 BSD 协议下发布的。例如再次使用源代码必须保留其原有的版权声明、一份条件列表以及一份免责声明。对于二进制文件的再发布需要相同的条件。与此同时，无论是版权持有者还是它的贡献者都不能署名或推广该软件的衍生产品。

就像大多数的开源项目一样，它可以通过 Git 取得，你可以很容易地使用如下命令乃克隆该项目：

```
git clone https://pdfium.googlesource.com/name

```

虽然 PDFium 未必能在其他主要项目中使用，但我们很高兴看到谷歌正在试图对开源社区变得友好。

---

via: <http://news.softpedia.com/news/Google-Chrome-s-PDF-Rendering-Engine-Released-as-Open-Source-443461.shtml>

译者：[wwhio](https://github.com/wwhio) 校对：[wxy](https://github.com/wxy)

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


Webmin 1.690 更新，针对 Ubuntu 14.04 LTS优化

Summary: Webmin是一个基于web接口面向Unix系统管理员的工具，最新版本1.690 已可下载 在任何新式浏览器下运行webmin，用户都可以设置各种配置，如用户账号、apache服务器、DNS、文件共享以及更多。Webmin的开发者已经对这个软件做了一些例行更新。最新的版本不是一个大版本，但是仍有一些有用的修复。 据开发者所言，加入了一些对于XSS攻击的安全修复、增加了用于阻止多次登录系统失败的IP地址的Fail2Ban模块，Squid模块中的urlrewritechildren指令已经修复为了支持所有的进程数量选项，并且对于Ubuntu 14.04的支持已经改善。 还有一些安全问题，

这工具好用！[赞]

是么

![](/data/attachment/album/201405/24/210504m15ocy9bvzpu1ppz.jpg)

**Webmin是一个基于web接口面向Unix系统管理员的工具，最新版本1.690 已可下载**

在任何新式浏览器下运行webmin，用户都可以设置各种配置，如用户账号、apache服务器、DNS、文件共享以及更多。Webmin的开发者已经对这个软件做了一些例行更新。最新的版本不是一个大版本，但是仍有一些有用的修复。

据开发者所言，加入了一些对于XSS攻击的安全修复、增加了用于阻止多次登录系统失败的IP地址的Fail2Ban模块，Squid模块中的url*rewrite*children指令已经修复为了支持所有的进程数量选项，并且对于Ubuntu 14.04的支持已经改善。

还有一些安全问题，如会被未信任的Webmin用户在PHP配置和Webalizer模块中利用的安全漏洞，java applet的文件管理模块的签名，UI库更新等。

完整的修改和改进列表可以在官方[声明](http://www.webmin.com/changes.html)中找到。你现在可以在官网中下载Webmin 1.690。

---

via: <http://news.softpedia.com/news/Webmin-1-690-Arrives-with-Ubuntu-14-04-LTS-Optimization-443451.shtml>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


戴文的Linux内核专题：22 配置内核 (18)

驱动的确是个麻烦事啊

![](/data/attachment/album/201405/24/212323zqp97m90x474xxcq.jpg)

你好！准备好阅读下一篇文章了么？在本篇中，我们将会讨论辅助显示。辅助显示是一些小的LCD屏幕；大多数小于或等于128x64。接着，我们会讨论用户空间IO驱动，一些虚拟驱动，Hyper-V，开发中驱动，IOMMU，和其他一些内核特性。

第一个配置辅助显示的驱动是"KS0108 LCD Controller"。KS0108 LCD Controller是由三星制造的图形控制器。

下面可以设置LCD并口地址(Parallel port where the LCD is connected)。第一个并口地址是0x378，下一个是0x278，第三个是0x3BC。这些不是地址唯一的选择。大多数人不需要改变这个。shell命令"cat /proc/ioports"会列出可用的并口和地址。

内核可以设置KS0108 LCD 控制器的写入延时到并口(Delay between each control writing (microseconds))。默认的值大部分是正确的，因此一般不需要更改。

"CFAG12864B LCD"屏幕是一块128x64，双色LCD屏幕。这块屏幕依赖于KS0108 LCD控制器。

可以改变这些LCD屏幕的刷新率(Refresh rate (hertz))。通常上，更高的刷新率会导致更多的CPU活动。这意味着一个缓慢的系统需要一个更低的刷新率。

设置完辅助显示后，接着设置"Userspace I/O drivers"。用户空间系统允许用户的应用和进程访问内核中断和内存地址。启用了它，一些驱动可以放在用户空间。

"generic Hilscher CIF Card driver"用于Profibus卡和Hilscher CIF卡。

"Userspace I/O platform driver"在用户空间创建通用驱动系统。

下一个驱动和上面的相同，但是增加IRQ处理(Userspace I/O platform driver with generic IRQ handling)。

下面的驱动又像前面的一个，但是增加了动态内存支持(Userspace platform driver with generic irq and dynamic memory)。

下面，是一些供应商/设备特性的驱动。

接着是一些通用PCI/PCIe卡驱动(Generic driver for PCI 2.3 and PCI Express cards)。

下面的驱动用于"VFIO support for PCI devices"。VFIO代表Virtual Function Input/Output(虚拟功能输入/输出)。VFIO允许设备直接以安全方式访问用户空间。

"VFIO PCI support for VGA devices"允许VGA通过VFIO被PCI支持。

接下来是virtio驱动。virtio是一个IO虚拟化平台。这个虚拟软件用于操作系统虚拟化。这在Linux系统上的虚拟机上运行一个操作系统时需要。

我们第一个可以配置的virtio驱动是"PCI driver for virtio devices"。这允许虚拟访问PCI

"Virtio balloon driver"允许虚拟系统的内存根据需要扩展或减少。通常上，没有人希望在需要内存的时候，虚拟系统保留它可能不会使用的内存。

下面的驱动允许内存映射到virtio设备(Platform bus driver for memory mapped virtio devices)。

如果Linux内核需要运行在微软的Hyper-V系统上，那么启用这个驱动(Microsoft Hyper-V client drivers)。这允许Linux能够成为Hyper的访客/客户端系统。

![](/attachments/kernel_18-png.617/)

下面，我们会配置处于开发阶段的驱动。这些驱动正在开发当中，可能会变化很快，或者还没到Linux内核的质量标准。这个分类中的驱动只有Android驱动(在内核3.9.4中)。是的，Andorid使用Linux内核，这使得Andorid变成了一个Linux系统。然而，这仍然有争议。如果内核是用于Android，那么最好启用所有的驱动。

"Android Binder IPC Driver"提供了对于Binder的支持，它允许Andorid系统进程间相互通信。

下面可以启用ashmen驱动(Enable the Anonymous Shared Memory Subsystem)。Ashmem代表"Anonymous SHared MEMory"(虚拟内存共享)或者"Android SHared MEMory"(Andorid共享内存)。

"Android log driver"提供了完整的Andorid日志系统。

"Timed output class driver" 和 "Android timed gpio driver"允许Andorid系统操作GIP引脚并在超时后取消操作。

"Android Low Memory Killer"会在需要更多内存关闭进程。这个特性会杀死不再使用或活跃的任务。

"Android alarm driver"使内核在设定的间隔后唤醒。

在配置完开发阶段的驱动后，下面的驱动用于X86平台。这些驱动是 X86 (32-bit)的供应商/设备特定硬件。

下一个驱动是"Mailbox Hardware Support"。这个框架控制邮箱队列和硬件邮箱系统的中断信号。

"IOMMU Hardware Support"链接内存到能够使用DMA的设备上。IOMMU增强了DMA。IOMMU映射地址并阻止故障设备访问内存。IOMMU同样允许硬件访问比没有IOMMU更多内存。

"AMD IOMMU support"提供了对AMD设备更好的IOMMU支持。

对于AMD IOMMU支持存在调试特性(Export AMD IOMMU statistics to debugfs)。

存在一个对于AMD硬件的更新版本的IOMMU驱动(AMD IOMMU Version 2 driver)。

Linux内核同样支持对Intel设备的IOMMU驱动支持(Support for Intel IOMMU using DMA Remapping Devices)。

一些设备可能会接受不同的电压和时钟频率。这个驱动允许操作系统控制设备的电压输出和时钟频率(Generic Dynamic Voltage and Frequency Scaling (DVFS) support)。启用了这个驱动，可以启用下面的那些对于电源/性能管理特性。

"Simple Ondemand"就像上面的，但是只会基于设备活动改变时钟频率。通常上，更多的活动意味着设备需要更快的时钟速率来使用更多的资源需求。

"Performance"允许系统设置最高支持的时钟速度以满足最好的性能。这会增加电源消耗。

"Powersave"会设置时钟频率到最低以节约电源。

"Userspace"允许用户空间设置时钟频率。

"External Connector Class (extcon) support"使得用户空间可以监视外部连接器如USB和AC口。这允许应用了解是否插入了线缆。用户几乎都希望启用这个。如果任何人由于某个合理的理由禁用了它，请告诉我们为什么这么做。

"GPIO extcon support"驱动就像上面的驱动，但是它只对于GPIO管脚。

接下来是不同的供货商/设备特定的内存控制器(Memory Controller drivers)。内存芯片控制器可能是独立的设备或者内置在内存芯片上。这些控制器管理这输入和输出的数据流。

"Industrial I/O support"驱动提供了标准的传感器接口而不管总线的类型(像PCIe、spi、GPIO等等)。IIO是"Industrial I/O support"(工业IO)的通用缩写。

Linux内核提供了大量不同的加速器、放大器模数转换器、惯性测量单元、光敏传感器、磁场传感器和其他许多传感器和转换器的支持。

"Intel Non-Transparent Bridge support"驱动支持连接到系统的PCIe硬件桥。所有到映射内存的写入会镜像到两个系统中。

"VME bridge support"和上面的相同除了桥使用的是VME，这是一个不同的总线标准。

"Pulse-Width Modulation (PWM) Support"通过调节从这些设备收到的平均功率调节背光灯和风扇速度。

"IndustryPack bus support"提供了对IndustryPack总线标准的支持。

下一篇文章，我们会继续配置固件驱动。谢谢!

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-18.4896/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


教你6步定制你的Ubuntu桌面

Summary: 对于那些想要一个易于使用的界面的用户，Ubuntu是一个很好的Linux发行版，并且对于一个Linux新手也可以说是最好的Linux发行版。不过这产生了一些副作用，那就是，对于界面和外观，Canonical公司已经为用户做了很多设定，尤其是Unity桌面环境。 然而这些不是一成不变的。下面是一些关于怎样让你更加舒心地使用Ubuntu的技巧。看过上面的截图中我对Ubuntu的设定，你可以看到我的的Unity桌面，相比于默认设定的桌面有何不同。 下面让我们分步来实现定制Ubuntu桌面。 1. 安装Unity Tweak Tool 在你能对Ubuntu外观做任何有效地修改之前，你不得

马克

14.04界面是这样了吗？？

回头挑战一下，继雨滴之后再整一波。//@狄家怡:转发微博

There isn’t a software package called “unity-tweak-tool” in your current software sources. what's

回复@北斗七哥:这是定制的嘛

心都吸引

回复@Linux中国:好高级，搞一个看看~

电脑版感觉还是比较一般，手机版的真是与众不同～

Repost

ubuntu12.04通过命令行安装怎么找不到相应的软件包?

这个主题已经安装了，不过我不喜欢图标，状态栏挺好看的！

习惯了ubuntu14.04界面，不太喜欢这个定制界面图标

@我的印象笔记

#Ubuntu#有点喜欢上”sudo apt-get install ”……软件命令了，简单直接，不用满世界找软件下载，也无病毒木马之忧 //@校长Ubuntu:转发微博

太帅了就是有点乱套

楼主你第一个截图里面的图标主题哪里下载的?能分享一下么?好酷炫啊!

来自 - 安徽合肥科学技术大学 的 Chrome/Linux 用户

不是我的截图，我也不知道啊。

好像是Numix的图标主题

![](/data/attachment/album/201405/24/212114fozom004mom2q8re.jpg)

对于那些想要一个易于使用的界面的用户，Ubuntu是一个很好的Linux发行版，并且对于一个Linux新手也可以说是最好的Linux发行版。不过这产生了一些副作用，那就是，对于界面和外观，Canonical公司已经为用户做了很多设定，尤其是Unity桌面环境。

然而这些不是一成不变的。下面是一些关于怎样让你更加舒心地使用Ubuntu的技巧。看过上面的截图中我对Ubuntu的设定，你可以看到我的的Unity桌面，相比于默认设定的桌面有何不同。

下面让我们分步来实现定制Ubuntu桌面。

### 1. 安装Unity Tweak Tool

在你能对Ubuntu外观做任何有效地修改之前，你不得不安装[Unity Tweak Tool](https://apps.ubuntu.com/cat/applications/unity-tweak-tool/)。这是一个Unity桌面环境下特殊设置管理软件，并且通过它你可以实现替换系统图标和主题。你可以从Ubuntu软件中心下载该软件，如果你更加偏爱terminal终端的话，你也可以使用下面的命令：

```
sudo apt-get install unity-tweak-tool

```

如果你正在使用Gnome桌面环境，那么你可能需要尝试Gnome Tweak Tool这款软件。你也可以从Ubuntu软件中心和使用以下命令来安装该软件：

```
sudo apt-get install gnome-tweak-tool

```

### 2. 安装GTK主题

对于Ubuntu有很多定制的主题，这些主题可以影响应用和窗口的外观。我正在使用的主题是Numix GTK+。你可以在<http://numixproject.org/>找到关于Numix主题和图标的更多信息。你可以通过打开终端并输入以下命令来安装Numix主题：

```
sudo add-apt-repository ppa:numix/ppa
sudo apt-get update && sudo apt-get install numix-gtk-theme

```

为了使该主题生效，我们需要打开Unity Tweak Tool，选择“外观标题”下的“主题”选项，然后在“已有主题”一栏中选择该主题。只要相应的软件仓库名字一致，对于其他主题，你可以重复该过程来应用。你可以访问[Gnome-Look.org](http://gnome-look.org/?xcontentmode=100)获得更多的主题。另一个和Numix主题很相似的主题是Moka，你可以在<http://mokaproject.com/>获得更多关于Moka主题的信息。

### 3. 安装图标

以上截图中使用的图标是来自Numix主题的Numix圆形图标。你可以通过在终端输入以下命令来安装该图标集：

```
sudo apt-add-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-icon-theme-circle

```

为了使该图标集生效，我们需要在Unity Tweak Tool中选择“图标”选项，然后选择该图标集。再一次声明，这个方法对于任何图标集是可行的。Moka也提供给你的桌面带来多彩的、一致性设计的图标集。

### 4. 安装conky系统监视软件

Conky是一个轻量级桌面系统监视软件。该软件本身是非常简单的，不过它是可定制的，这样一来它就可以显示很多的有用的信息。你可以通过在终端输入以下命令来安装Conky：

```
sudo apt-get install conky conky-all

```

你将会需要curl这个软件，你可以通过以下这个命令来安装该软件：

```
sudo apt-get install curl

```

上面截图中使用的conky主题是[Harmattan](http://zagortenay333.deviantart.com/art/Conky-Harmattan-426662366)，它可以以15种不同的样式来显示时间、天气、以及系统进程。要安装该主题，你可以从[deviantART](http://www.deviantart.com/art/Conky-Harmattan-426662366)下载zip文件，然后解压。将.conky-weather文件夹和位于主题文件夹的.conkyrc文件（你可能需要按Ctrl+H来显示这些隐藏文件）移动到你的home文件夹。Conky有[很多的主题](http://www.deviantart.com/?qh=&section=&global=1&q=conky)。尝试这些主题，你所需要做的就是用所要使用主题的.conkyrc文件替换在home文件夹的.conkyrc文件。

### 5. 安装一些指示器程序

有很多第三方的指示器程序，通过这些程序你可以监视你的桌面信息，例如天气、系统性能等。我所使用的指示器程序相当简单。因为天气和系统性能已经在conky中显示，所以我没有安装这些指示器。不过你可以在终端输入以下命令来安装他们：

```
sudo apt-get install indicator-weather
sudo apt-get install indicator-multiload

```

我所使用的两个指示器程序是大小写指示程序以及触摸板控制器，这是因为我的笔记本没有大小写指示灯和控制触摸板开关的热键。你可以通过以下命令来安装这两个软件：

```
sudo add-apt-repository ppa:tsbarnes/indicator-keylock
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install indicator-keylock
sudo apt-get install touchpad-indicator

```

你可能需要注销并重新登录来使用这些应用。

### 6. 通过Compiz设置管理器深度定制你的桌面

如果对于你来说Unity Tweak Tool不够强大，那么你可以尝试[Compiz设置管理器](https://apps.ubuntu.com/cat/applications/compizconfig-settings-manager/).

**警告:**

如果错误的设置被应用的话，Compiz设置管理器可能会损害到你的系统。所以使用时要格外小心。你可以看到Ubuntu系统中隐藏的各种设置。你可以在Ubuntu软件中心获取该软件或者终端输入以下命令来安装：

```
sudo apt-get install compiz compizconfig-settings-manager compiz-fusion-plugins-extra compiz-fusion-plugins-main compiz-plugins

```

现在你的Ubuntu桌面变得具有超棒了！所有的这些步骤都有成千上万种选择，所以折腾是无极限的。还在等什么？还不赶紧去享受你的新Ubuntu桌面！

---

via: <http://www.muktware.com/2014/05/customize-ubuntu-desktop-6-steps/26750>

译者：[JonathanKang](https://github.com/JonathanKang) 校对：[wxy](https://github.com/wxy)

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


Ubuntu14.10(代号“独角兽”)已基于3.15 RC5版本的linux内核

Summary: Ubuntu 14.10（代号独角兽）的开发已于数周前开始，现在开发者们已经做出了第一个重大的改变即使用新的Linux内核版本。 通常情况下，下一版本Ubuntu的开发是基于上一个发布的版本，如Ubuntu 14.04 LTS。开发小组开始向Linux内核当中加入新的软件包，通常是那些没来得及放到之前的版本的软件包。Linux发行版其中最重要的组件之一是linux内核，现在也更新了。 Ubuntu 14.04 LTS附带的是3.13的linux内核，开发者们并没有机会将3.14版本的加入其中，它放出的时间太晚以致没有足够的时间去做测试。到现在为止，Ubuntu开发小组也没有说明最终发

@红蓝独角兽 恭喜中枪

新内核能带来什么直接明显的体验吗？

Repost

wow，要试试

lol  这代号吊！

马克

这新闻看得一头雾水

![](/data/attachment/album/201405/24/224344omcspdahl3tc8mqc.jpg)

**Ubuntu 14.10（代号“独角兽”）的开发已于数周前开始，现在开发者们已经做出了第一个重大的改变即使用新的Linux内核版本。**

通常情况下，下一版本Ubuntu的开发是基于上一个发布的版本，如Ubuntu 14.04 LTS。开发小组开始向Linux内核当中加入新的软件包，通常是那些没来得及放到之前的版本的软件包。Linux发行版其中最重要的组件之一是linux内核，现在也更新了。

Ubuntu 14.04 LTS附带的是3.13的linux内核，开发者们并没有机会将3.14版本的加入其中，它放出的时间太晚以致没有足够的时间去做测试。到现在为止，Ubuntu开发小组也没有说明最终发布版本会使用哪个内核版本，但是他们实现了在3.15内核版本下的编译，即使它仍旧在开发当中。

在一个Ubuntu内核小组的会议当中[Joesph Salisbury宣布](https://lists.ubuntu.com/archives/ubuntu-devel/2014-May/038305.html)：“我们往Utopic的归档中上传了第一个基于3.15版本的内核，3.10.0-1.5，它现在是基于3.15-rc5的最新linux内核版本。”

除非3.16的内核版本在Ubuntu 14.10的内核截止日（错过这个日期点，新的内核不会被提交）之前现身，否则到10月之前，能够实现的很有可能就是这个版本了。

如果没有什么意外发生，每个内核的开发迭代在8到10个候选版本之间，但是这个数目是不定的。Linus Torvalds平均每周会发布一个RC候选版本，但也不是固定不变的。比如，发布3.15系列的候选之后将近两周没有新的版本发布了。

参考Ubuntu 12.04.5 LTS版本的惯例，Ubuntu 14.04.1将会在接下来的几个月当中发布，内核截止的日期只有5周左右了。

Ubuntu 14.10（代号“独角兽”）号称它会成为一个很有趣的版本，而且已经带来了一个新的特色：Unity 8和Mir两种版本都会作为常规版本中的一员。

如果你真的想知道将来的Ubuntu 14.10 版本发生了哪些改变，你可以[下载每日更新的版本](http://linux.softpedia.com/get/Linux-Distributions/Ubuntu-Utopic-Unicorn-103418.shtml)试试看。现在来看它和Ubuntu 14.04 LTS版本很类似，但是很快它将变的不同！

### 下载

* [Ubuntu 14.10 Daily Build (ISO) 64-bit](http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-amd64.iso)[iso] [965 MB]
* [Ubuntu 14.10 Daily Build (ISO) 32-bit](http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-i386.iso)[iso] [971 MB]
* [Ubuntu 14.10 Daily Build (ISO) 64-bit Mac](http://cdimage.ubuntu.com/daily-live/current/utopic-desktop-amd64+mac.iso)[iso] [963 MB]

---

Via: <http://news.softpedia.com/news/Ubuntu-14-10-Utopic-Unicorn-Now-Based-on-Linux-Kernel-3-15-RC5-443260.shtml>

译者：[jiajia9linuxer](https://github.com/jiajia9linuxer) 校对：[wxy](https://github.com/wxy)

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


最小的树莓派系统 picore5.3，载着3.14.4内核归来

Summary: Tiny Core团队已经宣布，picore 5.3（一个Tiny Core Linux 在树莓派上的移植），刚刚发布了一个新的版本，现在可供下载。 Tiny Core的核心开发者实际上同时负责其他大量的同一基础的版本。开发者已经推出了一些变体。有Core版（为有经验的用户提供了命令行界面的基本系统），TinyCore（推荐给有网线连接的新手），和CorePlus（安装映像，不是Live版的）。 Tiny Core团队并不是第一次发布这样的Linux版本，但其中有些改进是必要的，虽然除了引入新的Linux内核之外的改变都不大。 根据变更日志所述，Linux已经更新到版本3.14.4，树莓派的固

没钱买树莓派[泪]

[good]

我记得这是奶瓶启动不完全的界面

![](/data/attachment/album/201405/24/232535yya4nyi0yv7n4evh.jpg)

**Tiny Core团队已经宣布，picore 5.3（一个Tiny Core Linux 在树莓派上的移植），刚刚发布了一个新的版本，现在可供下载。**

Tiny Core的核心开发者实际上同时负责其他大量的同一基础的版本。开发者已经推出了一些变体。有Core版（为有经验的用户提供了命令行界面的基本系统），TinyCore（推荐给有网线连接的新手），和CorePlus（安装映像，不是Live版的）。

Tiny Core团队并不是第一次发布这样的Linux版本，但其中有些改进是必要的，虽然除了引入新的Linux内核之外的改变都不大。

根据变更日志所述，Linux已经更新到版本3.14.4，树莓派的固件也更新到了它的最新版本（三月版），e2fsprogs已经更新到版本1.42.10， HDMI sound 现在已经支持192 kbit /s速率，CMA和fiq-fsm现在默认启用，现在，卸载meta-extensions时使用sudo。

更新树莓派不用移去SD卡了，而且开发者已经发布了一些如何去操作的说明。

“下载picore-5.3rc4-boot.tar.gz，解压到一个临时文件夹，然后挂载/mnt/mmcblk0p1并覆盖其内容。它将覆盖引导自定义选项，如果你修改过原来系统中的config.txt和cmdline.txt，需要再修改一次。”

“如果使用无线远程连接请不要重启，否则你将由于不兼容的内核模块而丢失无线连接！从库里面下载一个匹配内核的模块tcz's后再重启。你必须保证有一个已经更新的系统可以工作。请注意，有可能是库里面仍然没有可用的内核模块扩展，” 请阅读官方论坛发布的备注。

完整的更新日志可以官网[声明](http://forum.tinycorelinux.net/index.php/topic,17061.0.html)中看到。你现在可以从Softpedia下载[picore 5.3](http://linux.softpedia.com/get/Linux-Distributions/Tiny-Core-Linux-piCore-103260.shtml)。

树莓派带有一个700 MHz的ARM处理器、512 MB的RAM、SD卡插槽和5V MicroUSB供电接口。它还具有RCA和HDMI端口。

Tiny Core Linux 的树莓派移植是Robert Shingledecker架构的一个独立系统，现在被一个具有强大社区的小团体所支持。

如果你不熟悉的Tiny Core家族的Linux发行版，你只需要知道，这是一个有开源社区开发扩展的一个模块化系统，它通常使用最新Linux内核vmlinuz 3.0，大约5MB core.gz内核。

### Tiny Core Linux piCore 5.3: 免费下载

* [Tiny Core Linux piCore 5.3 (zip) 多版本](http://tinycorelinux.net/5.x/armv6/releases/5.3/) [二进制] [14 MB]

---

引用: <http://news.softpedia.com/news/Smallest-OS-for-Raspberry-Pi-piCore-5-3-Returns-with-Linux-Kernel-3-14-4-443246.shtml>

译者：[jiajia9linuxer](https://github.com/jiajia9linuxer) 校对：[wxy](https://github.com/wxy)

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


“战斗砖块剧场”占据了 Steam 上 Linux游戏排行榜首位

Summary: Steam for Linux平台在过去几周接受了一些新游戏，其中几个在最畅销名单里有很高的提升。 小小世界2 取代原第十位并成为进入这个专属名单里的新游戏。这款游戏基于同名的幻想桌游，这可能是此类型游戏里唯一一个有Linux版本的游戏。 足球经理2014 掉到了第九位，但鉴于这是Steam for Linux上最贵的游戏，我们可以有把握地说他依然做的很好。不需要介绍，这款游戏被认为是同类中做得最好的。 反恐精英：起源 ，游戏结合了原作反恐精英的玩法，使用的是Source引擎，又回到了Steam for Linux最畅销名单顶部，位于第八位。 伊卡罗斯之炮在线版

这。。。是什么时候的排行榜？  小小世界2还在数据库后台里 连企鹅标志都没上   足球经理早就不是最贵的游

Java与C#两种编写语言谁实用点？

汗。。。

![](/data/attachment/album/201405/25/220353gu4eumf969wx6w69.jpg)

**Steam for Linux平台在过去几周接受了一些新游戏，其中几个在最畅销名单里有很高的提升。**

**小小世界2** 取代原第十位并成为进入这个专属名单里的新游戏。这款游戏基于同名的幻想桌游，这可能是此类型游戏里唯一一个有Linux版本的游戏。

**足球经理2014** 掉到了第九位，但鉴于这是Steam for Linux上最贵的游戏，我们可以有把握地说他依然做的很好。不需要介绍，这款游戏被认为是同类中做得最好的。

**反恐精英：起源** ，游戏结合了原作反恐精英的玩法，使用的是Source引擎，又回到了Steam for Linux最畅销名单顶部，位于第八位。

**伊卡罗斯之炮在线版** ，Muse Games开发的多玩家第一人称射击游戏，游戏有多个平台版本，包括Linux，现在它位于第七位而且它甚至打二五折。

**求生之路2** ， Valve开发的多人合作第一人称射击游戏，仍然是Linux平台最好的游戏之一，位于第六位。

**星界边境 Starbound** ，呵呵鱼工作室开发的一款程序生成冒险类游戏，游戏中玩家玩家扮演了一个逃离了自己星球而只能紧急降落在其他星球的角色，游戏在第五位。这个游戏仍然在开发中，在游戏完成之前就有人买的事实说明了游戏的质量。

**坎巴拉太空计划** ，一个多类型玩法的游戏，游戏中玩家必须要创建自己的太空项目而且要在不杀死宇航员的情况下发射成功，游戏现在在第四位。

**盖瑞模组 Garry's Mod**, 一个物理沙箱，就其本身而言它甚至不算是个游戏，它存在于第三空间，如果我们想想它的话它确实很奇怪。游戏没有单独的玩家战争，但玩家有完全的自由。

**腐蚀Rust**, 一款第一人称生存游戏，游戏背景发生在一个持久的宇宙中，游戏不再是第一位，但第二位也不是那么糟糕。游戏仍在开发中，没有迹象表明多会儿会发布最终版本。

Steam for Linux的最畅名单中位于第一位是新领主，叫做 **战斗砖块剧场** 。这是一款由The Behemoth创作并发布的2D战斗平台游戏，游戏特点是有趣的关卡设计和漂亮的图案。

玩的开心！

---

via: <http://news.softpedia.com/news/BattleBlock-Theater-Now-Rules-the-Steam-for-Linux-Best-Selling-List-442722.shtml>

译者：[linuhap](https://github.com/linuhap) 校对：[wxy](https://github.com/wxy)

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


Spotify 原生Linux客户端更新，暗黑风格来袭

Summary: Spotify 原生Linux客户端更新，暗黑风格来袭  继streaming service上个月在其它平台上发布它的应用之后，以同样的扁平化和黑色风格的设计，Linux版本的Spotify客户端也发布了更新。 金属质感的灰色元素和白色清爽的条区设计形成了基于黑色的风格，以黑色和浅黑色的颜色为主。甚至公司的绿色的商标也不能幸免，以奇怪的颜色出现在各种地方。 在作曲家和个人资料条目中图片的设计上均采用了圆形的设计元素，并且在导航栏和播放控制按钮的地方采用了iOS 7风格。 Spotify官方说道这种设计风格突出了软件的内容，他们将之比作熄掉所有灯光的剧

赞

注册的时候告诉我不适用我们国家是怎么回事

可惜在TC。。。

Spotify 原生Linux客户端更新，暗黑风格来袭
===========================

![](/data/attachment/album/201405/26/085707s5zqnq5lna3lal3n.jpg)

**继streaming service上个月在其它平台上发布它的应用之后，以同样的扁平化和黑色风格的设计，Linux版本的Spotify客户端也发布了更新。**

金属质感的灰色元素和白色清爽的条区设计形成了基于黑色的风格，以黑色和浅黑色的颜色为主。甚至公司的绿色的商标也不能幸免，以奇怪的颜色出现在各种地方。

在作曲家和个人资料条目中图片的设计上均采用了圆形的设计元素，并且在导航栏和播放控制按钮的地方采用了iOS 7风格。

Spotify官方说道这种设计风格突出了软件的内容，他们将之比作“*熄掉所有灯光的剧场。*”

除了吸引你眼球的这些改变，还有一些你可能错过的不易察觉的变化。这包括Open SSL 1.0.x的使用、使用*libavcodec54*来实现本地音乐重放以及播放曲目变化时对本地系统通知的调用支持。

现在，该软件已不再提供32位的版本。

由于长期处于预览阶段，Linux下的原生Spotify客户端**支持免费和订阅账户**。

### 安装Spotify

要在Ubuntu 14.04 LTS上安装Spotify，你可以打开终端，然后输入下面的命令。

首先将Spotify官方的软件仓库添加到你的软件源列表中：

```
sudo sh -c 'echo "deb http://repository.spotify.com stable non-free" > /etc/apt/sources.list.d/spotify.list'

```

添加该软件仓库的安全密钥来避免不必要的错误：

```
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 94558F59

```

最后，更新并且安装Spotify：

```
sudo apt-get update && sudo apt-get install spotify-client-qt

```

安装完成后就可以从Dash启动Spotify了。

---

via: <http://www.omgubuntu.co.uk/2014/05/spotify-linux-preview-update-new-design>

译者：[JonathanKang](https://github.com/JonathanKang) 校对：[wxy](https://github.com/wxy)

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


用WinAte主题包将Ubuntu/Debian Jessie扮成Windows 7/8

Summary: WinAte最近刚刚发布一个更新，这个主题包能够将你的Ubuntu/Debian变得看起来像Windows 7/Windows 8。 （译注，虽然很多人对将好好的Linux扮成Windows不以为然，不过未尝不是一个有趣的体验？） 曾经有段时间你可以轻易地改变绝大多数Linux发行版的外观，使得他们看起来像是Windows的一个副本，但那种时光已经一去不复返了。只有少数Linux发行版的外观仍能够被修改，而Ubuntu和Debian Jessie正在此列。 官网说明道：有了这个全新的WinAte  Windows 7/8 转换包for LXDE（译注：Lightweight X11 Desktop Environment，一个自由桌面环境），你

要是自带一个模拟Metro的启动器就更好玩了…… [偷笑]

Theme是为了梅花桌面，这个越扮越丑真的大丈夫？

![](/data/attachment/album/201405/26/125739alclbc2bzcevbrlj.jpg)

**WinAte最近刚刚发布一个更新，这个主题包能够将你的Ubuntu/Debian变得看起来像Windows 7/Windows 8。** （译注，虽然很多人对将好好的Linux扮成Windows不以为然，不过未尝不是一个有趣的体验？）

曾经有段时间你可以轻易地改变绝大多数Linux发行版的外观，使得他们看起来像是Windows的一个副本，但那种时光已经一去不复返了。只有少数Linux发行版的外观仍能够被修改，而Ubuntu和Debian Jessie正在此列。

官网说明道：“有了这个全新的WinAte ———— Windows 7/8 转换包for LXDE（译注：Lightweight X11 Desktop Environment，一个自由桌面环境），你能够得到Windows所有的图标和整体外观，而不用花费大量的资源或者不得不去适应老旧的Gnome 2主题。只需运行install.sh脚本，所有东西就能工作。只需这么做，然后注销，再次登录即可。”

这个主题包有一些很容易满足的依赖：gtk2-engines-murrine，gtk2-engines-pixbuf，以及 compton。安装过程十分简单，安装说明所有人也都能够轻易理解。

这个主题包就外观来说可能最接近于用户长期以来习惯的Windows 7或Windows 8，但它可以用来帮助人们更容易地迁移到Linux。

你可以从[gnome-look.org](http://gnome-look.org/content/show.php/%5BLXDE%5DWinAte+-+Windows+7%2B8+Theme+pack?content=163150)下载WinAte ————Windows 7/8主题包。

---

via: <http://news.softpedia.com/news/Turn-Ubuntu-and-Debian-Jessie-into-Windows-7-and-Windows-8-with-WinAte-Theme-Pack-443302.shtml>

译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

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


Ubuntu 的开发者准备开发一个仅基于 Unity 8的新风格

Summary: Ubuntu 的开发者提出将开发一个单独使用 Unity 8的新风格，以帮助他们自由的实验而不必担心搞乱操作系统稳定。 如果你的环境满足安装需要的话，现在可以在Ubuntu 14.04 LTS中安装体验下 Unity 8 桌面环境的预览版了。现在，新的桌面还不能在专有驱动下运行，因为它依赖于 Mir，而这玩意儿还没有获得 NVIDIA 和 AMD 的官方支持。 无论如何，有一个新的 Ubuntu 风格对于开发者在新的生态环境中测试他们的创意都会有巨大的帮助，而且从　USB Stick 里启动十分方便还能体验大多数的移植性应用。 桌面环境开发组很希望为 Ubuntu 增加一个新的风

#单身久了会变丑#

#单身久了会变丑#

![Current Unity 7 desktop in Ubuntu 14.04 LTS](/data/attachment/album/201405/26/132109q80ws6nrz5qtt31w.jpg)

**Ubuntu 的开发者提出将开发一个单独使用 Unity 8的新风格，以帮助他们自由的实验而不必担心搞乱操作系统稳定。**

如果你的环境满足安装需要的话，现在可以在Ubuntu 14.04 LTS中安装体验下 Unity 8 桌面环境的预览版了。现在，新的桌面还不能在专有驱动下运行，因为它依赖于 Mir，而这玩意儿还没有获得 NVIDIA 和 AMD 的官方支持。

无论如何，有一个新的 Ubuntu 风格对于开发者在新的生态环境中测试他们的创意都会有巨大的帮助，而且从　USB Stick 里启动十分方便还能体验大多数的移植性应用。

“桌面环境开发组很希望为 Ubuntu 增加一个新的风格（嘘~，我们并不是计划现在就发行一个正式的版本），这个风格将包括为触屏项目开发的Unity 8桌面和新的应用。最初的意图是提供一个产品使得开发人员可以在做一个基于该软件的桌面产品的时候可以估算出所需要的的工作量，并建立一个可以由实验来找出所需的最佳结合方式的空间。”

“我们仍将计划融合当前的桌面环境，但是我们不希望给用户带来不安稳和造成不便，而且希望并行的发展这个新风格可以使我们真正实现在软件已经准备就绪的时候再迁移，而不是迁移后再解决用户的原有软件的兼容问题。” Ubuntu 的开发者 Iain Lane说。

Ubuntu 14.04 LTS 现在默认使用 Unity 7，而且可能这至少将持续到下一个版本 Ubuntu 14.10。Ubuntu 开发者的目标是最迟在下一个 LTS：Ubuntu 16.04 中让 Unity 8 和 Mir 成为默认的配置，但是如果事情进展的顺利，我们可能会在此之前就能成功。

这个新风格的名字是什么还不清楚，但是如果地位确定的话，我们可能在接下来的几个月就可以得到ISO文件。这将会使得用户更容易地测试 Unity 8 ，而且可以在它成为默认配置之前体验一把。

当 Canonical 用 Unity 替换旧的 GNOME 2 的时候，这个转换引起的震动是如此之大，以至于直到今天在论坛中还时不时的被人提及。有一个专门的 Unity 8 风格可能会缓解这个问题。

---

via: <http://news.softpedia.com/news/Ubuntu-Developers-Propose-a-New-Flavor-Based-Only-on-Unity-8-442262.shtml>

译者：[crowner](https://github.com/crowner) 校对：[wxy](https://github.com/wxy)

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


CentOS上配置主DNS服务器的简易指南

马，正好要用

貌似没有 禁用 递归啊？

回复@闪电川冰:是的，这个是简单指南，其中关于如何禁止开放查询，会在另外一篇，我们还没翻译。事实上。DNS之复杂，远非一篇小文能说清楚，这里只是一个简单引导。

回复@Linux中国:好的 持续关注中...

回复@闪电川冰:已经有了、文内有链接。当然距离一个安全的dns还很远。

讲得挺多的。看WIN下搭个DNS也是挺费事的。

其实搭建容易，麻烦在需要了解精通一系列DNS的各种机制、规范什么的。

任何运作中的域名至少有两台DNS服务器，一台称为主域名服务器（比如叫做ns1），而另一台称为从域名服务器（比如叫做ns2）。这些服务器通常用于故障转移：如果一台宕机，另外一台就激活成为DNS服务器（译注：此处译者有不同意见，事实上两个或更多的DNS服务器是共同工作的，并不是第一台停止服务后，第二台才接替工作。解析器是随机选择一个DNS服务器进行询问，如果超时则会询问下一个，这是多个DNS的故障容错机制）。也可以实现包括负载均衡、防火墙和集群在内的更为复杂的故障转移机制。

一个域的所有DNS条目都会被添加到主域名服务器，从服务器只会根据主服务器上的SOA记录的序列号参数从主服务器同步所有信息。

此教程将会讲述**如何创建一台在CentOS上运行的主DNS服务器**。请注意，本教程中提到的DNS服务器将会是一台开放DNS服务器，这也就是说该服务器将会回应来自任何IP地址的查询。对于DNS服务器的访问控制将在[此教程](http://linux.cn/article-2969-1.html)中讨论（译注：开放的DNS服务器是一个安全隐患）。

![](/data/attachment/album/201405/26/151355uzrlxqrp5855qdxy.jpg)

在开始之前，我想要提一下的是，DNS可以在chroot环境中配置，也可以在非chroot环境中配置。chroot环境将DNS服务器限制在系统中某个特定目录中，以避免让服务器具有系统级的访问权限。在此环境中，任何DNS服务器的安全漏洞不会导致整个系统的破坏。将DNS服务器置于chroot环境中，对于部署测试也很有用。

### 目标

我们将在基于域名example.tst的测试环境中配置一台DNS服务器，这个域名是虚假的（并不真实存在的）。这样，我们就不会意外干扰到其它真实的域名。

在该域中，有以下三台服务器。

|  |  |  |  |
| --- | --- | --- | --- |
| 服务器 | IP地址 | 托管的服务 | 完全限定域名（FQDN） |
| Server A | 172.16.1.1 | Mail | mail.example.tst |
| Server B | 172.16.1.2 | Web, FTP | www.example.tstftp.example.tst |
| Server C | 172.16.1.3 | Primary DNS server | ns1.example.tst |

我们将会配置一台主域名服务器，并添加上表中必要的域和DNS记录。

### 设置主机名

所有的主机名必须以完全限定域名的方式正确定义，可以通过以下方法完成设置。

```
# vim /etc/sysconfig/network
```

---

```
HOSTNAME=ns1.example.tst
```

注：该文件中指定的主机名参数在服务器启动后才会启用（译注：或者网络服务重启后），因此，该设置不会马上生效。下面的命令可以立刻临时性地修改主机名。

```
# hostname ns1.example.tst

```

一旦设置，主机名可以通过以下命令验证。

```
# hostname
ns1.example.tst
```

在进入下一步之前，请确保上述三台服务器上的主机名已经设置正确。

### 安装软件包

我们将使用bind来配置DNS服务，该软件可以很方便地通过yum来安装。

不使用chroot环境的：

```
# yum install bind bind-chroot

```

使用chroot环境的：

```
# yum install bind bind-chroot

```

### 准备配置文件

正如前面提到的，bind可以在chroot环境下配置，或者在非chroot环境下配置，配置文件的路径会因为是否安装chroot包而不同。

|  |  |  |
| --- | --- | --- |
|  | 配置文件路径 | 区域文件路径 |
| 不带有 chroot | /etc/ | /var/named/ |
| 带有 chroot | /var/named/chroot/etc/ | /var/named/chroot/var/named/ |

可以使用默认提供的named.conf配置文件，但是为了更方便使用，我们将使用另外一个简单的配置文件模板。

非chroot环境：

```
# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /etc/named.conf

```

chroot环境：

```
# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

```

现在来备份并修改配置文件。

非chroot环境：

```
# vim /etc/named.conf

```

chroot环境：

```
# vim /var/named/chroot/etc/named.conf

```

添加/修改以下行：

```
options {
## 区域文件存放目录 ##
directory "/var/named";

## 对于非本地权威域的请求转发到 Google 的公开 DNS 服务器 ##
forwarders { 8.8.8.8; };
};

## 申明一个本地域 example.tst ##
zone "example.tst" IN {
        type master;
        file "example-fz"; ## 存储文件名，放在 /var/named ##
        allow-update { none; };
};

## 为IP段 172.16.1.0 提供反向解析 ##
zone "1.16.172.in-addr.arpa" IN {
        type master;
        file "rz-172-16-1"; ## 存储文件名，放在 /var/named ##
        allow-update { none; };
};

```

### 准备区域文件

那些默认的区域文件会自动创建到/var/named 或者/var/named/chroot/var/named (chroot环境)。如果在这些地方找不到这些文件，/usr/share/doc/bind目录中提供了模板文件，可以从这里拷贝。

假设默认区域文件没有提供，我们可以从/usr拷贝模板文件。

非chroot环境：

```
# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.* /var/named/

```

chroot环境：

```
# cp /usr/share/doc/bind-9.8.2/sample/var/named/named.* /var/named/chroot/var/named

```

很好！由于现在默认的区域文件已经准备好，我们可以为example.tst和172.16.1.0网络创建区域文件了，以下要点必须时刻谨记。

* 区域文件中的特殊字符‘@’意味着空。（译注：意即代表本域。）
* 所有的完全限定域名必须以点‘.’结束。如：example.tst.如果没有这个点，你会发生问题。（译注：即会被当做当前@所代表的域的子域。）

#### 1. 转发区域（本地权威域）

转发区域包含了名称到IP地址的映射。对于公开的域，域名托管提供商的DNS服务器存储了转发区域文件。（译注：转发区域即本地的权威域，由这个服务器自身提供权威的解析数据）

非chroot环境：

```
# vim /var/named/example-fz

```

chroot环境：

```
# vim /var/named/chroot/var/named/example-fz

```

---

```
$TTL 1D
@       IN SOA  ns1.example.tst. sarmed.example.tst. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
IN NS      ns1.example.tst.
IN A       172.16.1.3
mail        IN A        172.16.1.1
        IN MX 10    mail.example.tst.
www     IN A        172.16.1.2
ns1     IN A        172.16.1.3
ftp     IN CNAME    www.example.tst.

```

**说明**：在区域文件中，SOA是开始授权（Start Of Authority）的意思。它的值的第一段是授权名称服务器的完全限定域名。完全限定域名后面跟着的是电子邮件地址。由于不能在[sarmed@example.tst](mailto:sarmed@example.tst)这样的格式中使用‘@’符号（译注：@有特定意义，代表本域。），我们将电子邮件地址重写成sarmed.example.tst.这样的格式。

以下是典型的常用DNS记录类型：

* **NS**：域名服务器
* **A**: 地址记录，记录主机名到IP地址的映射（译注，此处原文有误。）
* **MX**: 邮件交换记录。这里我们只用了一个邮件交换记录，设置其优先级为10。如果有多个邮件交换记录，我们可以使用多个数值优先级，数字小的优先级最高。例如，MX 0比MX 1优先级更高。
* **CNAME**: 标准名。如果在一台单一服务器上托管了多个服务，也很可能将多个名称解析到某个单一服务器。CNAME指定了一台服务器可能有的其它名称，并且将它们指向具有实际A记录的名称。

#### 2. 反向区域

反向区域包含了IP地址到名称的映射。这里，我们为172.16.1.0网络创建反向区域。在正式的域中，公共IP区块的拥有者拥有的DNS服务器存储反向区域文件。（某些服务，如邮件服务，要求IP地址具备正确的反向解析才能正常工作。而IP的反向解析，通常是由IP的拥有者如接入商或IDC来负责解析。）

非chroot环境：

```
# vim /var/named/rz-172-16-1

```

chroot环境：

```
# vim /var/named/chroot/var/named/rz-172-16-1

```

---

```
$TTL 1D
@       IN SOA  ns1.example.tst. sarmed.example.tst. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
IN NS      ns1.example.tst.
1       IN PTR  mail.example.tst.
2       IN PTR  www.example.tst.
3       IN PTR  ns1.example.tst.

```

**说明**:除了下面的参数外，反向区域文件中的大多数参数和转发区域文件中的相同。

* PTR: IP反向解析记录，指向一个反向限定域名。

### 结束工作

既然区域文件已经准备好，我们接下来调整它们的权限。

非chroot环境：

```
# chgrp named /var/named/*

```

chroot环境：

```
# chgrp named /var/named/chroot/var/named/*

```

现在，我们为DNS服务器设置IP地址。

```
# vim /etc/resolv.conf
```

---

```
nameserver 172.16.1.3
```

最后，我们可以启动DNS服务，并确保将它添加到启动服务中。

```
# service named restart
# chkconfig named on

```

DNS服务器起动后，建议关注一下日志文件/var/log/messages，这里头包含了后台运行的一些有用信息。如果没有发现错误，我们可以开始测试DNS服务器。

### 测试DNS

我们可以使用dig或者nslookup来测试DNS。首先，我们需要安装必要的软件包。

```
# yum install bind-utils

```

#### 1. 使用dig测试转发区域

使用dig来测试时，必须时刻关注状态信息：“NOERROR”，任何其它值都表明存在问题。

```
# dig example.tst

```

---

```
;; ->>HEADER<<- opcode: QUERY,  status: NOERROR, id: 31184

;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            86400   IN      A       172.16.1.3

;; AUTHORITY SECTION:
example.com.            86400   IN      NS      ns1.example.com.

;; ADDITIONAL SECTION:
ns1.example.com.        86400   IN      A       172.16.1.3

```

#### 2. 使用dig测试PTR记录

使用dig来测试时，必须时刻关注状态信息：“NOERROR”，任何其它值都表明存在问题。（译注，也可用 dig 1.1.16.172.in-addr.arpa. ptr 来测试。）

```
# dig -x 172.16.1.1

```

---

```
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27415

;; QUESTION SECTION:
;1.1.17.172.in-addr.arpa.       IN      PTR

;; ANSWER SECTION:
1.1.16.172.in-addr.arpa. 86400  IN      PTR     mail.example.tst.

;; AUTHORITY SECTION:
1.16.172.in-addr.arpa.  86400   IN      NS      ns1.example.tst.

;; ADDITIONAL SECTION:
ns1.example.tst.        86400   IN      A       172.16.1.3

```

#### 3. 使用dig测试MX记录

```
# dig example.tst mx

```

---

```
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35405

;; QUESTION SECTION:
;example.tst.                        IN      MX

;; ANSWER SECTION:
example.tst.         14366   IN      MX     10  mail.example.tst.

```

### 排错提示

1. 我已经把SELinux关闭。
2. 保证防火墙没有阻挡UDP 53端口
3. 万一出错，可在/var/log/messages中查看到有用的信息
4. 确保区域文件的属主为‘named’
5. 确保DNS服务器的IP地址是/etc/resolv.conf中的第一条目
6. 如果你使用example.tst作为实验环境，确保将服务器从互联网断开，因为example.tst是一个不存在的域。

最后小结，该教程关注的是实验环境中配置example.tst域用作为演示。请注意，该教程中创建了一台公共DNS服务器，此服务器会回应来自任何源IP地址的查询。如果你是在配置DNS生产服务器，请确保检查与公共DNS相关的策略。其它教程涵盖了[创建从DNS服务器](http://linux.cn/article-3093-1.html), [限制对DNS服务器的访问](http://xmodulo.com/2014/04/close-open-dns-resolver.html)以及部署DNSSEC。

希望此教程对您有所帮助。

---

via: <http://xmodulo.com/2014/04/primary-dns-server-using-centos.html>

译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

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


如何在CentOS中创建辅域名服务器

Summary: 在上篇教程里，我们为一个测试域exmample.tst创建了一个主域名服务器（ns1）。在本篇中，我们会在CentOS中使用bind包为相同的域创建一个辅域名服务器（ns2）。  当创建一个辅DNS服务器的时候，下面的因素需要仔细考虑。  在辅域名服务器中，你不需要手动创建正向和反向区域文件。这些区域文件会定期从主域名服务器上面同步。 当主域名服务器上的任何区域文件被修改的时候，'serial'参数也应当被更新。只有当主服务器上面区域文件的serial被修改之后，辅DNS服务器才会进行同步。  我们假设辅DNS服务器的IP地址是172.16.1.4。让我们来进行安

T

在[上篇教程](http://linux.cn/article-3092-1.html)里，我们为一个测试域exmample.tst创建了一个主域名服务器（ns1）。在本篇中，我们会在CentOS中使用bind包为相同的域创建一个辅域名服务器（ns2）。

![](/data/attachment/album/201405/26/161918yt6ljctt8lljjkkb.jpg)

当创建一个辅DNS服务器的时候，下面的因素需要仔细考虑。

* 在辅域名服务器中，你不需要手动创建正向和反向区域文件。这些区域文件会定期从主域名服务器上面同步。
* 当主域名服务器上的任何区域文件被修改的时候，'serial'参数也应当被更新。只有当主服务器上面区域文件的serial被修改之后，辅DNS服务器才会进行同步。

我们假设辅DNS服务器的IP地址是172.16.1.4。让我们来进行安装。

### 设置主机名

就像主域名服务器一样，辅域名服务器的主机名也应当是一个完全限定域名（FQDN）。

```
# vim /etc/sysconfig/network
```

---

```
HOSTNAME=ns2.example.tst
```

注意，在该文件中设置的主机名在服务器启动的时候会被使用。因此，如果你在系统启动之后修改该文件，修改结果不会立刻生效。下面的命令可以用来在系统运行的时候修改并及时生效。

```
# hostname ns2.example.tst

```

设置之后，可以用下面的命令来查看主机名称。

```
# hostname

```

---

```
ns2.example.tst

```

在进行下面的步骤之前，确保所有三台服务器的主机名称已经被正确设置。

### 安装软件包

就像[主服务器](http://linux.cn/article-3092-1.html)一样，配置一台辅域名服务器可以使用chroot或者不用。必须的软件包可以使用yum轻松安装。

不使用 chroot:

```
# yum install bind

```

使用 chroot:

```
# yum install bind-chroot

```

### 为区域文件的传输准备配置文件

在CentOS中使用bind创建域名服务器后，默认设置允许所有的区域文件被任意服务器同步。安全起见，我们需要配置主域名服务器，只允许它允许辅域名服务器进行同步。

#### 1. 主域名服务器

不使用chroot：

```
# vim /etc/named.conf

```

使用chroot：

```
# vim /var/named/chroot/etc/named.conf

```

---

```
zone "example.tst" IN {
    type master;
    file "example-fz"; ## 文件example-fz在主域名服务器上 ##
    allow-update { none; };
    allow-transfer {172.16.1.4; }; ## 允许辅域名服务器进行传输 ##
};

zone "1.16.172.in-addr.arpa" IN {
    type master;
    file "rz-172-16-1"; ##文件rz-172-16-1在主域名服务器上##
    allow-update { none; };
    allow-transfer {172.16.1.4; }; ## 允许辅域名服务器进行传输 ##
};

```

#### 2. 辅域名服务器

软件安装后提供的默认配置文件就可以用来配置辅域名服务器。但是，我们使用会使用另外一个实例配置文件来进行配置，因为这样便于调整。

不使用chroot：

```
# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /etc/named.conf

```

使用chroot：

```
# cp /usr/share/doc/bind-9.8.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

```

当执行完上面的命令进行文件拷贝后，添加下面的内容到刚才那个拷贝后的文件中。

```
options {
        directory "/var/named";
        forwarders {8.8.8.8; };

};

zone "example.tst" IN {
        type slave;  ## 该主机为辅域名服务器 ##
        file "example-fz"; ## 这个文件会被自动创建 ##
        //allow-update { none; };
        allow-transfer {172.16.1.3; };  ## 定义必要时进行从其传输的主域名服务器 ##
        masters {172.16.1.3; }; ## 定义主域名服务器 ##
};

zone "1.16.172.in-addr.arpa" IN {
        type slave; ## 该主机被定义为辅域名服务器 ##
        file "rz-172-16-1"; ## 这个文件会被自动创建 ##
//      allow-update { none; };
        allow-transfer {172.16.1.3; };  ## 定义主域名服务器 ##
        masters {172.16.1.3; };
};

```

### 结束工作

为了确保没有权限相关的问题，我们需要做如下调整。

不使用chroot：

```
chmod 770 /var/named/

```

使用chroot，你需在named服务启动后按照下面的命令修改权限。

```
# chmod 770 /var/named/chroot/var/named

```

现在万事俱备，我们可以重启named服务。或者，确保named服务已经被加到了开始列表中。

```
# service named restart
# chkconfig named on

```

如果不出意外，辅域名服务器应该会向主域名服务器请求一个区域的传输，并且产生自己的/var/named目录。日志文件/var/log/messages会包含一些named服务的有用信息，包括区域文件传输过程中的信息。

### 测试一个辅域名服务器

我们可以使用dig或者nslookup进行DNS测试操作。在本篇教程中我们会使用nslookup来进行演示。必要的软件包可以通过yum进行安装。

```
# yum install bind-utils
# nslookup

```

---

```
> server 172.16.1.4
Default server:     172.16.1.4
Address:            172.16.1.4#53

> example.tst
Server:             172.16.1.4
Address:    172.16.1.4#53

Name:       example.tst
Address:    172.16.1.3

> set type=mx
> example.tst
Server:             172.16.1.4
Address:            172.16.1.4#53

example.tst         mail exchanger = 10 mail.example.tst.

> exit

```

### 排错提示

1. 我们无需在辅域名服务器上创建任何区域文件。所有的区域文件都会与主域名服务器进行同步。
2. 辅域名服务器上的named服务会定期与主服务器进行同步。如果你想来一次及时的同步，可以使用命令"rncd retransfer "。如下：

```
# rndc retransfer example.tst

```
3. 只有当主服务器上区域文件的serial数字被修改变大的时候，辅域名服务器才会进行更新。
4. 确保用户named可以对文件夹/var/named或者/var/named/chroot/var/named（使用chroot的情况下）进行写操作。
5. /var/log/messages会包含有用的信息。
6. 我已经将SELinux关闭了。
7. 确保防火墙对UDP53端口开放。

希望这个可以帮到你。

---

via: <http://xmodulo.com/2014/04/secondary-dns-server-centos.html>

译者：[zzlyzq](https://github.com/zzlyzq) 校对：[wxy](https://github.com/wxy)

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


Coverity 扫描报告首次发现开源软件质量超过专有软件

Summary: Coverity开启了免费开发测试服务，允许任何对开源软件质量感兴趣的人查看项目 来自美国山景城（加州）的消息：Coverity公司（新思科技公司的一个子公司）发布了2013年Coverity扫描开源软件报告。 经过Coverity扫描服务以及按照Coverity开发测试平台的商业惯例，报告中详细分析了关于7.5亿行开源软件代码的分析，这是至今报告研究的最大的样本量。 在2013年Coverity扫描报告中，他们分析了超过700个C/C++开源项目和一个匿名的企业项目的样本。另外，报告中还强调了几个流行的开源Java项目的分析结果，这些项目从2013年3月就加入了扫描服务

感谢支持，我是Bob，原厂专职负责Coverity的销售与支持，有任何问题请随时联系。也欢迎大家免费试用Coverity。

我的联系方式：13311307163

Bao.Han@synopsys.com

![](/data/attachment/album/201405/27/141623kgjsgeng6rch7hxf.jpg)

**Coverity开启了免费开发测试服务，允许任何对开源软件质量感兴趣的人查看项目**

来自美国山景城（加州）的消息：Coverity公司（新思科技公司的一个子公司）发布了2013年Coverity扫描开源软件报告。

经过Coverity扫描服务以及按照Coverity开发测试平台的商业惯例，报告中详细分析了关于7.5亿行开源软件代码的分析，这是至今报告研究的最大的样本量。

在2013年Coverity扫描报告中，他们分析了超过700个C/C++开源项目和一个匿名的企业项目的样本。另外，报告中还强调了几个流行的开源Java项目的分析结果，这些项目从2013年3月就加入了扫描服务。

Coverity扫描开源项目报告成为了一个被广泛接受的衡量开放源代码质量状态的标准。在过去8年时间里，Coverity扫描服务分析了超过1500个开源项目的数亿行代码——其中包括的C/C++项目中有NetBSD, FreeBSD，LibreOffice和Linux等，Java项目中有Apache Hadoop，HBase以及Cassandra等。

自2006年已来，扫描服务帮助开发者发现和修复了超过94,000缺陷。仅在2013年一年就修复了近50,000个缺陷——这是扫描服务的用户在一年中修复缺陷的最大数量。在这些缺陷中，其中有超过11,000的缺陷修复出现在扫描服务中的四个最大的项目：NetBSD，FreeBSD，LibreOffice和Linux。

### 2013年报告中重要发现包括：

#### C/C++项目中开源软件代码质量超过专有软件

缺陷密度（每1,000行软件代码所含的缺陷）是一个通用的测量软件质量的方法，缺陷密度1.0被认为是高质量软件的公认的行业标准。

Coverity的分析中发现，扫描服务中的开源的C/C++项目的平均缺陷密度为 0.59，而为企业项目开发的专有C/C++代码的缺陷密度为 0.72。在2013年，在所有不同大小的代码库中，扫描服务中的开源项目的代码质量超过专有项目，这进一步强调了开源社区开发测试的坚定的承诺。

#### Linux继续成为开源质量的基准

通过利用扫描服务，Linux将修复一个新发现的缺陷的时间从122天减少到仅6天！从2008年第一个Coverity扫描报告发布后，扫描过的Linux版本的缺陷密度一直小于1.0。在2013年，Coverity扫描了超过850万行Linux代码并发现缺陷密度为 0.61。

#### C/C++开发者修复了更多的高风险缺陷

Coverity分析报告发现贡献于开源Java项目的开发者修复的高风险缺陷的数量没有贡献于开源C/C++项目的开发者修复的多。

参加扫描服务的Java项目开发者只修复了13%的被指出的资源泄露，而C/C++项目开发者则修复了46%。这一方面可能是因为Java编程社区错误的安全感的原因，这种安全感是因为内建于语言的保护，比如垃圾收集。然而，垃圾收集是不可预测的，而且不能访问系统资源，所以这些项目处于危险之中。

#### HBase是Java项目的基准

Coverity分析了100个开源Java项目的超过800万行代码，包括流行的大数据项目Apache Hadoop 2.3 (320,000 行代码)和Apache Cassandra (345,000 行代码)。

自从在2013年8月加入扫描服务以来，Apache HBase (Hadoop的数据库)修复了超过220个缺陷，其中包括比其他参加扫描服务Java项目更高比例的资源泄露（HBase的缺陷中资源泄露占的比例为66%，而其他项目平均为13%）。

“如果说软件正在吞食世界，那么开源软件则是带头冲锋，”Coverity的产品高级总监Zack Samocha说，“我们的目标，包括Coverity扫描服务在内是帮助开源软件社区创作高质量的软件。基于这个报告的结果——以及这个日益流行的服务——使用开发测试的开源软件项目继续提升他们软件的质量，这让他们使整个行业更上一层楼。”

Coverity今天也宣布已经开放了Coverity扫描服务，允许任何对开源软件感兴趣的人查看参与项目的进展。个人现在可以成为项目观察者，这使他们可以跟踪扫描服务中相关开源软件的状态，查看高级数据包括未解决和已修复的缺陷的数目以及缺陷密度。

“我们看到了请求扫描服务的人数的指数增长，他们仅仅是要监控被发现和被修复的缺陷。在许多情况下，这些人工作于大型的企业组织，那些企业组织在商业项目中使用开源软件，”Samocha补充说。“通过对个人开放扫描服务，我们提升了查看开源项目代码质量的新的可见度，他们的软件供应链中正包含这些项目。”

---

via: <http://www.ciol.com/ciol/features/213112/coverity-scan-report-source-software-quality-outpaces-proprietary-code/page/1>

译者：[linuhap](https://github.com/linuhap) 校对：[Caroline](https://github.com/carolinewuyan)

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


戴文的Linux内核专题：23 配置内核 (19)

![](/data/attachment/album/201405/27/220253wslmuoot588qmqza.jpg)

欢迎进入Linux内核系列文章的下一篇！我们正在接近配置过程的终点。在这篇文章中，我们将会讨论固件驱动和文件系统驱动。

这个分类中的第一个驱动是寻找启动盘(BIOS Enhanced Disk Drive calls determine boot disk)。有时，Linux不会知道哪个盘是启动盘。这个驱动允许内核询问BIOS。Linux接着在sysfs上存储信息。Linux需要知道这些来设置bootloader。

即使BIOS EDD服务被编译进了内核，这个选项可以设置这些服务不激活(Sets default behavior for EDD detection to off )。EDD代表的是"Enhanced Disk Drive"(增强磁盘驱动器)。

当使用kexec加载不同的内核时，性能可以通过固件提供的内存映射提升(Add firmware-provided memory map to sysfs)。

"Dell Systems Management Base Driver"通过sysfs接口提供了Linux内核对于Dell硬件的更好的控制。

启用这个驱动可以通过/sys/class/dmi/id/访问硬件的信息(Export DMI identification via sysfs to userspace)。DMI代表的是Desktop Management Interface(桌面管理接口)。DMI管理硬件的组件和访问硬件的数据。BIOS中数据的接口和硬件由SMBIOS(System Management BIOS)规范调节。

从DMI得到的原始数据表可以通过这个驱动访问(DMI table support in sysfs)。

为了从iSCSI驱动器中启动，启用这个驱动(DMI table support in sysfs)。

最后的驱动是一组"Google Firmware Drivers"。这些驱动用于Google特定的硬件。除非你为Google工作并且需要在硬件上使用Linux或者你在为一台从Google偷来的电脑编译内核，否则不要启用它。

下面，我们可以配置内核的文件系统支持。

"Second extended fs support"驱动用于EXT2文件系统。<http://www.linux.org/threads/ext-file-system.4365/>

![](/attachments/kernel_19-png.627/)

"Ext2 extended attributes"提供了原生文件系统不支持的额外的元数据的使用。

"Ext2 POSIX Access Control Lists"增加了额外的非原生的权限模型。

"Ext2 Security Labels"增强了由SELinux提供的安全性。

启用"Ext2 execute in place support"允许可执行文件在当前的位置执行而不必在页缓存中执行。

这个驱动提供EXT3文件系统(Ext3 journaling file system support)。 <http://www.linux.org/threads/ext-file-system.4365/>

"Default to 'data=ordered' in ext3"驱动设置数据的排序模式为"Ordered"。这种处理方式为日志和写入工作。数据排序在这篇文章中解释 - <http://www.linux.org/threads/journal-file-system.4136/>

"Ext3 extended attributes"提供了原生文件系统不支持的额外的元数据使用。再说一次，接下来的EXT3的驱动/特性与EXT2相同 - "Ext3 POSIX Access Control Lists" 和 "Ext3 Security Labels"。同样，对接下来的EXT4也是相同的 - "Ext4 POSIX Access Control Lists"、"Ext4 Security Labels" 和 "EXT4 debugging support"。

EXT3和EXT4支持日志块设备调试(JBD debugging support)，(JBD2 debugging support)。

下面的驱动提供Reiser文件系统支持(Reiserfs support)。 <http://www.linux.org/threads/reiser-file-system-reiser3-and-reiser4.4403/>

Reiser文件系统也有调试(Enable reiserfs debug mode)。

内核可以存储ReiserFS统计在/proc/fs/reiserfs (Stats in /proc/fs/reiserfs)。

下面的Reiser驱动/特性与EXT2/3/4相同 - ReiserFS extended attributes", "ReiserFS POSIX Access Control Lists" 和 "ReiserFS Security Labels".

Linux内核同样支持JFS，同时也包含了不同的特性 "JFS filesystem support"、 "JFS POSIX Access Control Lists"、"JFS Security Labels"、"JFS debugging" 和 "JFS statistics". <http://www.linux.org/threads/journaled-file-system-jfs.4404/>

再说一次,XFS可以通过启用这些驱动/特性支持 - "XFS filesystem support"、"XFS Quota support"、"XFS POSIX ACL support"、"XFS Realtime subvolume support" 和 "XFS Debugging support"。 <http://www.linux.org/threads/xfs-file-system.4364/>

"Global FileSystem 2"可以被内核支持(GFS2 file system support)。这个文件系统用于在集群中共享存储。

"GFS2 DLM locking"驱动提供了GFS2的分布式锁管理(DLM)

"Oracle Cluster FileSystem 2"被内核支持(OCFS2 file system support)。这个文件系统用于在集群中共享存储。

"O2CB Kernelspace Clustering"提供了OCFS2文件系统的不同服务。

"OCFS2 Userspace Clustering"允许集群栈在用户空间执行。

"OCFS2 statistics"驱动允许用户得到关于文件系统的统计信息。

像大多树Linux内核一样，OCFS2提供日志(OCFS2 logging support)。这可能被用来监视错误或者调试目的。

"OCFS2 expensive checks"驱动以性能为代价提供了存储一致性检测。一些Linux用户建议只有在调试目的在才启用它。

Linux内核同样包含了新的B树文件系统；这个驱动提供了磁盘格式化程序(Btrfs filesystem Unstable disk format)。BTRFS仍在开发中并被计划某天变的比EXT4更流行。<http://www.linux.org/threads/b-tree-file-system-btrfs.4430/>

"Btrfs POSIX Access Control Lists"提供了额外的原生BTRFS没有提供的权限模型。

下面，是一个BTRFS检测工具(Btrfs with integrity check tool compiled in (DANGEROUS))。由于BTRFS是一个最新在开发中的文件系统，大多数相关软件还并不稳定。

Linux系统也支持NIL-FileSystem(NILFS2 file system support)。<http://www.linux.org/threads/new-implementation-of-a-log-structured-file-system-nilfs.4547/>。

为了支持一些文件系统使用到的flock()系统调用，启用这个驱动(Enable POSIX file locking API)。禁用这个去的那个会减少11KB的内核大小。这个驱动提供了文件锁定。文件锁定是一个允许进程在某刻读取文件的过程。这通常用于网络文件系统，就像NFS。

"Dnotify support"驱动是一个古老的文件系统通知系统，它提醒文件系统上的事件的用户空间。它和它的继承者被用于监控应用的文件系统。某个应用告诉守护进程需要监视哪些事件。不然，每个用户空间应用需要它们自己完成这个任务。

记住，Dnotify是一个古老的系统，那么什么是新的通知系统？它就是由这个驱动提供的Inotify (Inotify support for userspace)。

一个可选的通知系统是fanotify (Filesystem wide access notification)。Fanotify与Inotify一样，但是fanotify比Inotify传递更多的信息到用户空间中。

用这个驱动Fanotify可以检测权限(fanotify permissions checking)。

对于用户想要划分存储空间的系统需要 "Quota support"。 <http://www.linux.org/threads/atomic-disk-quotas.4277/>

接下来的驱动允许通过netlink报告磁盘配额警告和信息(Report quota messages through netlink interface)。netlink是一个用于与内核通信的用户空间的套接字接口。

配额信息同样可以发送到控制台(Print quota warnings to console (OBSOLETE))。

这个驱动允许配额系统执行额外的完整性检查(Additional quota sanity checks)。在计算机技术中，完整性检查是检测由于不良编程导致的错误。文件和输出都被检查来确保数据正确而不是以奇怪的方式构造。

一些旧的系统使用老的配额系统但希望在升级新内核时保留旧的配额系统。可以通过启用这个来容易解决(Old quota format support)。许多读者可能想要知道为什么一些人想要保留旧的配额系统而不是更新新的。好的，想想一下你是一家很大公司的IT部门的经理，公司有许多服务器运行着非常重要的任务。当你可以继续使用现在工作的很好的系统，你想要创建并配置一个新的(也可能很大)的文件系统么？ 通常上，对于计算机，坚持下面的原则 - 如果它没有坏或者不会导致安全问题，不要去修复它。

用这个驱动，新的配额系统支持32位UID和GID(Quota format vfsv0 and vfsv1 support)。

为了自动挂载远程存储单元，启用这个驱动(Kernel automounter version 4 support)。

这个驱动支持FUSE文件系统(FUSE (Filesystem in Userspace) support)。用户空间文件系统(FUSE)支持任何用户创建他们自己的文件系统并在用户空间内使用。

一个特殊的FUSE扩展可以用于在用户空间使用字符设备Character device in Userspace support)。

下一篇文章中，我们会继续讨论缓存，光盘文件系统，Linux上的FAT32和其他有趣的文件系统话题。谢谢！

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-19.4929/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


戴文的Linux内核专题：24 配置内核 (20)

Summary: 欢迎进入Linux内核系列文章的下一篇!本篇我们继续配置文件系统。 首先，我们启用"General filesystem local caching manager"，它允许内核存储文件系统缓存。这可以增加在存储空间开销上的性能。 为了调试目的，缓存系统可以通过统计信息监控(Gather statistical information on local caching)。通常上，这个特性应该只在你计划调试的时候启用。  下面的特性很像上面的，但是这个特性存储延迟信息(Gather latency information on local caching)。再说一次，这是个调试特性。 "Debug FS-Cache"提供了很多其他的缓存系统的调试功能。 下面

![](/data/attachment/album/201405/27/221424bfjjg3uzlxbg9uqb.jpg)

欢迎进入Linux内核系列文章的下一篇!本篇我们继续配置文件系统。

首先，我们启用"General filesystem local caching manager"，它允许内核存储文件系统缓存。这可以增加在存储空间开销上的性能。

为了调试目的，缓存系统可以通过统计信息监控(Gather statistical information on local caching)。通常上，这个特性应该只在你计划调试的时候启用。

![](/attachments/kernel_20-png.664/)

下面的特性很像上面的，但是这个特性存储延迟信息(Gather latency information on local caching)。再说一次，这是个调试特性。

"Debug FS-Cache"提供了很多其他的缓存系统的调试功能。

下面的缓存调试工具会保存文件系统缓存对象的全局列表(任何进程可以访问这个列表)(Maintain global object list for debugging purposes)。

为了增强网络文件系统的速度，启用接下来的驱动(Filesystem caching on files)。这个特性允许整个本地文件系统被用于远程文件系统和存储单元的缓存。Linux内核会管理这个分区。

有两种不同的用于调试的驱动可用于本地缓存系统和远程文件系统，它们是(Debug CacheFiles)和(Gather latency information on CacheFiles)。

大多数通常的光盘文件系统是ISO 9660标准的ISO-9660，故名(ISO 9660 CDROM file system support)。这个驱动用于读/写主流的光盘。

当读取光盘中的长Unicode文件名或者这类文件时，需要这个驱动(Microsoft Joliet CDROM extensions)。这是ISO-9660文件系统的扩展。

"Transparent decompression extension"允许数据以压缩形式写入并以透明方式解压读出。这允许光盘上存放更多的数据。

"UDF file system support"允许内核读/写UDF文件系统的可重写光盘。UDF被设计用来管理增量写入。UDF允许光盘思想闪存盘那样使用。系统可以比常规ISO-9660文件系统写入的光盘更快地写入以及更新。然而，这并不比使用闪存快。

如你所知，Windows是一个很流行的系统。有很多存储器使用FAT文件系统。万幸的是，Linux支持这样的文件系统。这会明显地增加内核的大小，但是既然FAT文件系统是如此的通用，那么这点开销也是值得的。

为了支持FAT文件系统，启用这个驱动(VFAT (Windows-95) fs support)。在写本篇的时候。驱动还不支持FAT64(通常成为exFAT)。

![](/attachments/kernel_20_2-png.665/)

代码页的大小可以在这里设置(Default codepage for FAT)。

在此之后，可以设置FAT文件系统的默认字符集(Default iocharset for FAT)。

NTFS文件系统在这个驱动提供支持(Default iocharset for FAT)。驱动提供了只读特性。为了写入NTFS，启用这个驱动(NTFS write support)。

Linux内核提供了NTFS文件系统的调试工具(NTFS debugging support)。

要在root根目录下有个proc目录，必须启用这个特性(/proc file system support)。一些其他相似的驱动依赖于这个，包括(/proc/kcore support)、(/proc/vmcore support)和 (Sysctl support (/proc/sys))。proc系统("process"的缩写)使用的proc文件系统有时称作procfds。这个文件系统在硬件的内存中，并在启用时创建。因此，当你在浏览proc中的文件时，用户仿佛像在其他存储单元上那样浏览内存。proc扮演一个用户空间和内核空间之间接口的角色。proc是在内核空间。

"Enable /proc page monitoring"提供了一些文件监视进程的内存利用。

"sysfs file system support"创建/sys文件加。sys文件系统在内存中并提供了内核对象的接口。

tmp目录被许多应用需要，包括Linux自己，因此强烈建议启用这个驱动(Tmpfs virtual memory file system support (former shm fs))。tmp文件系统可能存储在硬盘或者内存中，并只被用于存储临时文件。

Tmpfs POSIX Access Control Lists"驱动tmpfs虚拟文件系统额外的文件权限特性。

"Tmpfs extended attributes"提供了通常的tmpfs更多的属性。

"HugeTLB file system support"驱动提供了基于ramfs的hugetlbfs文件系统。这个虚拟文件系统包含了HugeTLB页。

configfs文件系统是一个以文件系统形式存在的内核对象管理器(Userspace-driven configuration filesystem)。强烈建议启用这个驱动。ConfigFS很像sysfs。然而，ConfigFS被用于创建和删除内核对象，而sysfs被用于浏览和修改内核对象。

下面，我们可以回到"真正"的文件系统了。那就是用户用来存放他们个人文件的文件系统。下面，内核能够读取ADFS文件系统(ADFS file system support)。

AFDFS文件系统写入被一个独立且不稳定的驱动提供 (ADFS write support (DANGEROUS))。ADFS代表Advanced Disc Filing System(高级光盘归档系统)。

Linux同样支持Amiga快速文件系统(Amiga FFS file system support)。 <http://www.linux.org/threads/amiga-fast-file-system-affs.4429/>

"eCrypt filesystem layer support"提供了POSIX兼容的加密文件系统层。这个eCrypt可以 用于任何文件系统无论驻留的文件系统分区表是什么。<http://www.linux.org/threads/intro-to-encryption.4376/>

eCrypt层可以有一个设备文件如果启用了这个驱动(Enable notifications for userspace key wrap/unwrap)。设备路径是/dev/ecryptfs。

Linux同样支持HFS和HFS+(Apple Macintosh file system support)和(Apple Extended HFS file system support)。<http://www.linux.org/threads/hierarchical-file-system-hfs.4480/> 与 <http://www.linux.org/threads/hierarchical-file-system-plus-hfs.4493/>

BeFS可以在Linux上作为只读文件系统使用(BeOS file system (BeFS) support (read only))。通常上，编写读取特性比编写写入能力简单。

特殊的BeFS调试特性(Debug BeFS)。

EFS是另外一个Linux只读不写的文件系统。 (EFS file system support (read only)). [http://www.linux.org/threads/extent-file-system-efs.4447/](http://www.linux.org/threads/hierarchical-file-system-plus-hfs.4493/)

一些闪存可能使用JFFS2文件系统(Journalling Flash File System v2 (JFFS2) support)。下面，可以设置调试层 (JFFS2 debugging verbosity)。 [http://www.linux.org/threads/journaling-flash-file-system-version-2-jffs2.4495/](http://www.linux.org/threads/extent-file-system-efs.4447/)

为了在NAND和NOR闪存上使用JFFS2，需要这个驱动(JFFS2 write-buffering support)。

下面的驱动提供了更好的错误保护(Verify JFFS2 write-buffer reads)。

启用"JFFS2 summary support"可以更快挂载JFFS文件系统。这个驱动存储文件系统的信息。

像其他的文件系统的扩展/额外属性驱动一样，JFFS2也有这种驱动(JFFS2 XATTR support)。

JFFS2文件系统支持不同的透明压缩系统。这允许JFFS2系统上的文件更小，并且在读取时不需要用户任何特殊的操作。 (Advanced compression options for JFFS2)、 (JFFS2 ZLIB compression support)、(JFFS2 LZO compression support)、(JFFS2 RTIME compression support) 和 (JFFS2 RUBIN compression support)。默认的压缩格式定义在下面的选项中(JFFS2 default compression mode)。

JFFS2的继任者也被Linux内核支持(UBIFS file system support)。无排序块图像文件系统(Unsorted Block Image File System (UBIFS)) 同样与LogFS竞争。

Linux内核同样支持LogFS(LogFS file system)。

基于ROM的嵌入式系统需要CramFS的支持(Compressed ROM file system support (cramfs))。

此外，嵌入式系统可以使用SquashFS，这是一种只读压缩文件系统(SquashFS 4.0 - Squashed file system support)。Linux内核也支持SquashFS的扩展属性(Squashfs XATTR support)。

SquashFS支持三种不同的压缩格式 (Include support for ZLIB compressed file systems)、(Include support for LZO compressed file systems) 和 (Include support for XZ compressed file systems)。SquashFS的块大小可以设置为4KB (Use 4K device block size?)。同样，可以设置缓存大小(Additional option for memory-constrained systems)。

Linux内核支持 FreeVxFS (FreeVxFS file system support (VERITAS VxFS(TM) compatible))、 Minix (Minix file system support)、 MPEG filesystem (SonicBlue Optimized MPEG File System support)、 HPFS (OS/2 HPFS file system support)、 QNX4 (QNX4 file system support (read only))、 QNX6 (QNX6 file system support (read only)) 和 ROM 文件系统 (ROM file system support)。 <http://www.linux.org/threads/qnx-file-systems.4577/> and <http://www.linux.org/threads/minix-mini-unix-file-system.4545/>

"RomFS backing stores (Block device-backed ROM file system support)"提供了ROMfs不同额外的属性和能力的列表。

"Persistent store support"驱动提供对pstore文件系统的支持，这允许访问平台级的持久性存储。

pstore文件系统可以存储内核日志/消息(Log kernel console messages)。

当内核崩溃时(相当于Windows中的蓝屏死机)，"Log panic/oops to a RAM buffer"会在RAM中存储日志。

下面一个驱动提供对Xenix、 Coherent、Version 7 和 System V 文件系统的支持(System V/Xenix/V7/Coherent file system support)。

Linux内核同样支持UFS(UFS file system support (read only))、 (UFS file system write support (DANGEROUS)) 和 (UFS debugging)。

内核也支持exofs(exofs: OSD based file system support)。

flash友好型文件系统(Flash-Friendly FileSystem)是一种对于闪存设备的特殊文件系统(F2FS filesystem support (EXPERIMENTAL))、 (F2FS Status Information )、 (F2FS extended attributes) 和 (F2FS Access Control Lists). <http://www.linux.org/threads/flash-friendly-file-system-f2fs.4477/>

下篇文章我们将配置网络文件系统。谢谢！

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-20.4957/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Linux Shell脚本的10个有用的“面试问题和解答”

Summary: 首先致上每日问候。Linux的浩瀚无垠，使人总能每次都提交与众不同的内容。我们The-Tecmint-Team的工作是给我们的读者提供一些独特的内容，这些内容不仅对他们的职业生涯很有用，同时也让他们增长知识。在此，我们就尝试这么去做，至于能取得多大的成功，就由我们的读者朋友们来判断吧。  我们为各类用户提供了关于Shell脚本语言和面试问题的很多教程，可以访问以下链接去阅读这些文章。  Shell脚本系列 面试问题与解答系列  在此，作为shell脚本的附加内容，在本文中我们将从面试的角度解读与Linux Shell相关的问题。 1. 在shell脚本成功

@我的印象笔记

打个基础

mark

mark

@我的印象笔记

@我的印象笔记

收

mark

cut -d;-f2 -f5 -f7 txt_tecmint<br />
这个换成cut -d; -f 2,5,7 txt_tecmint 不是更好吗

自然可以

有用

首先致上每日问候。Linux的浩瀚无垠，使人总能每次都提交与众不同的内容。我们“**The-Tecmint-Team**”的工作是给我们的读者提供一些独特的内容，这些内容不仅对他们的职业生涯很有用，同时也让他们增长知识。在此，我们就尝试这么去做，至于能取得多大的成功，就由我们的读者朋友们来判断吧。

![Questions on Shell Scripting](/data/attachment/album/201405/27/232841tei4p8m10ywpewb3.png)

我们为各类用户提供了关于**Shell脚本**语言和**面试问题**的很多教程，可以访问以下链接去阅读这些文章。

* [Shell脚本系列](http://www.tecmint.com/category/bash-shell/)
* [面试问题与解答系列](http://www.tecmint.com/category/interview-questions/)

在此，作为shell脚本的附加内容，在本文中我们将从面试的角度解读与Linux Shell相关的问题。

#### 1. 在shell脚本成功执行前，如何中断脚本执行？

>
> **解答**：我们需要使用‘exit’命令来实现以上描述的情境。‘exit’命令被强制输出非0值时，脚本会报错并退出。在Unix环境下的shell脚本中，0值表示成功执行。因此，在脚本终止前执行一个不带引号的‘exit -1’命令将使脚本中止。
>
>
>

例如，创建以下一个名为“**anything.sh**”的脚本。

```
#!/bin/bash
echo "Hello"
exit -1
echo "bye"

```

保存文件并执行。

```
# sh anything.sh

Hello
exit.sh: 3: exit: Illegal number: -1

```

从上面的脚本中可以清楚地看到，在exit -1命令前，脚本执行得很好。

#### 2. 如何使用Linux命令来移除文件头？

>
> **解答**：当我们需要删除文件中的指定行时，‘sed’命令可以用来解决该问题。
>
>
>

这个是用来删除文件头（文件的首行）的正确命令。

```
# sed '1 d' file.txt

```

上面命令的问题是，它会在标准输出设备上输出不带首行的文件内容。为了保存输出到文件，我们需要使用重定向操作符，它将帮助你将输出重定向到文件。

```
# sed '1 d' file.txt > new_file.txt

```

好吧，其实**sed**命令内建的‘**-i**’开关就可以干这活，就不需要重定向符了吧。

```
# sed -i '1 d' file.txt

```

#### 3. 你怎么检查一个文本文件中某一行的长度？

>
> **解答**：‘sed’命令也可以用来查找文本文件中的某一行或者检查其长度。
>
>
>

‘**sed -n ‘n p’ file.txt**’可以解决，这里‘**n**’表示行号，‘**p**’打印出匹配内容（到标准输出），该命令通常与**-n**命令行选项连用。那么，怎样来获取长度计数呢？很明显，我们需要通过管道输出给‘**wc**’命令来计算。

```
# sed –n 'n p' file.txt | wc –c

```

要得到文本文件‘**tecmint.txt**’的第五行的长度，运行如下命令：

```
# sed -n '5 p' tecmint.txt | wc -c

```

#### 4. 可以在Linux系统上查看到所有非打印字符吗？你是怎么做到的？

>
> **解答**：可以。可以在Linux中查看所有的非打印字符。要实现上面所讲的方案，我们需要‘vi’编辑器的帮助。 怎样在‘**vi**’编辑器中显示非打印字符？
>
>
>

* 打开vi编辑器。
* 先按[esc]键，然后按‘：’进入到vi编辑器的命令模式。
* 最后，从‘vi’编辑器的命令界面输入set list命令并执行。

**注**: 这种方式可以查看文本文件中的所有非打印字符，包括**ctrl+m（^M）**。

#### 5. 假如你是一个员工组的团队领导，为xyz公司工作。公司要求你创建一个‘dir\_xyz’目录，让该组成员都能在该目录下创建或访问文件，但是除了文件创建者之外的其他人不能删除文件，你会怎么做？

>
> **解答**：这真是个有趣的工作方案。好吧，上面所讲的方案，我们需要通过下面的步骤来实施，这简直就是小菜一碟。
>
>
>

```
# mkdir dir_xyz
# chmod g+wx dir_xyz
# chmod +t dir_xyz

```

第一行命令创建了一个目录（**dir\_xyz**），上面的第二行命令让组（g）具有‘写’和‘执行’的权限，而上面的最后一行命令——权限位最后的‘+t’是‘粘滞位’，它用来替换‘x’，表明在这个目录中，文件只能被它们的拥有者、目录的拥有者或者是超级用户root删除。

#### 6. 你能告诉我一个Linux进程经历的各个阶段吗？

>
> **解答**：一个Linux进程在它的一生中，通常经历了四个主要阶段。
>
>
>

这里是Linux进程要经历的四个阶段。

* 等待：Linux进程等待资源。
* 运行：Linux进程当前正在执行中。
* 停止：Linux进程在成功执行后或收到杀死进程信号后停止。
* 僵尸：如果该进程已经结束，但仍然留在进程表中，被称为‘僵尸’。

#### 7. Linux中cut命令怎么用？

>
> **解答**：‘cut’是一个很有用的Linux命令，当我们要截取文件的指定部分并打印到标准输出，当文本区域以及文件本身很大时，这个命令很有用。
>
>
>

例如，截取‘**txt\_tecmint**’文件的前10列。

```
# cut -c1-10 txt_tecmint

```

要截取该文件中的第二，第五和第七列。

```
# cut -d;-f2 -f5 -f7 txt_tecmint

```

#### 8. ‘cmp’和‘diff’命令的区别是什么？

>
> **解答**：‘cmp’和‘diff’命令用来获取相同的东西，但各有侧重。
>
>
>

‘**diff**’命令输出为了使两个文件一样而应该做的修改。而‘**cmp**’命令则将两个文件逐字节对比，并报告第一个不匹配的项。

#### 9. 可以用‘echo’命令来替换‘ls’命令吗？

>
> **解答**：可以的。‘ls’命令可以用‘echo’命令来替代。‘ls’命令列出目录内容，从替换上述命令的角度讲，我们可以使用‘echo \*’，两个命令的输出完全一样。
>
>
>

#### 10. 你可能听过inode吧。你能简要描述一下inode吗？

>
> **解答**：‘inode’是一个‘数据结构’，在Linux上用于文件标识。每个文件在Unix系统上有一个独立的‘inode’和一个‘唯一的’inode号。
>
>
>

到此为止吧。在下一篇文章中，我们将讨论另外一些有趣味性而又有知识性的面试问题。到那时，别跑开，请上Tecmint.com，别忘了在下面的评论部分给我们提供一些有价值的反馈哦。

---

via: <http://www.tecmint.com/interview-questions-on-shell-scripting/>

译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

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


Ubuntu开发者们提议创建另外风格的‘Unity 8桌面’来帮助开发

Summary: Ubuntu桌面团队已经提出创建一个基于Unity 8的新风格Ubuntu桌面的想法。 开发者Iain Lane概括了团队邮件列表中的提议，说，这样的一个转变所带来的东西会使开发者和爱好者们同样来弄明白制作出一个基于可用的软件的桌面产品需要做的工作。 Lane写道：  桌面团队想要增加一个新的Ubuntu桌面风格（目前我们并没有计划为此发行任何正式的发行版），其中包含Unity 8桌面以及为触摸项目开发的新应用。 这个想法的初衷是提供一个产品，开发者们能够使用它来弄清制作一个基于可用的软件的桌面产品需要做些什么，以及创造一片试验田来寻求解决所要

![](/data/attachment/album/201405/28/130322l01o8ktok1c85zxx.jpg)

**Ubuntu桌面团队已经提出创建一个基于Unity 8的新风格Ubuntu桌面的想法。**

开发者Iain Lane概括了团队邮件列表中的提议，说，这样的一个转变所带来的东西会使开发者和爱好者们同样‘来弄明白制作出一个基于可用的软件的桌面产品需要做的工作’。

Lane写道：

>
> “桌面团队想要增加一个新的Ubuntu桌面风格（目前我们并没有计划为此发行任何正式的发行版），其中包含Unity 8桌面以及为触摸项目开发的新应用。 这个想法的初衷是提供一个产品，开发者们能够使用它来弄清制作一个基于可用的软件的桌面产品需要做些什么，以及创造一片试验田来寻求解决所要求的集成问题的最佳途径。”
>
>
>

### ‘默认预置于Ubuntu 16.04’

一个试验性的发行版在此刻所带来的好处是显而易见的。

Canonical旨在在PC上重复利用手机和平板版本的Ubuntu的代码，尽管披着更加传统的桌面环境的外衣，但这是他们走向‘convergence（融合）’计划的一部分。

但Unity 8在手机和平板形态上的项目仍然处于活跃开发的状态————二者都有正在来临的硬件发布————在塑造PC面貌的主要进程上相当缓慢也是可以理解的。

尽管有些注意事项，但Ubuntu 14.04 LTS通过一个可与现存版本一同安装的Unity 8桌面会话，提供给开发者们一个测试平板版本快照的机会。

通过创建一个专用的Unity 8桌面镜像，可安装会话中的许多限制能够得到缓解。一个实时会话（live session）不仅能够使测试通过live USB或CD更加容易进行，也能够允许更大范围的试验，以及尽情测试而不用有会影响到常规桌面用户的压力。

这个项目的一个[规划](https://blueprints.launchpad.net/ubuntu/+spec/client-1410-unity8-desktop-iso)表明这个新转变的镜像（.iso）‘应该会在16.04中成为一个默认选项’。

在大多数的人力投入仍然集中于推进移动版本的迭代使其符合标准的情况下，目前基于Compiz的版本（Unity 7，开发者称为‘现维护版本’）在可预见的未来中仍然可能被作为默认选项。

在桌面上过渡到Unity 8同样也取决于Mir（Canonical自行开发的显示服务器/显示协议）的时限。在[对Mir登场的乐观预测早已让步于现实](http://www.omgubuntu.co.uk/2014/03/mir-default-display-server-ubuntu-2016)的情况下, 更明确的计划基本上仍然处于模糊或未宣布的状态。Mir对传统桌面工作流支持工作仍处在早期阶段，比如解决窗口合并、任务切换以及多显示器设置等。从在常规PC里测试镜像中获得帮助，看起来也是一个不错的想法。

如何最好地解决“click packages”（这是Unity 8/Mir应用使用的定制运行时框架）；是否有足够的资源来支持开发‘另一风格’的桌面；以及这样的一个项目应该使用什么名称都还处在等待讨论的队列中。

---

via: <http://www.omgubuntu.co.uk/2014/05/ubuntu-unity-8-desktop-flavour-discussed>

译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

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


Ubuntu Linux上的最佳照片应用程序

Summary: 在我上次写切换到Linux的理由后，一位读者建议我写一些关于Windows上流行的应用程序的Linux替代品的内容。毕竟，这对于想切换到Linux的那些Windows用户们的最普遍关心的问题。 在本文中，我列出了可用于各种用途的与照片相关的应用程序，努力试图来回应大家普遍关心的问题。这个列表中的应用程序并非是Windows程序的替代品，而只是能用于多种用途的Linux下的图像应用程序的集合。 Linux中的图像编辑应用 当我提到图像编辑时，我是指骨灰级专业风格的照片编辑。换句话讲，我是在讨论Photoshop。而对于Adobe Photoshop的Linux替代品而言，只

扬我国威！扩散周知！

[挖鼻屎] 楼下啥意思 求解

回复@伊洛酥:是啊，不知道楼下是啥意思，穿越定点错误了吧。

有没有两个系统下常见应用程序的对比清单

gimpshop基本上死掉了，gimp2.8有single windows mode，可以代替gimpshop吧。

![](/data/attachment/album/201405/28/132109uilrglq3gvtg6qg5.jpeg)

在我上次写[切换到Linux的理由](http://itsfoss.com/reasons-switch-linux-windows-xp/)后，一位读者建议我写一些关于Windows上流行的应用程序的Linux替代品的内容。毕竟，这是想切换到Linux的Windows用户们最普遍关心的问题。

在本文中，我列出了可用于各种用途的与照片相关的应用程序，努力试图来回应大家普遍关心的问题。这个列表中的应用程序并非是Windows程序的替代品，而只是能用于多种用途的Linux下的图像应用程序的集合。

### Linux中的图像编辑应用

当我提到图像编辑时，我是指骨灰级专业风格的照片编辑。换句话讲，我是在讨论[Photoshop](http://www.photoshop.com/)。而对于Adobe Photoshop的Linux替代品而言，只有一个名字浮现在我脑海里，那就是[GIMP](http://www.gimp.org/)。GIMP是一个跨平台、全功能、专业级别的编辑软件，几乎囊括了Photoshop的全部功能。与Photoshop不同的是，GIMP对于所有平台都免费，如Linux，Windows，OS X等等。

你可以从Ubuntu软件中心来为Ubuntu安装GIMP。

如果你醉心于Photoshop，并且对于调整GIMP的外观和快捷键有一定难度，那我推荐你使用[Gimpshop](http://www.gimpshop.com/)。它是一个基于GIMP，而又有Photoshop风格的应用程序，当然也是免费的。

### Linux中的照片管理应用

这里我是在说处理图像仓库的应用程序。你可以查看图像，从照相机和手机导入图像，进行图像的简单编辑，分享图像等等。在Windows中，我们有Windows照片查看器。而在Linux中，[Shotwell](https://wiki.gnome.org/Apps/Shotwell)是当今最流行的照片管理工具。它也是各种Linux发行版中默认内置的应用程序，当然Ubuntu也是这样内置的。和GIMP不同的是，Shotwell是一个轻量级应用，但也提供了一些最基本的编辑功能。

Shotwell的一个很好的替代品是[gThumb](https://wiki.gnome.org/action/show/Apps/gthumb?action=show&redirect=gthumb)。

### Linux中用于处理原生照相机图像的应用

由于数码单反相机价格的下降，（业余）摄影师的数量也以同比例增长。由于许多数码单反相机使用原生格式存储图像，像Shotwell这样的默认的图像查看器就不能处理这些图像了，也因此像[digiKam](http://www.digikam.org/)这样的应用程序就应运而生了。作为一个开源软件，digiKam可以让你以专业方式处理高端相机图像。你可以使用digiKam来查看、管理、编辑、增强、组织图像，可以给图像贴标识，也可以分享图像。

digiKam的另一个替代品是[GTKRawGallery](http://gtkrawgallery.sourceforge.net/src/en/home.html)，该软件也关注对照相机图像的处理。

### Linux中的绘图应用

如果你正在寻找微软[画图](http://pinta-project.com/)的Linux替代品，那么我选择Paint。你可以用该软件做一些像文本注解、画圆圈这样的编辑，你可以使用铅笔、画笔和喷枪来画图。在Ubuntu中，你可以从Ubuntu软件中心安装该软件。

Pinta的另一个替代品是[Krita](http://krita.org/index.php)，该软件更强大，提供了更多的功能。比画图应用好，但还比不上GIMP。

### Linux中像Instagram一样的应用

最后，让我们来讨论一下图像美化吧。在移动设备上，我们有许多复古的图像效果，但桌面平台中却没有。要在Linux中应用Instagram一样的效果，据我所知只有[XnRetro](http://www.xnview.com/en/xnretro/)，它能巧妙地进行处理。推荐你阅读[如何在Ubuntu中使用XnRetro](http://itsfoss.com/add-instagram-effects-xnretro-ubuntu-linux/)这篇文章来获取更多信息。

以上只是编排列出了Ubuntu以及其它Linux发行版中可用的各类图像应用软件，但这不是一个这类应用程序的完整列表。事实上，还有很多同类软件，我只是列出了个类目中最好的。

你认为呢？你也使用其它一些应用程序来完成特定的工作？能和我们分享你的看法吗？

---

via: <http://itsfoss.com/image-applications-ubuntu-linux/>

译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

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


Ubuntu Touch 和 Android 双系统安装官方指南

Summary: （译注：本文译自Ubuntu官方维基） Ubuntu 双系统安装器是作为技术预览版本发布给开发者的，可以使得开发者同时在一台手机上安装 Ubuntu 系统和 Android 系统。该软件现阶段或最终的目标用户并非普通用户。开发者应该熟悉 Ubuntu 和 Android 系统的分区布局并且在出现问题的时候有能力手动刷回分区。 Ubuntu 双系统安装器是一些工程师花了一点时间内做出的一个内部臭鼬项目(译注：管理层不知的研究项目)。由于项目进展良好，所以决定向开发者社区发布预览版以供大家测试、学习或者完善。 双系统启动不是常规 Ubuntu 发布版本中的一部分。

现在能适配多少机型了[思考]

@请在beep声后留言 你的nexus朋友来试试么

回复@Linux中国:[泪]

Cool!可惜手机不行

[爱你]

通讯录，短信可以共享么？

@校长Ubuntu @Ubuntu中文站 @中国Canonical_Ubuntu @敲代码的Joey_Chan 请指正。[嘻嘻]

new

麻

这个好

先收了~

（译注：本文译自[Ubuntu官方维基](https://wiki.ubuntu.com/Touch/DualBootInstallation)）

Ubuntu 双系统安装器是作为技术预览版本发布给开发者的，可以使得开发者同时在一台手机上安装 Ubuntu 系统和 Android 系统。该软件现阶段或最终的目标用户并非普通用户。开发者应该熟悉 Ubuntu 和 Android 系统的分区布局并且在出现问题的时候有能力手动刷回分区。

Ubuntu 双系统安装器是一些工程师花了一点时间内做出的一个内部臭鼬项目(译注：管理层不知的研究项目)。由于项目进展良好，所以决定向开发者社区发布预览版以供大家测试、学习或者完善。

双系统启动不是常规 Ubuntu 发布版本中的一部分。

![](/data/attachment/album/201405/28/150716ypff65p5ahpcxk5o.jpg)

安装后可实现以下功能
----------

* 一台可以在全功能的 Android 和 Ubuntu 系统之间切换的手机
* Android 系统上：一个 Ubuntu Installer 应用，用来安装 Ubuntu 系统和切换到 Ubuntu 系统
* Android 系统上：一个 SuperUser 超级用户管理器，用来为 Ubuntu 安装器授予权限
* Ubuntu 系统上：一个 Ubuntu Dual Boot 应用，用来启动到 Android 系统
* 尚不支持在 Ubuntu 系统下的更新，但可以通过 Android 下的应用程序来进行系统更新

必要条件
----

安装双系统启动，你需要：

* **一台Nexus 4 手机** (其他 [支持的 Nexus 手机](https://wiki.ubuntu.com/Touch/Devices#Working_with_phablet-flash) 理论上也能安装，但是现在还没有经过测试。)
* 手机安装 **Android 4.4.2 或者更高的系统版本** ，基于原厂固件或者 CyanogenMod 和 AOSP 的固件。
* 手机上需要有 **2.7GB 剩余存储空间** 用来安装Ubuntu。
* 桌面电脑上需要运行 **ADB 工具**
* 手机应该 **解锁 bootloader 并打开 USB 调试选项**。按照安装步骤1到3来实现。如果你的手机已经解锁过 bootloader 并且打开了 USB 调试选项了，这一步可以[跳过>](#Installation)。

### 步骤 1 - 桌面电脑设置

为了连接手机并刷机，在电脑桌面上依照以下几步操作。

**设置Touch开发者预览工具（Touch Developer Preview Tools）的 PPA**

这些 PPA 是一个迷你库，其中包含安装过程中需要的一些额外软件。以下描述如何去启用和使用它。

这些 PPA 的包含工具和依赖库支持各个 Ubuntu 发行版，包括 12.04, 12.10, 13.04, 13.10 和 14.04等。 将以下的源地址列表加入 /etc/apt/sources.list 文件中来添加 Ubuntu Touch PPA。

在你的机器上按 Ctrl+Alt+T 开启终端窗口，运行以下命令。

```
sudo add-apt-repository ppa:phablet-team/tools

```

在 Ubuntu 12.04系统上，还需要运行以下命令：

```
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa

```

然后运行：

```
sudo apt-get update
sudo apt-get install ubuntu-device-flash

```

### 步骤 1.5 - 备份Android(可选)

* 确认开启开发者模式。点击 设置 -> 关于手机 -> 版本号 (点击七次)
* 确认开启 USB 调试模式。点击 设置 -> 开发者选项 -> USB 调试
* 在你的电脑上执行（译注：自然这是在Linux下，如Ubuntu里面执行的）

```
$ adb backup -apk -shared -all

```

这样就将你的操作系统、应用程序和所有的数据备份为 backup.ab 文件了。以后在重新刷回 android 系统（或root、解锁等）的时候可以使用 $ adb restore backup.ab 命令恢复你所有的数据。

### 步骤 2 - 手机解锁

如果手机已经解锁，那么跳过步骤 3。以下几步将擦除手机上所有的个人数据。

1. 关机，同时按住手机的开机键+音量上+音量下开机。
2. 手机将开机到bootloader界面。
3. 使用 USB 数据线将手机和电脑连接。
4. 在电脑上按 Ctrl+Alt+T 打开一个终端。 键入 sudo fastboot oem unlock 并回车。
5. 在手机上，接受解锁条款。
6. 按开手机开机键开机。(屏幕上 Start 的箭头所向)

**恢复手机出厂设置**

如果解锁 bootloader 后不断重启的话... 可以使用以下方法解决：

1. 在重启的过程中，同时按住 电源键+音量上+音量下 使得手机重返 fastboot 模式。
2. 在 fastboot 模式下，使用音量键选择到 Recovery 选项后，按下开机键选中。
3. 在 Recovery 模式下(Android 机器人 背景是个红色三角) 同时按住音量上键和开机键进入stock recovery 模式。再次强调，不要按住按钮不放，只是同时按他们。保证你按了正确的音量按钮。应该是右边的音量按钮的向上键。
4. 一旦进入 Recovery 模式，恢复出厂设置并清空数据，然后重启平板，现在应该可以看到欢迎屏幕了。

### 步骤 3 - 初始化手机指南

按照以下步骤初始化手机

1. 如果没有启动，启动手机进 Android 系统
2. 启用手机的 USB 调试模式
	* 在冰激凌三明治 (版本 4.0) 上打开 USB 调试(设置 > 系统 > 开发者选项 > USB 调试)
	* 在果冻豆 (版本 4.1 和 4.2) 上打开 USB 调试，需要进 设置, 关于 [手机|平板] 菜单且点击版本号7次才能进入开发者选项。
	* 在 4.2.2, (设置 > 关于 > 点击版本号7次激活开发者选项菜单)
	* 在其他版本的 Android 系统中，你通过 设置 > 开发者选项 > USB 调试来启用 USB 调试模式。您也需要接受手机上的主机密钥。
	* 在工作站中 -> adb kill-server; adb start-server
3. 将手机和电脑通过USB数据线连接起来。
	* 根据 Android 版本的不同，会弹出一个主机密匙的框，需要确认才能和电脑通信。
	* 注意，adb devices 命令不应该显示为手机 'offline' 。如果显示手机离线，在超级用户模式下运行adb(sudo adb kill-server; sudo adb start-server)，然后将手机再次连接。
	* 在某些情况下，手机仍然显示为离线，如果USB连接模式为 'MTP' (一些手机或版本的Android的默认模式)的话，就不会弹出主机密匙提示对话框。取消所有的USB连接模式选项的勾选(设置 -> 存储 -> 菜单 -> USB连接 -> MTP, PTP)也许能解决adb连接问题。
4. 记下现有手机镜像版本号，Android 系统，恢复系统时使用。可以使用 设置 > 关于手机 > 版本号码 查看版本号。

最新版的 Nexus 10s 开启开发者模式后并没有完全启动。如果是这种情况的话，启动到 bootloader 后运行 "fastboot -w" 然后进入下一步。

双系统启动安装和更新说明
------------

双系统新安装和升级在这部分过程实际上是相同的。

### 在 Android 系统中安装 Ubuntu 安装器

注意：如果手机中有一个以前版本的 Ubuntu 双启动，更新前请首先使用 Android 应用程序卸载掉 Ubuntu 系统。推荐保存用户数据，只卸载掉基本的系统。

1. 在电脑上下载双系统安装脚本到你的家目录。<http://humpolec.ubuntu.com/latest/dualboot.sh>
2. 使用 Ctrl+Alt+T 组合键打开电脑终端。
3. 运行以下命令赋予安装脚本可执行权限。

```
chmod +x dualboot.sh

```
4. 保证你的手机

	* 正常启动进入 Android 用户界面
	* 启用 USB 调试选项
	* 已经解锁了 bootloader
5. 使用 USB 数据线连接手机和电脑
6. 在终端里运行以下命令安装双系统启动：

```
./dualboot.sh

```

安装完成后，手机会重启数次。完成后，系统会启动到 Android 系统，你可以在手机的应用程序里面找到双启动应用程序 (“Ubuntu Dual Boot”) 。

或者，可以使用安装脚本的另一个替代方法，[可以参考安装手册 >](#DualBootInstallerReference)。

现在按照以下说明在 Android 下安装 Ubuntu。

Android 下安装 Ubuntu
------------------

注意：Ubuntu 安装需要手机上具有2.7GB以上的剩余内存空间。

![](/data/attachment/album/201405/28/150544hlor7rvu7lu35o7e.jpg)

1. 如果需要，也可以在手机和电脑USB连接状态下，终端运行以下命令来释放空间。(接受手机上的授权询问)

```
adb shell "su sh rm -rf /cache/*"

```
2. 在手机上，点击 apps 按钮打开 app 列表
3. 查看列表找到 **Ubuntu Dual Boot** 图标并启动它
4. 应用程序启动后按 **Choose channel to install** 并选择一个频道下载(推荐 **utopic** 频道)，请确保您勾选了“bootstrap”选项
5. 下载完成后需要授权 SU 权限给应用程序。提示授权的时候，选择 **Grant** 按钮
6. 按 **Reboot to Ubuntu** 按钮重启手机进入Ubuntu
7. 标准手机重启过程后会启动到Android系统中

注意：

* Ubuntu 安装器支持所有手机平板刷机工具（phablet-flash）支持的频道
* 选择了一个 Ubuntu 频道后，**bootstrap** 复选框可以让你选择清空 Ubuntu 的用户数据，如果不选中的话，用户数据将一直保留。第一次安装的话，选不选是没什么区别的
* 选中一个 Ubuntu 频道后，取消 **latest version** 复选框后可以选择一个特定版本号的镜像，否则，默认安装最新的镜像。
* 如果在安装过程下载镜像过程中，手机锁屏或者 Ubuntu 安装器在后台运行的话，安装按钮会变成 **Resume install** (恢复安装)。点击这个按钮会恢复到超级权限提示前的状态。

其他需要注意的
-------

### 更新到最新的 Ubuntu 镜像

根据双启动的经验：

* 安装新版本的 Ubuntu 需要使用 Android 上的双启动应用程序
* 下载新版本的 Ubuntu 可以在 Android 或者 Ubuntu 下进行

这实际上意味着可以有两种不同的方式更新 Ubuntu 镜像（译注：此处与前文不一致，究竟是否可在Ubuntu下更新，译者没有做过实验，可能已经支持了。）：

* **如果在android系统下**，使用双启动应用程序更新 Ubuntu ，需要选择菜单选项中的 "Uninstall Ubuntu" ，然后应用程序会询问你是否保留 Ubuntu 用户数据。如果你想保留数据、通讯录、应用程序、图片、背景设置等，这些数据将会完整保留。另外，每次新版本的 Ubuntu 发布后，将会收到 Android 通知：
	+ 对于稳定频道，应用每2天推送一次更新通知
	+ 对于推荐频道，应用每10小时推送一次更新通知
* **如果你使用的是 Ubuntu**, 使用系统设置中的标准更新机制下载新版镜像，但是不要选择安装，下载完毕后，重新启动到 Android 系统中，启动双启动应用程序，程序会恢复更新。完成后，你可以再次切换到 Ubuntu系统中。

要升级 Ubuntu 到最新版本，在 android 下的 Ubuntu 双启动应用程序中，卸载 Ubuntu 后，可以按照同样的安装步骤去下载新版本的 Ubuntu。

### 双系统安装器参考命令

大多数情况下，不带参数运行自动模式安装脚本就足够了。

dualboot.sh

* 自动模式：监测[超级用户](https://wiki.ubuntu.com/SuperUser)应用程序是否需要安装，并更新双系统安装应用程序。

dualboot.sh full

* 完整模式：安装[超级用户](https://wiki.ubuntu.com/SuperUser)和双系统启动 Android 应用程序

dualboot.sh update

* 更新模式：安装或者更新 Android 下的双系统启动应用程序

dualboot.sh channel $CHANNEL

* 边载（Sideload）模式：通过指定的 Ubuntu 频道 ($CHANNEL) 下载最新的镜像到手机。命令启动 android 双系统应用程序并继续使用边载文件进行安装。

dualboot.sh push ubuntu.tar.xz device.tar.xz version.tar.xz

* 边载推送模式：将下载参数推送给双系统启动应用程序，作为参数启动双系统安装器进行安装。

多个手机同时连到电脑上的时候，脚本还提供指定手机ID 的参数。手机ID为脚本的第一个参数。如果不指定手机ID的话，默认为第一个连接的手机。

```
dualboot.sh <device-id> channel devel-customized

```

### 使用自定义镜像服务器

如果你的手机不在官方支持列表中，需要使用第三方移植镜像服务器，你可以将自定义镜像服务器地址作为参数来使用双启动应用程序。这么办的话，打开终端，连接手机到电脑，运行以下命令(替换 $CUSTOM\_SERVER\_URL 为自定义服务器地址)：

```
adb shell "su sh 'cd /data/data/com.canonical.ubuntu.installer/files/ && echo $CUSTOM_SERVER_URL > custom_server &&  chmod 777 custom_server'"

```

下次启动双启动应用程序的时候，默认将使用自定义服务器地址而不是官方地址了。

异常处理
----

如果出现问题，安装双启动后无法进入 Android 和 Ubuntu 系统的话，你可以使用原始启动和恢复镜像恢复手机到最初状态。只有 recovery 分区被双启动修改了，当然你可以刷回原有的启动分区。

1. 下载手机的 Android 固件到你的PC上。
2. 使用快捷键 Ctrl+Alt+T 打开终端
3. 解压固件 tar 包并 cd 到其目录
4. 运行以下命令以重启手机到 bootloader

```
adb reboot bootloader

```
5. 进入 bootloader 后，运行以下命令刷回启动分区：

```
fastboot flash boot boot.img

```
6. 不要退出 bootloader ，运行以下命令刷回 recovery 分区：

```
fastboot flash recovery recovery.img

```
7. 刷机完毕后，重启你的手机应该就可以进入 Android 系统了：

```
fastboot reboot

```

致谢
--

双启动项目和其他 Ubuntu 项目一样都是开源的，你可以参与此项目，使得他更加完美！

* [Bug 报告 >](https://bugs.launchpad.net/humpolec/+filebug)
* [贡献代码 >](https://code.launchpad.net/humpolec)

FAQ
---

### 双启动如何工作？

基于 Android 的手机有一系列不同用途的分区。这些分区包括 **/boot**, **/recovery**, **/system** 和 **/data** 等。

* **boot** 分区是 bootloader 正常启动的时候载入的。这个分区的启动镜像是由一个内核和ramdisk程序组成的。简而言之，bootloader 解压启动镜像，创建一个内存盘后将镜像考入，最后使用 **初始化进程** 启动内核。
* **recovery** 分区包含有恢复镜像，它只是一个不同的启动镜像。它也含有一个内核和内存盘程序，但是初始化可执行程序被换成了内存盘中的二进制的 recovery 程序。
* **system** 分区含有所有的只读系统文件 (除了内存盘中的)供初始化进程载入。
* **data** 分区是供系统写入用户数据的可读写分区。

Ubuntu 以稍微不同的方式使用这些分区

* **boot** 和 **recovery** 分区的作用和 Android 中一样。
* **system 镜像** 含有在 [LXC](http://www.ibm.com/developerworks/cn/linux/l-lxc-containers/) 中执行的 Android 部分的程序。
* **data** 分区下的 **/data/ubuntu/** 目录含有Ubuntu系统

为了保证用户可以返回 Android 原来的系统，Android 系统的启动镜像是不允许修改的，因为原始内核必须保存。**所以使用 recovery 分区去启动Ubuntu**

### 双启动可以运行在那个版本的 Android 系统下？

* 普通 Android 或 AOSP 4.4.2 或更高版本。
* CyanogenMod (基于 Android 4.4.2 或更高版本).

### 双启动可以运行在那些手机上？

双启动通过测试可以运行在以下手机中：

* Nexus 4
* Nexus 7
* Nexus 10

### 双启动支持那些已发布版本的 Ubuntu？

双启动支持的所有手机平板刷机工具（phablet-flash）支持的系统。

### Android 和 Ubuntu 如何共享用户数据分区？

用户数据分区也放在 Ubuntu 系统镜像 /data/system.img, 大约有2GB。

Ubuntu swap 文件在用户数据分区 /data/SWAP.img (大约540MB)。

Ubuntu 的用户和系统数据也可以在以下目录找到：

* /data/user-data
* /data/system-data

Android 数据分区的使用方式不变。

### 安装双启动后是否无法启动进入 recovery？

安装双启动后，recovery 分区被 Ubuntu 启动镜像占用。这意味着启动到 recovery 模式下，就启动了Ubuntu 。

使用 recovery 的功能会在未来发布。不过当卸载掉 Ubuntu 镜像后，Ubuntu Install 应用会恢复原始的 recovery 分区(普通的 Android 或 CWM)。

### 如果用双启动替换掉 recovery 分区的话，是否还可以更新 Android 系统？

可以，使用双启动应用程序中的 "准备更新安卓" 选项。这会将原始 Android recovery 分区恢复，为 Android 系统更新做准备。这显然会删除 recovery 分区中安装的 Ubuntu 系统，但是使用双系统应用程序可以在 Android 系统更新后很容易重新安装。

任何情况下，你都可以卸载双启动并恢复原始的 recovery 分区。

### 我可以卸载双启动吗？

可以，使用 Android 版本双启动应用程序卸载 Ubuntu 后，原有的 recovery 分区数据会恢复到安装前的状态。

卸载 Ubuntu 的同时也会删除 Ubuntu 系统镜像和交换文件。如果需要，Ubuntu 用户数据也可以被删除。

### 双启动应用程序安装了一个超级用户应用，我可以使用一个第三方的超级用户应用代替它吗？

当然可以了！提供的 [超级用户](https://wiki.ubuntu.com/SuperUser) 应用只是为了那些没有安装它的用户的。

然而，需要注意一点：项目测试中只测试使用了来自 [CyanogenMod](https://wiki.ubuntu.com/CyanogenMod) 版本或者 dualboot.sh 脚本安装的超级用户应用。但是只要你使用和测试中用的类似的应用的话，一般也不会有问题的。

### 安装 Ubuntu 中，我是否可以删除用户数据后切换频道？

可以，但是有些东西没有测试过，所以有些应用也许无法正常工作。这个问题也存在于切换版本的情况。

### 我能否设置默认启动 Ubuntu 而将 Android 启动移动到 recovery 分区？

目前为止交换默认启动操作系统是不可行的。但是如果有需求的话我们会想办法支持的。

### 为什么使用 recovery 分区启动 Ubuntu 系统而不是使用一个 Android 和 Ubuntu 结合的镜像来启动？

最开始设计双启动的时候原则就是不和某个特定版本和类型的 Android 系统捆绑，留给用户自己选择的权利。所以就没有改动 Android 启动镜像和内核。

最后我们选择利用 recovery 分区启动 Ubuntu，并在需要的时候就恢复到其原始状态。

### 我已经安装了一个 CWM recovery 而且知道如何使用，我可否使用 zip 文件手动刷机？

绝对可以，我们提供的 dualboot.sh 是为了使得安装应用和 recovery 更容易。如果你想手动安装recovery 也是可以的。参看 dualboot.sh 脚本的源码来操作。

### 为什么 Ubuntu 安装器需要使用 recovery 安装到 system 分区里？

Ubuntu 安装器需要安装为 Android （预置的）系统应用。 和用户安装在用户分区的应用不一样，系统应用始终活动在系统分区中，保证可以获取第三方软件可以获取的的最高的权限。

其实 Ubuntu 安装器需要获取的权限只有两个：**缓存分区写入权限**，用来下载 Ubuntu 安装文件；和**电源管理**，用来重启系统。

---

via: <https://wiki.ubuntu.com/Touch/DualBootInstallation>

译者：[shipsw](https://github.com/shipsw) 校对：[wxy](https://github.com/wxy)

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


Apache Tomcat 7.0.54现已可供下载

Summary: Apache Tomcat 7.0.54，一个在JCP规范之下开发的Java Servlet和JSP技术的开源软件实现，现已可供下载。 自上一个Apache Tomcat版本的发布已经有段时日了， 但这仅仅意味着开发者们有更多的时间来对软件作出修补和更改。这是一个源码软件包，所以普通用户并不一定真的需要它。 通过更新日志得知，定制的UTF-8解码器已经被修复，在AprLifecycleListener的FIPS模式中加入了更多的管理选项，如果一个应用从已销毁的会话中调用session.invalidate()而导致的无限循环已经可被避免，在添加一个Mbean通知监听器时，移除一个Mbean监听器现在将还原

![](/data/attachment/album/201405/28/225858yzhohxnwnt0zk4wx.jpg)

**Apache Tomcat 7.0.54，一个在JCP规范之下开发的Java Servlet和JSP技术的开源软件实现，现已可供下载。**

自上一个Apache Tomcat版本的发布已经有段时日了， 但这仅仅意味着开发者们有更多的时间来对软件作出修补和更改。这是一个源码软件包，所以普通用户并不一定真的需要它。

通过更新日志得知，定制的UTF-8解码器已经被修复，在AprLifecycleListener的FIPS模式中加入了更多的管理选项，如果一个应用从已销毁的会话中调用session.invalidate()而导致的无限循环已经可被避免，在添加一个Mbean通知监听器时，移除一个Mbean监听器现在将还原所有执行的操作，以及关于完成部署和其执行时间的信息已被添加到日志文件之中。

另外，一些理论上可能会发生内存泄漏的位置上已经做了修补，当使用JAASMemoryLoginModule时的用户认证已被修复，在反斜杠处理时的回溯已得到纠正。

在源代码归档的官方更新日志中可以找到一份完整的变更，修复以及新特性的列表。

### 下载 Apache Tomcat 7.0.54 (violetagg):

* [tar.gz (6.0.39 Stable)](http://mirrors.hostingromania.ro/apache.org/tomcat/tomcat-6/v6.0.39/bin/apache-tomcat-6.0.39.tar.gz)[binary] [6.70 MB]
* [tar.gz (6.0.39 Stable)](http://mirrors.hostingromania.ro/apache.org/tomcat/tomcat-6/v6.0.39/src/apache-tomcat-6.0.39-src.tar.gz)[sources] [3.40 MB]
* [tar.gz (7.0.52 Development)](http://www.apache.org/dist/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz)[binary] [8 MB]
* [tar.gz (7.0.52 Development)](http://www.apache.org/dist/tomcat/tomcat-7/v7.0.52/src/apache-tomcat-7.0.52-src.tar.gz)[sources] [4.40 MB]
* [zip (8.0.3 Beta Development)](http://mirrors.hostingromania.ro/apache.org/tomcat/tomcat-8/v8.0.3/bin/apache-tomcat-8.0.3.tar.gz)[binary] [8.10 MB]
* [tar.gz (8.0.3 Beta Development)](http://mirrors.hostingromania.ro/apache.org/tomcat/tomcat-8/v8.0.3/src/apache-tomcat-8.0.3-src.tar.gz)[sources] [4.40 MB]

---

via: <http://news.softpedia.com/news/Apache-Tomcat-7-0-54-Now-Available-for-Download-443862.shtml>

译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)

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