2015年11月

N1 Open Source email client

当我们谈论到Linux中的邮件客户端,通常 Thunderbird、Geary 和 Evolution 就会出现在我们的脑海。作为对这些大咖们的挑战,一款新的开源邮件客户端正在涌入市场。

设计和功能

N1是一个设计与功能并重的新一代开源邮件客户端。作为一个开源软件,N1目前支持 Linux 和 Mac OS X,Windows的版本还在开发中。

N1宣传它自己为“可扩展的开源邮件客户端”,因为它包含了 Javascript 插件框架,任何人都可以为它创建强大的新功能。可扩展是一个非常流行的功能,它帮助开源编辑器Atom变得流行。N1同样把重点放在了可扩展上面。

除了可扩展性,N1同样着重设计了程序的外观。下面N1的截图就是个很好的例子:

N1 Open Source email client on Mac OS X

Mac OS X上的N1客户端。图片来自:N1

除了这个功能,N1兼容上百个邮件服务提供商,包括Gmail、Yahoo、iCloud、Microsoft Exchange等等,这个桌面应用提供了离线功能。

目前只能邀请使用

我不知道为什么每个人都选择了 OnePlus 的‘只能邀请使用’的市场策略。目前,N1桌面端只能被邀请才能下载。你可以用下面的链接请求一个邀请。N1团队会在几天内邮件给你下载链接。

感兴趣了么?

我并不是桌面邮件客户端的粉丝,但是 N1 的确引起了我的兴趣,让我想要试一试。你呢?


via: http://itsfoss.com/n1-open-source-email-client/

作者:Abhishek 译者:geekpi 校对:Caroline

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

Fedora

来自 Redhat 的 Fedora 平台和程序经理 Jan Kurik 宣布了一个功能建议,这是给目前已经进入了开发周期的 Fedora 24 的第一份功能建议。

这些新功能建议之一是,在 Fedora 24 中将 systemd 包分割出两个子包:systemd-udev 和 systemd-container。不出所料,这让 Fedora 的开发宣告邮件列表炸了锅,要知道,这两个 systemd 子包都是可选的。

systemd-container 子包将包含所有用于启动和管理容器和虚拟机的工具,以帮助 Fedora 用户应用这些技术;而 systemd-udev 子包将包含 udev 守护进程(udevd)和各种硬件相关的工具。

这些子包都会包含什么?

看起来 Fedora 开发者们已经讨论过了哪些工具会包含在这些新的子包中。对于 systemd-container.rpm, 它应该包括 systemd-pull、 systemd-nspawn、 machinectl、 systemd-machined 和 systemd-importd。

而 systemd-udev.rpm 将包括硬件数据库、udev 规则,以及 udevadm 和system-udevd 工具。

要实现这些子包,Fedora 开发者需要将这些相关的依赖都加上。

此外,Anaconda 安装器也需要更新来使 systemd-udev 子包成为 Fedora 24 的默认安装包。无论如何,让我们拭目以待 Fedora 即将到来的更新。

在 Linux 世界里,对 systemd 的采用一直是激烈争论的主题,它的支持者和反对者之间的战火仍然在燃烧。到了今天,大部分主流 Linux 发行版都已经采用了 systemd 作为默认的 初始化 init 系统。

正如其作者所说,作为一个 “从未完成、从未完善、但一直追随技术进步” 的系统,systemd 已经不只是一个初始化进程,它被设计为一个更广泛的系统以及服务管理平台,这个平台是一个包含了不断增长的核心系统进程、库和工具的生态系统。

systemd 的其中一部分是 systemd-networkd,它负责 systemd 生态中的网络配置。使用 systemd-networkd,你可以为网络设备配置基础的 DHCP/静态 IP 网络。它还可以配置虚拟网络功能,例如网桥、隧道和 VLAN。systemd-networkd 目前还不能直接支持无线网络,但你可以使用 wpa\_supplicant 服务配置无线适配器,然后把它和 systemd-networkd 联系起来。

在很多 Linux 发行版中,NetworkManager 仍然作为默认的网络配置管理器。和 NetworkManager 相比,systemd-networkd 仍处于积极的开发状态,还缺少一些功能。例如,它还不能像 NetworkManager 那样能让你的计算机在任何时候通过多种接口保持连接。它还没有为更高层面的脚本编程提供 ifup/ifdown 钩子函数。但是,systemd-networkd 和其它 systemd 组件(例如用于域名解析的 resolved、NTP 的timesyncd,用于命名的 udevd)结合的非常好。随着时间增长,systemd-networkd只会在 systemd 环境中扮演越来越重要的角色。

如果你对 systemd-networkd 的进步感到高兴,从 NetworkManager 切换到 systemd-networkd 是值得你考虑的一件事。如果你强烈反对 systemd,对 NetworkManager 或基础网络服务感到很满意,那也很好。

但对于那些想尝试 systemd-networkd 的人,可以继续看下去,在这篇指南中学会在 Linux 中怎么从 NetworkManager 切换到 systemd-networkd。

需求

systemd 210 及其更高版本提供了 systemd-networkd。因此诸如 Debian 8 "Jessie" (systemd 215)、 Fedora 21 (systemd 217)、 Ubuntu 15.04 (systemd 219) 或更高版本的 Linux 发行版和 systemd-networkd 兼容。

对于其它发行版,在开始下一步之前先检查一下你的 systemd 版本。

$ systemctl --version

从 NetworkManager 切换到 Systemd-networkd

从 NetworkManager 切换到 systemd-networkd 其实非常简答(反过来也一样)。

首先,按照下面这样先停用 NetworkManager 服务,然后启用 systemd-networkd。

$ sudo systemctl disable NetworkManager
$ sudo systemctl enable systemd-networkd

你还要启用 systemd-resolved 服务,systemd-networkd用它来进行域名解析。该服务还实现了一个缓存式 DNS 服务器。

$ sudo systemctl enable systemd-resolved
$ sudo systemctl start systemd-resolved

当启动后,systemd-resolved 就会在 /run/systemd 目录下某个地方创建它自己的 resolv.conf。但是,把 DNS 解析信息存放在 /etc/resolv.conf 是更普遍的做法,很多应用程序也会依赖于 /etc/resolv.conf。因此为了兼容性,按照下面的方式创建一个到 /etc/resolv.conf 的符号链接。

$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

用 systemd-networkd 配置网络连接

要用 systemd-networkd 配置网络服务,你必须指定带.network 扩展名的配置信息文本文件。这些网络配置文件保存到 /etc/systemd/network 并从这里加载。当有多个文件时,systemd-networkd 会按照字母顺序一个个加载并处理。

首先创建 /etc/systemd/network 目录。

$ sudo mkdir /etc/systemd/network

DHCP 网络

首先来配置 DHCP 网络。对于此,先要创建下面的配置文件。文件名可以任意,但记住文件是按照字母顺序处理的。

$ sudo vi /etc/systemd/network/20-dhcp.network

[Match]
Name=enp3*

[Network]
DHCP=yes

正如你上面看到的,每个网络配置文件包括了一个或多个 “sections”,每个 “section”都用 [XXX] 开头。每个 section 包括了一个或多个键值对。[Match] 部分决定这个配置文件配置哪个(些)网络设备。例如,这个文件匹配所有名称以 ens3 开头的网络设备(例如 enp3s0、 enp3s1、 enp3s2 等等)对于匹配的接口,然后启用 [Network] 部分指定的 DHCP 网络配置。

静态 IP 网络

如果你想给网络设备分配一个静态 IP 地址,那就新建下面的配置文件。

$ sudo vi /etc/systemd/network/10-static-enp3s0.network

[Match]
Name=enp3s0

[Network]
Address=192.168.10.50/24
Gateway=192.168.10.1
DNS=8.8.8.8

正如你猜测的, enp3s0 接口地址会被指定为 192.168.10.50/24,默认网关是 192.168.10.1, DNS 服务器是 8.8.8.8。这里微妙的一点是,接口名 enp3s0 事实上也匹配了之前 DHCP 配置中定义的模式规则。但是,根据词汇顺序,文件 "10-static-enp3s0.network" 在 "20-dhcp.network" 之前被处理,对于 enp3s0 接口静态配置比 DHCP 配置有更高的优先级。

一旦你完成了创建配置文件,重启 systemd-networkd 服务或者重启机器。

$ sudo systemctl restart systemd-networkd

运行以下命令检查服务状态:

$ systemctl status systemd-networkd
$ systemctl status systemd-resolved

用 systemd-networkd 配置虚拟网络设备

systemd-networkd 同样允许你配置虚拟网络设备,例如网桥、VLAN、隧道、VXLAN、绑定等。你必须在用 .netdev 作为扩展名的文件中配置这些虚拟设备。

这里我展示了如何配置一个桥接接口。

Linux 网桥

如果你想创建一个 Linux 网桥(br0) 并把物理接口(eth1) 添加到网桥,你可以新建下面的配置。

$ sudo vi /etc/systemd/network/bridge-br0.netdev

[NetDev]
Name=br0
Kind=bridge

然后按照下面这样用 .network 文件配置网桥接口 br0 和从接口 eth1。

$ sudo vi /etc/systemd/network/bridge-br0-slave.network

[Match]
Name=eth1

[Network]
Bridge=br0

$ sudo vi /etc/systemd/network/bridge-br0.network

[Match]
Name=br0

[Network]
Address=192.168.10.100/24
Gateway=192.168.10.1
DNS=8.8.8.8

最后,重启 systemd-networkd。

$ sudo systemctl restart systemd-networkd

你可以用 brctl 工具 来验证是否创建好了网桥 br0。

总结

当 systemd 誓言成为 Linux 的系统管理器时,有类似 systemd-networkd 的东西来管理网络配置也就不足为奇。但是在现阶段,systemd-networkd 看起来更适合于网络配置相对稳定的服务器环境。对于桌面/笔记本环境,它们有多种临时有线/无线接口,NetworkManager 仍然是比较好的选择。

对于想进一步了解 systemd-networkd 的人,可以参考官方man 手册了解完整的支持列表和关键点。


via: http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html

作者:Dan Nanni 译者:ictlyh 校对:wxy

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

任务管理可以说是工作及日常生活中最重要也最具挑战性的事情之一。当您在工作中承担越来越多的责任时,您的表现将与您管理任务的能力直接挂钩。

若您的工作有部分需要在电脑上完成,那么您一定很乐意知道,有多款应用软件自称可以为您减轻任务管理的负担。即便这些软件中的大多数都是为 Windows 用户服务的,在 Linux 系统中仍然有不少选择。在本文中,我们就来讨论这样一款软件:Go For It.

Go For It

Go For It (GFI) 由 Manuel Kehl 开发,他声称:“这是款简单易用且时尚优雅的生产力软件,以 待办清单 To-Do List 为主打特色,并整合了一个能让你专注于当前事务的定时器。”这款软件的定时器功能尤其有趣,它还可以让您在继续工作之前暂停下来,放松一段时间。

下载并安装

使用基于 Debian 系统(如Ubuntu)的用户可以通过运行以下终端命令轻松地安装这款软件:

sudo add-apt-repository ppa:mank319/go-for-it
sudo apt-get update
sudo apt-get install go-for-it

以上命令执行完毕后,您就可以使用这条命令运行这款应用软件了:

go-for-it

使用及配置

当你第一次运行 GFI 时,它的界面是长这样的:

gfi-first-run

可以看到,界面由三个标签页组成,分别是 待办 To-Do 定时器 Timer 完成 Done 待办页是一个任务列表(上图所示的4个任务是默认生成的——您可以点击头部的方框删除它们),定时器页内含有任务定时器,而完成页则是已完成任务的列表。底部有个文本框,您可以在此输入任务描述,并点击“+”号将任务添加到上面的列表中。

举个例子,我将一个名为“MTE-research-work”的任务添加到了列表中,并点击选中了它,如下图所示:

gfi-task-added

然后我进入定时器页,在这里我可以看到一个为当前“MTE-reaserch-work”任务设定的定时器,定时25分钟。

gfi-active-task-timer

当然,您可以将定时器设定为你喜欢的任何值。然而我并没有修改,而是直接点击下方的“ 开始 Start ”按钮启动定时器。一旦剩余时间为60秒,GFI 就会给出一个提示。

gfi-first-notification-new

一旦时间到,它会提醒我休息5分钟。

gfi-time-up-notification-new

5分钟过后,我可以为我的任务再次开启定时器。

gfi-break-time-up-new

任务完成以后,您可以点击定时器页中的“ 完成 Done ”按钮,然后这个任务就会从待办页被转移到完成页。

gfi-task-done

GFI 也能让您稍微调整一些它的设置。例如,下图所示的设置窗口就包含了一些选项,让您修改默认的任务时长,休息时长和提示时刻。

gfi-settings

值得一提的是,GFI 是以 TODO.txt 格式保存待办清单的,这种格式方便了移动设备之间的同步,也让您能使用其他前端程序来编辑任务——更多详情请阅读这里

您还可以通过视频观看 GFI 的动态展示。

结论

正如您所看到的,GFI 是一款简洁明了且易于使用的任务管理软件。虽然它没有提供非常丰富的功能,但它实现了它的承诺,定时器的整合特别有用。如果您正在寻找一款实现了基础功能,并且开源的 Linux 任务管理软件,Go For It 值得您一试。


via: https://www.maketecheasier.com/to-do-lists-ubuntu-go-for-it/

作者:Himanshu Arora 译者:Ricky-Gong 校对:Caroline

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

当你双击一个脚本(.sh文件)的时候,你想要做的是什么?通常的想法是执行它。但是在Ubuntu下面却不是这样,或者我应该更确切地说是在Files(Nautilus)中。你可能会疯狂地大叫“运行文件,运行文件”,但是文件没有运行而是用Gedit打开了。

我知道你也许会说文件有可执行权限么?我会说是的。脚本有可执行权限但是当我双击它的时候,它还是用文本编辑器打开了。我不希望这样,如果你遇到了同样的问题,我想你也许也想要这样。

我知道你或许已经被建议在终端下面执行,我知道这个可行,但是这不是一个在GUI下不能运行的借口是么?

这篇教程中,我们会看到如何在双击后运行shell脚本。

修复在Ubuntu中shell脚本用文本编辑器打开的方式

shell脚本用文件编辑器打开的原因是Files(Ubuntu中的文件管理器)中的默认行为设置。在更早的版本中,它或许会询问你是否运行文件或者用编辑器打开。默认的行为在新的版本中被修改了。

要修复这个,进入文件管理器,并在菜单中点击选项

接下来在 文件选项 Files Preferences 中进入 行为 Behavior 标签中,你会看到 可执行的文本文件 Executable Text Files 选项。

默认情况下,它被设置成“ 在打开时显示文本文件 View executable text files when they are opend ”。我建议你把它改成“ 每次询问 Ask each time ”,这样你可以选择是执行还是编辑了,当然了你也可以选择“ 在打开时云可执行文本文件 Run executable text files when they are opend ”。你可以自行选择。

我希望这个贴士可以帮你修复这个小“问题”。欢迎提出问题和建议。


via: http://itsfoss.com/shell-script-opens-text-editor/

作者:Abhishek 译者:geekpi 校对:wxy

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

Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台。当你计划构建一个云时,你首先需要决定如何实现你的存储。开源的 Ceph 是红帽原生技术之一,它基于称为 RADOS 的对象存储系统,用一组网关 API 表示块、文件、和对象模式中的数据。由于它自身开源的特性,这种便携存储平台能在公有云和私有云上安装和使用。Ceph 集群的拓扑结构是按照备份和信息分布设计的,这种内在设计能提供数据完整性。它的设计目标就是容错、通过正确配置能运行于商业硬件和一些更高级的系统。

Ceph 能在任何 Linux 发行版上安装,但为了能正确运行,它需要最近的内核以及其它最新的库。在这篇指南中,我们会使用最小化安装的 CentOS-7.0。

系统资源

**CEPH-STORAGE**
OS: CentOS Linux 7 (Core)
RAM:1 GB
CPU:1 CPU
DISK: 20
Network: 45.79.136.163
FQDN: ceph-storage.linoxide.com

**CEPH-NODE**
OS: CentOS Linux 7 (Core)
RAM:1 GB
CPU:1 CPU
DISK: 20
Network: 45.79.171.138
FQDN: ceph-node.linoxide.com

安装前的配置

在安装 Ceph 存储之前,我们要在每个节点上完成一些步骤。第一件事情就是确保每个节点的网络已经配置好并且能相互访问。

配置 Hosts

要在每个节点上配置 hosts 条目,要像下面这样打开默认的 hosts 配置文件(LCTT 译注:或者做相应的 DNS 解析)。

# vi /etc/hosts

45.79.136.163 ceph-storage ceph-storage.linoxide.com
45.79.171.138 ceph-node ceph-node.linoxide.com

安装 VMware 工具

工作环境是 VMWare 虚拟环境时,推荐你安装它的 open VM 工具。你可以使用下面的命令安装。

# yum install -y open-vm-tools

配置防火墙

如果你正在使用启用了防火墙的限制性环境,确保在你的 Ceph 存储管理节点和客户端节点中开放了以下的端口。

你必须在你的 Admin Calamari 节点开放 80、2003、以及4505-4506 端口,并且允许通过 80 号端口访问到 Ceph 或 Calamari 管理节点,以便你网络中的客户端能访问 Calamari web 用户界面。

你可以使用下面的命令在 CentOS 7 中启动并启用防火墙。

# systemctl start firewalld
# systemctl enable firewalld

运行以下命令使 Admin Calamari 节点开放上面提到的端口。

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=2003/tcp --permanent
# firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
# firewall-cmd --reload

在 Ceph Monitor 节点,你要在防火墙中允许通过以下端口。

# firewall-cmd --zone=public --add-port=6789/tcp --permanent

然后允许以下默认端口列表,以便能和客户端以及监控节点交互,并发送数据到其它 OSD。

# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent

如果你工作在非生产环境,建议你停用防火墙以及 SELinux 设置,在我们的测试环境中我们会停用防火墙以及 SELinux。

# systemctl stop firewalld
# systemctl disable firewalld

系统升级

现在升级你的系统并重启使所需更改生效。

# yum update
# shutdown -r 0

设置 Ceph 用户

现在我们会新建一个单独的 sudo 用户用于在每个节点安装 ceph-deploy工具,并允许该用户无密码访问每个节点,因为它需要在 Ceph 节点上安装软件和配置文件而不会有输入密码提示。

运行下面的命令在 ceph-storage 主机上新建有独立 home 目录的新用户。

[root@ceph-storage ~]# useradd -d /home/ceph -m ceph
[root@ceph-storage ~]# passwd ceph

节点中新建的每个用户都要有 sudo 权限,你可以使用下面展示的命令赋予 sudo 权限。

[root@ceph-storage ~]# echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
ceph ALL = (root) NOPASSWD:ALL

[root@ceph-storage ~]# sudo chmod 0440 /etc/sudoers.d/ceph

设置 SSH 密钥

现在我们会在 Ceph 管理节点生成 ssh 密钥并把密钥复制到每个 Ceph 集群节点。

在 ceph-node 运行下面的命令复制它的 ssh 密钥到 ceph-storage。

[root@ceph-node ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node
The key's randomart image is:
+--[ RSA 2048]----+

[root@ceph-node ~]# ssh-copy-id ceph@ceph-storage

SSH key

配置 PID 数目

要配置 PID 数目的值,我们会使用下面的命令检查默认的内核值。默认情况下,是一个小的最大线程数 32768。

如下图所示通过编辑系统配置文件配置该值为一个更大的数。

更改 PID 值

配置管理节点服务器

配置并验证了所有网络后,我们现在使用 ceph 用户安装 ceph-deploy。通过打开文件检查 hosts 条目(LCTT 译注:你也可以用 DNS 解析来完成)。

# vim /etc/hosts
ceph-storage 45.79.136.163
ceph-node 45.79.171.138

运行下面的命令添加它的库。

# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm

添加 Ceph 仓仓库

或者创建一个新文件并更新 Ceph 库参数,别忘了替换你当前的 Release 和版本号。

[root@ceph-storage ~]# vi /etc/yum.repos.d/ceph.repo

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

之后更新你的系统并安装 ceph-deploy 软件包。

安装 ceph-deploy 软件包

我们运行下面的命令以及 ceph-deploy 安装命令来更新系统以及最新的 ceph 库和其它软件包。

#yum update -y && yum install ceph-deploy -y

配置集群

使用下面的命令在 ceph 管理节点上新建一个目录并进入新目录,用于收集所有输出文件和日志。

# mkdir ~/ceph-cluster
# cd ~/ceph-cluster

# ceph-deploy new storage

设置 ceph 集群

如果成功执行了上面的命令,你会看到它新建了配置文件。

现在配置 Ceph 默认的配置文件,用任意编辑器打开它并在会影响你公共网络的 global 参数下面添加以下两行。

# vim ceph.conf
osd pool default size = 1
public network = 45.79.0.0/16

安装 Ceph

现在我们准备在和 Ceph 集群关联的每个节点上安装 Ceph。我们使用下面的命令在 ceph-storage 和 ceph-node 上安装 Ceph。

# ceph-deploy install ceph-node ceph-storage

安装 ceph

处理所有所需仓库和安装所需软件包会需要一些时间。

当两个节点上的 ceph 安装过程都完成后,我们下一步会通过在相同节点上运行以下命令创建监视器并收集密钥。

# ceph-deploy mon create-initial

Ceph 初始化监视器

设置 OSD 和 OSD 守护进程

现在我们会设置磁盘存储,首先运行下面的命令列出你所有可用的磁盘。

# ceph-deploy disk list ceph-storage

结果中会列出你存储节点中使用的磁盘,你会用它们来创建 OSD。让我们运行以下命令,请使用你的磁盘名称。

# ceph-deploy disk zap storage:sda
# ceph-deploy disk zap storage:sdb

为了最后完成 OSD 配置,运行下面的命令配置日志磁盘以及数据磁盘。

# ceph-deploy osd prepare storage:sdb:/dev/sda
# ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1

你需要在所有节点上运行相同的命令,它会清除你磁盘上的所有东西。之后为了集群能运转起来,我们需要使用以下命令从 ceph 管理节点复制不同的密钥和配置文件到所有相关节点。

# ceph-deploy admin ceph-node ceph-storage

测试 Ceph

我们快完成了 Ceph 集群设置,让我们在 ceph 管理节点上运行下面的命令检查正在运行的 ceph 状态。

# ceph status
# ceph health
HEALTH_OK

如果你在 ceph status 中没有看到任何错误信息,就意味着你成功地在 CentOS 7 上安装了 ceph 存储集群。

总结

在这篇详细的文章中我们学习了如何使用两台安装了 CentOS 7 的虚拟机设置 Ceph 存储集群,这能用于备份或者作为用于其它虚拟机的本地存储。我们希望这篇文章能对你有所帮助。当你试着安装的时候记得分享你的经验。


via: http://linoxide.com/storage/setup-red-hat-ceph-storage-centos-7-0/

作者:Kashif Siddique 译者:ictlyh 校对:wxy

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