标签 Ubuntu 下的文章

摘要:这篇文章详尽地说明了在 Ubuntu Linux 系统中安装及卸载软件的各种方法。

当你从 Windows 系统转向 Linux 系统的时候,刚开始的体验绝对是非比寻常的。在 Ubuntu 系统下就连最基本的事情,比如安装个应用程序都会让(刚从 Windows 世界来的)人感到无比困惑。

但是你也不用太担心。因为 Linux 系统提供了各种各样的方法来完成同样的任务,刚开始你感到困惑那也是正常的。你并不孤单,我们大家都是这么经历过来的。

在这篇初学者指南中,我将会教大家在 Ubuntu 系统里如何以最常用的方式来安装软件,以及如何卸载之前已安装的软件。

关于在 Ubuntu 上应使用哪种方法来安装软件,我也会提出自己的建议。请用心学习。这篇文章写得很长也很详细,你从中绝对能够学到东西。

在 Ubuntu 系统中安装和卸载软件

在这篇教程中我使用的是运行着 Unity 桌面环境的 Ubuntu 16.04 版本的系统。除了一些截图外,这篇教程也同样适用于其它版本的 Ubuntu 系统。

1.1 使用 Ubuntu 软件中心来安装软件(推荐方式)

在 Ubuntu 系统中查找和安装软件最简单便捷的方法是使用 Ubuntu 软件中心。在 Ubuntu Unity 桌面里,你可以在 Dash 下搜索 Ubuntu 软件中心,然后选中打开即可:

你可以把 Ubuntu 软件中心想像成 Google 的 Play 商店或者是苹果的 App 商店。它包含 Ubuntu 系统下所有可用的软件。你可以通过应用程序的名称来搜索应用程序或者是通过浏览各种软件目录来进行查找软件。你还可以根据作者进行查询。这由你自己来选择。

一旦你找到自己想要的应用程序,选中它。软件中心将打开该应用程序的描述页面。你可以阅读关于这款软件的说明,评分等级和用户的评论。如果你愿意,也可以写一条评论。

一旦你确定想安装这款软件,你可以点击安装按钮来安装已选择的应用程序。在 Ubuntu 系统中,你需要输入 root 账号的密码才能安装该应用程序。

还有什么比这更简单的吗?我觉得应该没有了吧!

提示:正如我在 Ubuntu 16.04 系统安装完成后你需要做的事情这篇文章提到的那样,你应该启用 Canonical 合作伙伴仓库。默认情况下,Ubuntu 系统仅提供了那些源自自身软件库(Ubuntu 认证)的软件。

但是还有一个 Canonical 合伙伙伴软件库,它包含一些闭源专属软件,Ubuntu 并不直接管控它。启用该仓库后将让你能够访问更多的软件。在 Ubuntu 系统下安装 Skype 软件就是通过那种方式安装完成的。

在 Unity Dash 中,找到软件或更新工具。

如下图,打开其它软件标签面,勾选 Canonical 合作伙伴选项。

1.2 从 Ubuntu 软件中心卸载软件(推荐方式)

我们刚刚演示了如何在 Ubuntu 软件中心安装软件。那么如何使用同样的方法来卸载已安装的软件呢?

在 Ubuntu 软件中心卸载软件跟安装软件的步骤一样简单。

打开软件中心然后点击已安装的软件标签面。它将显示所有已安装的软件。或者,你也可以只搜索应用程序的名称。

要卸载 Ubuntu 系统中的应用程序,点击删除按钮即中。你同样需要输入 root 账号的密码。

2.1 在 Ubuntu 系统中使用 .deb 文件来安装软件

.deb 文件跟 Windows 下的 .exe 文件很相似。这是一种安装软件的简易方式。很多软件开发商都会提供 .deb 格式的安装包。

Google Chrome 浏览器就是这样的。你可以下载从其官网下载 .deb 安装文件

一旦你下载完成 .deb 安装文件之后,只需要双击运行即可。它将在 Ubuntu 软件中心打开,你就可以使用前面 1.1 节中同样的方式来安装软件。

或者,你也可以使用轻量级的安装程序 在 Ubuntu 系统中使用 Gdebi 工具来安装 .deb 安装文件

软件安装完成后,你可以随意删除下载的 .deb 安装包。

提示:在使用 .deb 文件的过程中需要注意的一些问题:

2.2 使用 .deb 文件来删除已安装的软件

卸载 .deb 文件安装的软件跟我们在 1.2 节看到的步骤一样的。只需要打开 Ubuntu 软件中心,搜索应用程序名称,然后单击移除并卸载即可。

或者你也可以使用新立得包管理器。这也不是必须的,但是如果在 Ubuntu 软件中心找不到已安装的应用程序的情况下,就可以使用这个工具了。新立得软件包管理器会列出你系统里已安装的所有可用的软件。这是一个非常强大和有用的工具。

这个工具很强大非常有用。在 Ubuntu 软件中心被开发出来提供一种更友好的安装软件方式之前,新立得包管理器是 Ubuntu 系统中默认的安装和卸载软件的工具。

你可以单击下面的链接来安装新立得软件包管器(它将会在 Ubuntu 软件中心中打开)。

打开新立得包管理器,然后找到你想卸载的软件。已安装的软件标记为绿色按钮。单击并选择“标记为删除”。然后单击“应用”来删除你所选择的软件。

3.1 在 Ubuntu 系统中使用 apt 命令来安装软件(推荐方式)

你应该看到过一些网站告诉你使用 sudo apt-get install 命令在 Ubuntu 系统下安装软件。

实际上这种命令行方式跟第 1 节中我们看到的安装方式一样。只是你没有使用 Ubuntu 软件中心来安装或卸载软件,而是使用的是命令行接口。别的没什么不同。

使用 apt-get 命令来安装软件超级简单。你只需要执行下面的命令:

sudo apt-get install package_name

上面使用 sudo 是为了获取“管理员”或 “root” (Linux 专用术语)账号权限。你可以替换 package\_name 为你想要安装的软件包名。

apt-get 命令可以自动补全,你只需要输入一些字符并按 tab 键即可, apt-get 命令将会列出所有与该字符相匹配的程序。

3.2 在 Ubuntu 系统下使用 apt 命令来卸载软件(推荐方式)

在命令行下,你可以很轻易的卸载 Ubuntu 软件中心安装的软件,以及使用 apt 命令或是使用 .deb 安装包安装的各种软件。

你只需要使用下面的命令,替换 package-name 为你想要删除的软件名。

sudo apt-get remove package_name

同样地,你也可以通过按 tab 键来利用 apt-get 命令的自动补全功能。

使用 apt-get 命令来安装卸载或卸载并不算什么高深的技能。这实际上非常简便。通过这些简单命令的运用,你可以熟悉 Ubuntu Linux 系统的命令行操作,长期使用对你学习 Linux 系统的帮忙也很大。建议你看下我写的一篇很详细的apt-get 命令使用指导文章来进一步的了解该命令的使用。

4.1 使用 PPA 命令在 Ubuntu 系统下安装应用程序

PPA 是 个人软件包归档 Personal Package Archive 的缩写。这是开发者为 Ubuntu 用户提供软件的另一种方式。

在第 1 节中出现了一个叫做 ‘ 仓库 repository ’ 的术语。仓库本质上是一个软件集。 Ubuntu 官方仓库主要用于提供经过 Ubuntu 自己认证过的软件。 Canonical 合作伙伴仓库包含来自合作厂商提供的各种应用软件。

同时,PPA 允许开发者创建自己的 APT 仓库。当用户在系统里添加了一个仓库时(sources.list 中增加了该仓库),用户就可以使用开发者自己的仓库里提供的软件了。

现在你也许要问既然我们已经有 Ubuntu 的官方仓库了,还有什么必要使用 PPA 方式呢?

答案是并不是所有的软件都会自动添加到 Ubuntu 的官方仓库中。只有受信任的软件才会添加到其中。假设你开发出一款很棒的 Linux 应用程序,然后你想为用户提供定期的更新,但是在它被添加到 Ubuntu 仓库之前,这需要花费好几个月的时间(如果是在被允许的情况下)。 PPA 的出现就是为了解决这个问题。

除此之外, Ubuntu 官方仓库通常不会把最新版的软件添加进来。这会影响到 Ubuntu 系统的安全性及稳定性。新版本的软件或许会有影响到系统的回退。这就是为什么在新款软件进入到官方仓库前要花费一定的时间,有时候需要等待几个月。

但是,如果你不想等待最新版出现在 Ubuntu 仓库中呢?这个时候 PPA 就对你有帮助了。通过 PPA 方式,你可以获得该应用程序的最新版本。

通常情况下, PPA 通过这三个命令来进行使用。第一个命令添加 PPA 仓库到源列表中。第二个命令更新软件缓存列表,这样你的系统就可以获取到可用的新版本软件了。第三个命令用于从 PPA 安装软件。

我将演示使用 PPA 方式来安装 Numix 主题

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

在上面的实例中,我们添加了一个Numix 项目提供的 PPA 。在更新软件信息之后,我们安装了两个 Numix PPA 中可用的应用程序。

如果你想使用带有图形界面的应用程序,你可以使用 Y-PPA 应用程序。通过它你可以很方便地查询 PPA,添加和删除软件。

注意:PPA 的安全性经常受到争议。我的建议是你应该从受信任的源添加 PPA,最好是从官方软件源添加。

4.2 卸载使用 PPA 方式安装的应用程序

在之前的文章在 Ubuntu 系统下移除 PPA 中我已经写得很详细了。你可以跳转到这篇文章去深入学习卸载 PPA 方式安装的软件。

这里简要提一下,你可以使用下面的两个命令来卸载:

sudo apt-get remove numix-gtk-theme numix-icon-theme-circle

sudo add-apt-repository --remove ppa:numix/ppa

第一个命令是卸载通过 PPA 方式安装的软件。第二个命令是从 source.list 中删除该 PPA。

5.1 在 Ubuntu Linux 系统中使用源代码来安装软件(不推荐使用)

我并不建议你使用软件源代码来安装该应用程序。这种方法很麻烦,容易出问题而且还非常地不方便。你得费尽周折去解决依赖包的问题。你还得保留源代码文件,以便将来卸载该应用程序。

但是还是有一些用户喜欢通过源代码编译的方式来安装软件,尽管他们自己本身并不会开发软件。实话告诉你,我曾经也经常使用这种方式来安装软件,不过那都是 5 年前的事了,那时候我还是一个实习生,我必须在 Ubuntu 系统下开发一款软件出来。但是,从那之后我更喜欢使用其它方式在 Ubuntu 系统中安装应用程序。我觉得,对于普通的 Linux 桌面用户,最好不要使用源代码的方式来安装软件。

在这一小节中我将简要地列出使用源代码方式来安装软件的几个步骤:

  • 下载你想要安装软件的源代码。
  • 解压下载的文件。
  • 进入到解压目录里并找到 README 或者 INSTALL 文件。一款开发完善的软件都会包含这样的文件,用于提供安装或卸载软件的指导方法。
  • 找到名为 configure 的配置文件。如果在当前目录下,使用这个命令来执行该文件:./configure 。它将会检查你的系统是否包含所有的必须的软件(在软件术语中叫做‘依赖包’)来安装该应用程序。(LCTT 译注:你可以先使用 ./configure --help 来查看有哪些编译选项,包括安装的位置、可选的特性和模块等等。)注意并不是所有的软件都包括该配置文件,我觉得那些开发很糟糕的软件就没有这个配置文件。
  • 如果配置文件执行结果提示你缺少依赖包,你得先安装它们。
  • 一旦你安装完成所有的依赖包后,使用 make 命令来编译该应用程序。
  • 编译完成后,执行 sudo make install 命令来安装该应用程序。

注意有一些软件包会提供一个安装软件的脚本文件,你只需要运行这个文件即可安装完成。但是大多数情况下,你可没那么幸运。

还有,使用这种方式安装的软件并不会像使用 Ubuntu 软件库、 PPA 方式或者 .deb 安装方式那样安装的软件会自动更新。

如果你坚持使用源代码方式来安装软件,我建议你看下这篇很详细的文章在 Ubuntu 系统中使用源代码安装软件

5.2 卸载使用源代码方式安装的软件(不推荐使用)

如果你觉得使用源代码安装软件的方式太难了,再想想看,当你卸载使用这种方式安装的软件将会更痛苦。

  • 首先,你不能删除用于安装该软件的源代码。
  • 其次,你必须确保在安装的时候也有对应的方式来卸载它。一款设计上很糟糕的应用程序就不会提供卸载软件的方法,因此你不得不手动去删除那个软件包安装的所有文件。

正常情况下,你应该切换到源代码的解压目录下,使用下面的命令来卸载那个应用程序:

sudo make uninstall

但是,这也不能保证你每次都会很顺利地卸载完成。

看到了吧,使用源代码方式来安装软件实在是太麻烦了。这就是为什么我不推荐大家在 Ubuntu 系统中使用源代码来安装软件的原因。

其它一些在 Ubuntu 系统中安装软件的方法

另外,还有一些在 Ubuntu 系统下并不常用的安装软件的方法。由于这篇文章已经写得够长了,我就不再深入探讨了。下面我将把它们列出来:

你是如何在 UBUNTU 系统中安装软件的呢?

如果你一直都在使用 Ubuntu 系统,那么你在 Ubuntu Linux 系统下最喜欢使用什么方式来安装软件呢?你觉得这篇文章对你有用吗?请分享你的一些观点,建议和提出相关的问题。


作者简介:

我叫 Abhishek Prakash ,F.O.S.S 开发者。我的工作是一名专业的软件开发人员。我是一名狂热的 Linux 系统及开源软件爱好者。我使用 Ubuntu 系统,并且相信分享是一种美德。除了 Linux 系统之外,我喜欢经典的侦探神秘小说。我是 Agatha Christie 作品的真爱粉。


via: https://itsfoss.com/remove-install-software-ubuntu/

作者:ABHISHEK PRAKASH 译者:rusking 校对:jasminepeng

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

随着 Ubuntu 16.10 的发布,Unity 8 越来越吸引到了更多人的关注。这是因为在这个大家最爱的 Linux 发行版的最新版本中可以体验其带有的试验性桌面。桌面发行版是人们最熟悉的 Unity 环境,但有一点点不同。它不再使用 X11 图形技术,Ubuntu 的开发者选择了另一种截然不同的方式。

原来,Unity 8 用的是 Mir,这是 Ubuntu 为了在 Linux 上提供显示服务而做出的努力。这项技术已经在 Ubuntu phone 和平板上大量使用,但是这次新版是我们在桌面环境上第一次见到 Mir 。

这项技术相当新颖,结果是没多少 Linux 程序能运行在它之上。不是所有,那也是大部分的程序设计在 Xorg 和 X11 之上运行。如果你想要试试在 Unity 8 上运行这些程序,你肯定会为在 Unity 8上确实能够运行之前的 Xorg 程序而高兴。接下来是如何做!

登录进 Unity 8

Unity 8 在 Ubuntu 16.10 上是一个可选会话。在使用之前只须牢记一件事情:它不会加载 AMD 的图形驱动,Intel 的同样不会加载。唯一支持的图形驱动是 Nvidia 的开源驱动。要用 Unity 8 的话,只要像往常那样启动 Ubuntu,然后,在登录进去之前,点击用户名上面的 Ubuntu 图标,选择 Unity8 选项。如果万事顺利的话,这个新的、试验性的桌面环境将会加载。

注意: Unity 8 非常新而且不稳定,自行承担使用风险。

安装 Libertine

Xorg 程序(例如 Firefox 等)确实能在 Unity 8 上使用,在使用之前需要一点小调整。在 Mir 桌面上用终端打开 Libertine ,在 Scopes 窗口中点击终端图标就能完成。一旦打开,输入你的密码。接下来,输入以下的命令:

sudo apt install libertine-tools libertine-scope libertine

当这些程序完成安装后,点击并拖动 Scopes 窗口以刷新内容。然后,在面板上点击来启动 libertine。

新建 Xorg 容器

打开 Libertine,就可以新建一些(应用)容器了。这些容器很特别,因为它们能让基于 X11 的 Linux 程序在 Mir/Unity 8 桌面上的容器之中运行。另外,如果需要支持 32 位应用,勾选“i386 multiarch support”复选框。否则,什么都不要动(或者输入名字和密码),点击“OK”。

在这之后,这个 Xorg 容器就准备好,可以使用了。在 Libertine 找到它并启动。删除也很容易,右键点击容器,选择“删除”选项。

注意:每一个 Xorg 容器有 500 MB的最大内存限制。所以多个容器是有必要的。

安装软件

在 Libertine 容器中安装软件有两个方法。第一种是允许用户启动容器后选择“输入包名或者 Debian 文件”,这意味着用户可以在软件中心或者终端找到一个软件的名字,然后在 Libertine 中输入它来安装。也可以指定特定的 DEB 文件来安装,可以在Libertine LXC 容器中直接搜索安装包。

注意:Unity 8 非常新,一些程序或许不能在 Libertine 里加载或者完全安装。

结论

Unity 8 展现了不少的新特性,它现代、时髦,而且比之前任何一个 Unity 迭代版本都快。唯一限制它的就是使用率。事实是大部分用户更乐意选择实用的应用程序,而不是一个别致新颖的桌面环境。某种程度上来说,使用 Libertine 能解决这个问题,但它不会永久有效。早晚有一天,Canonical 都需要自行移植这些程序或者向社区求助来彻底解决这个问题。


via: https://www.maketecheasier.com/use-old-xorg-apps-unity-8/

作者:Derrik Diener 译者:ypingcn 校对:wxy

本文由 LCTT 组织编译,Linux中国 荣誉推出

UFW,即 简单防火墙 uncomplicated firewall ,是一个 Arch Linux、Debian 或 Ubuntu 中管理防火墙规则的前端。 UFW 通过命令行使用(尽管它有可用的 GUI),它的目的是使防火墙配置简单(即 不复杂 uncomplicated )。

开始之前

1、 熟悉我们的入门指南,并完成设置服务器主机名和时区的步骤。

2、 本指南将尽可能使用 sudo。 在完成保护你的服务器指南的章节,创建一个标准用户帐户,强化 SSH 访问和移除不必要的网络服务。 但不要跟着创建防火墙部分 - 本指南是介绍使用 UFW 的,它对于 iptables 而言是另外一种控制防火墙的方法。

3、 更新系统

Arch Linux

sudo pacman -Syu

Debian / Ubuntu

sudo apt-get update && sudo apt-get upgrade

安装 UFW

UFW 默认包含在 Ubuntu 中,但在 Arch 和 Debian 中需要安装。 Debian 将自动启用 UFW 的 systemd 单元,并使其在重新启动时启动,但 Arch 不会。 这与告诉 UFW 启用防火墙规则不同,因为使用 systemd 或者 upstart 启用 UFW 仅仅是告知 init 系统打开 UFW 守护程序。

默认情况下,UFW 的规则集为空,因此即使守护程序正在运行,也不会强制执行任何防火墙规则。 强制执行防火墙规则集的部分在下面。

Arch Linux

1、 安装 UFW:

sudo pacman -S ufw

2、 启动并启用 UFW 的 systemd 单元:

sudo systemctl start ufw
sudo systemctl enable ufw

Debian / Ubuntu

1、 安装 UFW

sudo apt-get install ufw

使用 UFW 管理防火墙规则

设置默认规则

大多数系统只需要打开少量的端口接受传入连接,并且关闭所有剩余的端口。 从一个简单的规则基础开始,ufw default命令可以用于设置对传入和传出连接的默认响应动作。 要拒绝所有传入并允许所有传出连接,那么运行:

sudo ufw default allow outgoing
sudo ufw default deny incoming

ufw default 也允许使用 reject 参数。

警告:

除非明确设置允许规则,否则配置默认 denyreject 规则会锁定你的服务器。确保在应用默认 denyreject 规则之前,已按照下面的部分配置了 SSH 和其他关键服务的允许规则。

添加规则

可以有两种方式添加规则:用端口号或者服务名表示。

要允许 SSH 的 22 端口的传入和传出连接,你可以运行:

sudo ufw allow ssh

你也可以运行:

sudo ufw allow 22

相似的,要在特定端口(比如 111)上 deny 流量,你需要运行:

sudo ufw deny 111

为了更好地调整你的规则,你也可以允许基于 TCP 或者 UDP 的包。下面例子会允许 80 端口的 TCP 包:

sudo ufw allow 80/tcp
sudo ufw allow http/tcp

这个会允许 1725 端口上的 UDP 包:

sudo ufw allow 1725/udp

高级规则

除了基于端口的允许或阻止,UFW 还允许您按照 IP 地址、子网和 IP 地址/子网/端口的组合来允许/阻止。

允许从一个 IP 地址连接:

sudo ufw allow from 123.45.67.89

允许特定子网的连接:

sudo ufw allow from 123.45.67.89/24

允许特定 IP/ 端口的组合:

sudo ufw allow from 123.45.67.89 to any port 22 proto tcp

proto tcp 可以删除或者根据你的需求改成 proto udp,所有例子的 allow 都可以根据需要变成 deny

删除规则

要删除一条规则,在规则的前面加上 delete。如果你希望不再允许 HTTP 流量,你可以运行:

sudo ufw delete allow 80

删除规则同样可以使用服务名。

编辑 UFW 的配置文件

虽然可以通过命令行添加简单的规则,但仍有可能需要添加或删除更高级或特定的规则。 在运行通过终端输入的规则之前,UFW 将运行一个文件 before.rules,它允许回环接口、ping 和 DHCP 等服务。要添加或改变这些规则,编辑 /etc/ufw/before.rules 这个文件。 同一目录中的 before6.rules 文件用于 IPv6 。

还存在一个 after.ruleafter6.rule 文件,用于添加在 UFW 运行你通过命令行输入的规则之后需要添加的任何规则。

还有一个配置文件位于 /etc/default/ufw。 从此处可以禁用或启用 IPv6,可以设置默认规则,并可以设置 UFW 以管理内置防火墙链。

UFW 状态

你可以在任何时候使用命令:sudo ufw status 查看 UFW 的状态。这会显示所有规则列表,以及 UFW 是否处于激活状态:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

启用防火墙

随着你选择规则完成,你初始运行 ufw status 可能会输出 Status: inactive。 启用 UFW 并强制执行防火墙规则:

sudo ufw enable

相似地,禁用 UFW 规则:

sudo ufw disable
UFW 会继续运行,并且在下次启动时会再次启动。

日志记录

你可以用下面的命令启动日志记录:

sudo ufw logging on

可以通过运行 sudo ufw logging low|medium|high 设计日志级别,可以选择 lowmedium 或者 high。默认级别是 low

常规日志类似于下面这样,位于 /var/logs/ufw

Sep 16 15:08:14 <hostname> kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=123.45.67.89 DST=987.65.43.21 LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=8475 PROTO=TCP SPT=48247 DPT=22 WINDOW=1024 RES=0x00 SYN URGP=0

前面的值列出了你的服务器的日期、时间、主机名。剩下的重要信息包括:

  • [UFW BLOCK]:这是记录事件的描述开始的位置。在此例中,它表示阻止了连接。
  • IN:如果它包含一个值,那么代表该事件是传入事件
  • OUT:如果它包含一个值,那么代表事件是传出事件
  • MAC:目的地和源 MAC 地址的组合
  • SRC:包源的 IP
  • DST:包目的地的 IP
  • LEN:数据包长度
  • TTL:数据包 TTL,或称为 time to live。 在找到目的地之前,它将在路由器之间跳跃,直到它过期。
  • PROTO:数据包的协议
  • SPT:包的源端口
  • DPT:包的目标端口
  • WINDOW:发送方可以接收的数据包的大小
  • SYN URGP:指示是否需要三次握手。 0 表示不需要。

via: https://www.linode.com/docs/security/firewalls/configure-firewall-with-ufw

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

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

 title=

在这个系列的文章中,我们将通过使用 Postfix、Dovecot 和 openssl 这三款工具来为你展示如何在 ubuntu 系统上搭建一个既可靠又易于配置的邮件服务器。

在这个容器和微服务技术日新月异的时代,值得庆幸的是有些事情并没有改变,例如搭建一个 Linux 下的邮件服务器,仍然需要许多步骤才能间隔各种服务器耦合在一起,而当你将这些配置好,放在一起,却又非常可靠稳定,不会像微服务那样一睁眼有了,一闭眼又没了。 在这个系列教程中我们将通过使用 Postfix、Dovecot 和 openssl 这三款工具在 ubuntu 系统上搭建一个既可靠又易于配置的邮件服务器。

Postfix 是一个古老又可靠的软件,它比原始的 Unix 系统的 MTA 软件 sendmail 更加容易配置和使用(还有人仍然在用sendmail 吗?)。 Exim 是 Debain 系统上的默认 MTA 软件,它比 Postfix 更加轻量而且超级容易配置,因此我们在将来的教程中会推出 Exim 的教程。

Dovecot(LCTT 译注:详情请阅读维基百科)和 Courier 是两个非常受欢迎的优秀的 IMAP/POP3 协议的服务器软件,Dovecot 更加的轻量并且易于配置。

你必须要保证你的邮件通讯是安全的,因此我们就需要使用到 OpenSSL 这个软件,OpenSSL 也提供了一些很好用的工具来测试你的邮件服务器。

为了简单起见,在这一系列的教程中,我们将指导大家安装一个在局域网上的邮件服务器,你应该拥有一个局域网内的域名服务,并确保它是启用且正常工作的,查看这篇“使用 dnsmasq 为局域网轻松提供 DNS 服务”会有些帮助,然后,你就可以通过注册域名并相应地配置防火墙,来将这台局域网服务器变成互联网可访问邮件服务器。这个过程网上已经有很多很详细的教程了,这里不再赘述,请大家继续跟着教程进行即可。

一些术语

让我们先来快速了解一些术语,因为当我们了解了这些术语的时候就能知道这些见鬼的东西到底是什么。 :D

  • MTA 邮件传输代理 Mail Transfer Agent ,基于 SMTP 协议(简单邮件传输协议)的服务端,比如 Postfix、Exim、Sendmail 等。SMTP 服务端彼此之间进行相互通信(LCTT 译注 : 详情请阅读维基百科)。
  • MUA 邮件用户代理 Mail User Agent ,你本地的邮件客户端,例如 : Evolution、KMail、Claws Mail 或者 Thunderbird(LCTT 译注 : 例如国内的 Foxmail)。
  • POP3 邮局协议 Post-Office Protocol 版本 3,将邮件从 SMTP 服务器传输到你的邮件客户端的的最简单的协议。POP 服务端是非常简单小巧的,单一的一台机器可以为数以千计的用户提供服务。
  • IMAP 交互式消息访问协议 Interactive Message Access Protocol ,许多企业使用这个协议因为邮件可以被保存在服务器上,而用户不必担心会丢失消息。IMAP 服务器需要大量的内存和存储空间。
  • TLS 传输套接层 Transport socket layer 是 SSL( 安全套接层 Secure Sockets Layer )的改良版,为 SASL 身份认证提供了加密的传输服务层。
  • SASL 简单身份认证与安全层 Simple Authentication and Security Layer ,用于认证用户。SASL进行身份认证,而上面说的 TLS 提供认证数据的加密传输。
  • StartTLS: 也被称为伺机 TLS 。如果服务器双方都支持 SSL/TLS,StartTLS 就会将纯文本连接升级为加密连接(TLS 或 SSL)。如果有一方不支持加密,则使用明文传输。StartTLS 会使用标准的未加密端口 25 (SMTP)、 110(POP3)和 143 (IMAP)而不是对应的加密端口 465(SMTP)、995(POP3) 和 993 (IMAP)。

啊,我们仍然有 sendmail

绝大多数的 Linux 版本仍然还保留着 /usr/sbin/sendmail 。 这是在那个 MTA 只有一个 sendmail 的古代遗留下来的痕迹。在大多数 Linux 发行版中,/usr/sbin/sendmail 会符号链接到你安装的 MTA 软件上。如果你的 Linux 中有它,不用管它,你的发行版会自己处理好的。

安装 Postfix

使用 apt-get install postfix 来做基本安装时要注意(图 1),安装程序会打开一个向导,询问你想要搭建的服务器类型,你要选择“Internet Server”,虽然这里是局域网服务器。它会让你输入完全限定的服务器域名(例如: myserver.mydomain.net)。对于局域网服务器,假设你的域名服务已经正确配置,(我多次提到这个是因为经常有人在这里出现错误),你也可以只使用主机名。

 title=

图 1:Postfix 的配置。

Ubuntu 系统会为 Postfix 创建一个配置文件,并启动三个守护进程 : masterqmgrpickup,这里没用一个叫 Postfix 的命令或守护进程。(LCTT 译注:名为 postfix 的命令是管理命令。)

$ ps ax 
 6494 ? Ss 0:00 /usr/lib/postfix/master 
 6497 ? S 0:00 pickup -l -t unix -u -c 
 6498 ? S 0:00 qmgr -l -t unix -u 

你可以使用 Postfix 内置的配置语法检查来测试你的配置文件,如果没用发现语法错误,不会输出任何内容。

$ sudo postfix check 
[sudo] password for carla: 

使用 netstat 来验证 postfix 是否正在监听 25 端口。

$ netstat -ant 
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 
tcp6 0 0 :::25  :::*  LISTEN 

现在让我们再操起古老的 telnet 来进行测试 :

$ telnet myserver 25 
Trying 127.0.1.1... 
Connected to myserver. 
Escape character is '^]'. 
220 myserver ESMTP Postfix (Ubuntu) 
EHLO myserver
250-myserver 
250-PIPELINING 
250-SIZE 10240000 
250-VRFY 
250-ETRN 
250-STARTTLS 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250 DSN 
^]

telnet> 

嘿,我们已经验证了我们的服务器名,而且 Postfix 正在监听 SMTP 的 25 端口而且响应了我们键入的命令。

按下 ^] 终止连接,返回 telnet。输入 quit 来退出 telnet。输出的 ESMTP(扩展的 SMTP ) 250 状态码如下。 (LCTT 译注: ESMTP (Extended SMTP),即扩展 SMTP,就是对标准 SMTP 协议进行的扩展。详情请阅读维基百科

  • PIPELINING 允许多个命令流式发出,而不必对每个命令作出响应。
  • SIZE 表示服务器可接收的最大消息大小。
  • VRFY 可以告诉客户端某一个特定的邮箱地址是否存在,这通常应该被取消,因为这是一个安全漏洞。
  • ETRN 适用于非持久互联网连接的服务器。这样的站点可以使用 ETRN 从上游服务器请求邮件投递,Postfix 可以配置成延迟投递邮件到 ETRN 客户端。
  • STARTTLS (详情见上述说明)。
  • ENHANCEDSTATUSCODES,服务器支撑增强型的状态码和错误码。
  • 8BITMIME,支持 8 位 MIME,这意味着完整的 ASCII 字符集。最初,原始的 ASCII 是 7 位。
  • DSN,投递状态通知,用于通知你投递时的错误。

Postfix 的主配置文件是: /etc/postfix/main.cf,这个文件是安装程序创建的,可以参考这个资料来查看完整的 main.cf 参数列表, /etc/postfix/postfix-files 这个文件描述了 Postfix 完整的安装文件。

下一篇教程我们会讲解 Dovecot 的安装和测试,然后会给我们自己发送一些邮件。


via: https://www.linux.com/learn/how-build-email-server-ubuntu-linux

作者:CARLA SCHRODER 译者:WangYihang 校对:wxy

本文由 LCTT 组织编译,Linux中国 荣誉推出

Ubuntu 17.04 (Zesty Zapus) 将使用交换文件来代替 Swap 分区

Canonical 的软件工程师 Dimitri John Ledkov 最近宣布即将发布的 Ubuntu Linux 系统安装时将丢弃 Swap 分区方式,改为交换文件方式。

对我们中的大多数使用带 SSD 或 NVMe 闪盘及内存充足的人来说,这不是什么大新闻。不过那些想要将 Ubuntu 后续版本安装在 10 多年前 PC 上的人们来说,可能会对此感兴趣。

多年前,全新安装 GNU/Linux 时创建 Swap 分区是强制要求的,但随着科技进步而发生了变化。现在即使最廉价的电脑也至少 4G 内存,对于办公和基本计算来说已经足够。

如今如果您个人电脑有 2GB 到 4GB 物理内存,就不需要 Swap 分区。 即使你创建了一个,也可能根本用不上,这也是 Canonical 决定 Ubuntu 新安装时放弃 Swap 分区的原因。

Canonical 目前在开发 Ubuntu 17.04 ,也称为 Zesty Zapus, 预计 2017 年 4 月 13 日发布。

“从 17.04 Zesty Zapus 版本之后,非 LVM 的安装将默认使用交换文件而不是创建 Swap 分区,” Dimitri John Ledkov 说到。 “另外,交换文件的大小可以有很大差异。” Canonical 确保用户可以完全控制他们的安装,如果他们不想使用 Swap,可以将参数值设为 0。不过,这些改变不适用于使用 LVM 选项安装 Ubuntu。

改变将在 Ubuntu 17.04 (Zesty Zapus) 及以后版本中进行。

Fedora 项目组发布 DNF 2.0.0 包管理器

DNF-PLUGINS-CORE 1.0.0 也一并发布。

Fedora 开发人员 Michael Mráka 于 2016 年 12 月 20 日宣布,Fedora Linux 上 DNF 2.0.0 包管理器正式发布。

经历两个半月的开发之后,DNF 2.0.0 和 DNF-PLUGINS-CORE 1.0.0 进入 Fedora 25 的稳定仓库, 为用户基于 RPM 的 Linux 版本提供下一代包管理系统和插件。

不过,DNF 2.0.0 与 DNF-1 系列尚不完全兼容。因此,建议在尝试更新到 DNF 2.0 前,阅读下 DNF-1 和 DNF-2 的不兼容列表

KDE 发布管理 Systemd 和 用户单元的图形化工具:SystemdGenie

KDE 开发人员 Ragnar Thomsen 高兴的宣布,一个用于 KDE Plasma 桌面上的称为 SystemdGenie 的新工具,现已可用。它用于帮助管理 systemd 和 用户单元 user unit 。从下面截图中可以看到,SystemdGenie 是一个全功能的应用,为想要对systemd及用户单元,以及 logind 会话完全控制的高级用户开发。目前,该工具大部分功能与 systemd-kcm 相同。

SystemdGenie 的第一个开发发布版本为 0.99.0, 这是一个预发布版本,可能会有 bug 存在。试用过程中如发现任何问题,请向开发团队报告。

KDE 分区管理器 3.0.0 支持 LVM on LUKS 和 LUKS on LVM 配置

KDE 开发人员 Andrius Štikonas 最近宣布 KDE 分区管理器的一个新的里程碑版本发布,用于 KDE Plasma 桌面的开源分区编辑工具。

作为一个大的发布版本,KDE Partition Manager 3.0 包含了一些令人兴奋的新功能,例如支持 LVM on LUKS 和 LUKS on LVM 配置, 还支持 LVM Logical Volumes (LV)大小更改。

详情请参见 Andrius Štikonas 的发布公告

Wine-Staging 2.0 让 Linux 用户可以玩 Doom 2016,并带 Vulkan 支持

RC2版本目前在公测中。

2016 年 12 月 21 日,Wine-Stating 项目开发团队宣布 Wine-Stating 2.0 的 RC2 版本现已可用。

除了支持 DOOM 2016 with Vulkan 外,此版本还有其他新功能,例如对 Mono 引擎进行了大量 bug 修复,并更新了补丁包。可以从这里下载 Wine-Staging 2.0 RC2 ,尤其是如果你梦想在你的 GNU/Linux 系统上玩 DOOM 2016 的话。

2016 年 11 月最后一天,Canonical 和 Docker 公司宣布了一个新的商务合作意向,承诺为 Ubuntu Linux 提供商业版 Docker 引擎的企业级支持和 SLA。

这两家公司将在 Ubuntu 平台上集成商业版 Docker 引擎,这样 Canonical 就可以一体化为其客户提供商业版 Docker 引擎和 Ubuntu Linux 系统的支持。

“通过我们的合作,将商业版 Docker 引擎带到了庞大的 Ubuntu 社区, 在敏捷性、移植性和安全性方面为用户提供了更多选择。”Docker 的商业发展和技术联盟副总裁 Nick Stinemates 说。

Ubuntu 的客户现在可以受益于 Docker 的官方支持

Docker 和 Canonical 之间的新合作将使 Ubuntu 客户得到 Docker 的官方支持,而目前其他的 Linux 发行版尚无此支持。因此, Docker 公司将会以 Snap 格式发布和维护新版本的商业版 Docker 引擎。

这些 Docker 维护的 Snap 软件包将由 Docker 公司推送回上游,Ubuntu 16.04 LTS 及其它支持 Snap 的 Linux 系统将可以直接访问由官方构建的 Docker 应用容器。

“在可伸缩容器运营方面,Ubuntu 和 Docker 的组合很流行,这次的合作意向将使我们的用户可以在商业版 Docker 引擎的 DevOps 产品化方面开辟一条更快、更容易的发展道路。”Canonical 的云联盟和商业发展副总裁 John Zannos 说。

据 Canonical 和 Docker 称,Ubuntu 在以容器为中心的 DevOps 平台环境中非常流行,所以在加快和保持维护 Docker 版本发布的需求方面日益增加。最新的 Snap 技术为 Ubuntu 上的新发布 Docker 软件提供了额外的安全保护。