2016年12月

刚开始学习软件工程的时候,我们经常会碰到像这样的事情:

软件应该符合 SOLID 原则。

但这句话实际是什么意思?让我们看看 SOLID 中每个字母在架构里所代表的重要含义,例如:

简单来说,我们需要提供一个类,这个类有它所需要的所有对象,以便实现其功能。

概述

依赖注入听起来像是描述非常复杂的东西的一个术语,但实际上它很简单,看下面这个例子你就明白了:

class NoDependencyInjection {
  private Dependency d;

  public NoDependencyInjection() {
    d = new Dependency();
  }
}

class DependencyInjection {
  private Dependency d;

  public DependencyInjection(Dependency d) {
    this.d = d;
  }
}

正如我们所见,第一种情况是我们在构造器里创建了依赖对象,但在第二种情况下,它作为参数被传递给构造器,这就是我们所说的 依赖注入 dependency injection 。这样做是为了让我们所写的类不依靠特定依赖关系的实现,却能直接使用它。

参数传递的目标是构造器,我们就称之为构造器依赖注入;或者是某个方法,就称之为方法依赖注入:

class Example {
  private ConstructorDependency cd;
  private MethodDependency md;
  Example(ConstructorDependency cd) {
    this.cd = cd; //Constructor Dependency Injection
  }

  public setMethodDependency(MethodDependency md) {
    this.md = md; //Method Dependency Injection
  }
}

要是你想总体深入地了解依赖注入,可以看看由 Dan Lew 发表的精彩的演讲,事实上是这个演讲启迪了这篇概述。

在 Android 平台,当需要框架来处理依赖注入这个特殊的问题时,我们有不同的选择,其中最有名的框架就是 Dagger 2。它最开始是由 Square 公司(LCTT 译注:Square 是美国一家移动支付公司)的一些很棒的开发者开发出来的,然后慢慢发展成由 Google 自己开发。首先开发出来的是 Dagger 1,然后 Big G 接手这个项目发布了第二个版本,做了很多改动,比如以 注解 annotation 为基础,在编译的时候完成其任务。

导入框架

安装 Dagger 并不难,但需要导入 android-apt 插件,通过向项目的根目录下的 build.gradle 文件中添加它的依赖关系:

buildscript{
  ...
  dependencies{
    ...
    classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’
  }
}

然后,我们需要将 android-apt 插件应用到项目 build.gradle 文件,放在文件顶部 Android application 那一句的下一行:

apply plugin: ‘com.neenbedankt.android-apt’

这个时候,我们只用添加依赖关系,然后就能使用库及其 注解 annotation 了:

dependencies{
    ...
    compile ‘com.google.dagger:dagger:2.6’ 
    apt ‘com.google.dagger:dagger-compiler:2.6’
    provided ‘javax.annotation:jsr250-api:1.0’
}
需要加上最后一个依赖关系是因为 @Generated 注解在 Android 里还不可用,但它是原生的 Java 注解

Dagger 模块

要注入依赖,首先需要告诉框架我们能提供什么(比如说上下文)以及特定的对象应该怎样创建。为了完成注入,我们用 @Module 注释对一个特殊的类进行了注解(这样 Dagger 就能识别它了),寻找 @Provide 注解的方法,生成图表,能够返回我们所请求的对象。

看下面的例子,这里我们创建了一个模块,它会返回给我们 ConnectivityManager,所以我们要把 Context 对象传给这个模块的构造器。

@Module
public class ApplicationModule {
  private final Context context;

  public ApplicationModule(Context context) {
    this.context = context;
  }

  @Provides @Singleton
  public Context providesContext() {
    return context;
  }

  @Provides @Singleton
  public ConnectivityManager providesConnectivityManager(Context context) {
    return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  }
}
Dagger 中十分有意思的一点是简单地注解一个方法来提供一个单例(Singleton),就能处理所有从 Java 中继承过来的问题。

组件

当我们有一个模块的时候,我们需要告诉 Dagger 想把依赖注入到哪里:我们在一个 组件 Component 里完成依赖注入,这是一个我们特别创建的特殊注解接口。我们在这个接口里创造不同的方法,而接口的参数是我们想注入依赖关系的类。

下面给出一个例子并告诉 Dagger 我们想要 MainActivity 类能够接受 ConnectivityManager(或者在图表里的其它依赖对象)。我们只要做类似以下的事:

@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {

  void inject(MainActivity activity);
}
正如我们所见,@Component 注解有几个参数,一个是所支持的模块的数组,代表它能提供的依赖。这里既可以是 Context 也可以是 ConnectivityManager,因为它们在 ApplicationModule 类中有声明。

用法

这时,我们要做的是尽快创建组件(比如在应用的 onCreate 阶段)并返回它,那么类就能用它来注入依赖了:

为了让框架自动生成 DaggerApplicationComponent,我们需要构建项目以便 Dagger 能够扫描我们的代码,并生成我们需要的部分。

MainActivity 里,我们要做的两件事是用 @Inject 注解符对想要注入的属性进行注解,调用我们在 ApplicationComponent 接口中声明的方法(请注意后面一部分会因我们使用的注入类型的不同而变化,但这里简单起见我们不去管它),然后依赖就被注入了,我们就能自由使用他们:

public class MainActivity extends AppCompatActivity {
  @Inject
  ConnectivityManager manager;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ...
    ((App) getApplication()).getComponent().inject(this);
  }
}

总结

当然了,我们可以手动注入依赖,管理所有不同的对象,但 Dagger 消除了很多比如模板这样的“噪声”,给我们提供有用的附加品(比如 Singleton),而仅用 Java 处理将会很糟糕。


via: https://medium.com/di-101/di-101-part-1-81896c2858a0#.3hg0jj14o

作者:Roberto Orgiu 译者:GitFuture 校对:wxy

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

简介

Red Hat Enterprise Linux 是 Red Hat 公司的 Linux 发行版,面向商业市场,包括大型机。红帽公司从 Red Hat Enterprise Linux 5 开始对企业版 Linux 的每个版本提供 10 年的支持。而 Red Hat Enterprise Linux 常简称为 RHEL。

Red Hat Enterprise Linux 大约 3 年发布一个新版本。

下载

RHEL 是商业版本,并不提供免费下载和使用。需要购买 Red Hat 公司的商业服务才能合法取得,并得到商业支持。

可以使用 RHEL 的开源衍生版本来取得除了商业支持之外一样的软件,比如:CentOS。

安装

发行

最初,Red Hat Enterprise Linux 基于 Red Hat Linux,但使用较为保守的发布周期。后来版本都是基于 Fedora。大约每六个版本的 Fedora 会有一个新版本的 Red Hat Enterprise Linux 发布,因此:

  • Red Hat Linux 6.2 → Red Hat Linux 6.2E
  • Red Hat Linux 7.2 → Red Hat Enterprise Linux 2.1
  • Red Hat Linux 9 → Red Hat Enterprise Linux 3
  • Fedora Core 3 → Red Hat Enterprise Linux 4
  • Fedora Core 6 → Red Hat Enterprise Linux 5
  • Fedora 12 → Red Hat Enterprise Linux 6
  • Fedora 19 → Red Hat Enterprise Linux 7

当前版本

  • Red Hat Enterprise Linux 当前的最新版本是 7.4。
  • Red Hat Enterprise Linux 7 当前仅支持 64 位CPU:64-bit AMD、64-bit Intel、IBM POWER7 和 POWER8、IBM System z。可以将32位操作系统作为虚拟机运行,包括之前的RHEL版本。
  • 包含 Kernel 3.10 版本,支持 swap 内存压缩可保证显著减少 I/O 并提高性能,采用 NUMA (统一内存访问) 的调度和内存分配,支持 APIC (高级程序中断控制器) 虚拟化,全面的 DynTick 支持,将内核模块列入 黑名单,kpatch 动态内核补丁 (技术预览) 等等。
  • 存储和文件系统方面,RHEL 7.0 使用 LIO 内核目标子系统,支持快速设备为较慢的块设备提供缓存,引进了 LVM 缓存 (技术预览),将 XFS 作 为默认的文件系统。
  • 引进网络分组技术作为链路聚集的捆绑备用方法,对 NetworkManager 进行大量改进,提供动态防火墙守护进程 firewalld,加入 DNSSEC 域名系统安全扩展,附带 OpenLMI 用来管理 Linux 系统提供常用的基础 设施,引进了可信网络连接功能 (技术预览)等。
  • 对 KVM (基于内核的虚拟化) 提供了大量改进,诸如使用 virtio-blk-data-plane 提高快 I/O性能 (技术预览),支持 PCI 桥接,QEMU 沙箱,多队列 NIC, USB 3.0 支持 (技术预览) 等。
  • 引入 Linux 容器 Docker。
  • 编译工具链方面,RHEL 7.0 包含 GCC 4.8.x、glibc 2.17、GDB 7.6.1。
  • 包含 Ruby 2.0.0、Python 2.7.5、Java 7 等编程语言。
  • 包含 Apache 2.4、MariaDB 5.5、PostgreSQL 9.2 等。
  • 在系统和服务上,RHEL 7.0 使用 systemd 替换了 SysV。
  • 引入 Pacemaker 集群管理器,同时使用 keepalived 和 HAProxy 替换了负载均衡程序 Piranha。
  • 此外,还对安装程序 Anaconda 进行了重新设计和增强,并使用 引导装载程序 GRUB 2。

历史

派生版本

派生版本有 CentOS,Scientific Linux 及 Oracle Linux 等。

各版本比较:

免费下载免费使用技术支持 (商业)
RHEL付费
CentOS不提供
Scientific Linux不提供
Oracle Linux要求简单登记付费

注:部分资料来自维基百科。

2016 年 12 月 12 日, CentOS 维护人员 Karanbir Singh 高兴的宣布,期待已久的基于 Red Hat Enterprise Linux 的 CentOS Linux 7 (1611) 系统发布。

简介

CentOS(Community Enterprise Operating System)是Linux发布版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定发布的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。CentOS 完全遵守 Red Hat 的再发行政策,并且致力与上游产品在功能上完全兼容。CentOS 对组件的修改主要是去除 Red Hat 的商标及美工图。

下载

CentOS 从 7 开始,和 RHEL 7 一样都只支持 64 位架构。

DVD ISO

  • Intel & AMD/ 兼容 PC 64 位 4GB ISO 镜像,适用于 64-bit 位 PC ,点此下载

Everything ISO

  • Intel & AMD/ 兼容 PC 64 位 8GB ISO 镜像,适用于 64-bit 位 PC ,点此下载

CentOS 6

由于 CentOS 7 采用了一系列 systemd 相关的技术,因此还有相当多的产品环境的 Linux 服务器依旧使用 CentOS 6。

  • Intel & AMD/ 兼容 PC 64 位 ISO 镜像,适用于 64-bit 位 PC ,DVD 1DVD 2
  • Intel & AMD/ 兼容 PC 32 位 ISO 镜像,适用于 32-bit 位 PC ,DVD 1DVD 2

安装

发行

从 CentOS 7 开始,CentOS版本号有三个部份,主要和次要版本号分别对应于RHEL的主要版本与更新包,并使用第三部分代表发行的时间。当前最新版本是 CentOS 7.4-1708 (基于 RHEL 7.4)。

CentOS基本上会在对应的RHEL版本推出不久之后发行。

当前版本

一如每个主要版本的首个发行本,多数组件都已作出改动及更新至较新版本。最重大的改动计有:

  • 当前仅支持64位CPU。可以将32位操作系统作为虚拟机运行,包括之前的RHEL版本。
  • 包含 Kernel 3.10 版本,支持 swap 内存压缩可保证显著减少 I/O 并提高性能,采用 NUMA (统一内存访问) 的调度和内存分配,支持 APIC (高级程序中断控制器) 虚拟化,全面的 DynTick 支持,将内核模块列入 黑名单,kpatch 动态内核补丁 (技术预览) 等等。
  • 存储和文件系统方面,使用 LIO 内核目标子系统,支持快速设备为较慢的块设备提供缓存,引进了 LVM 缓存 (技术预览),将 XFS 作 为默认的文件系统。
  • 引进网络分组技术作为链路聚集的捆绑备用方法,对 NetworkManager 进行大量改进,提供动态防火墙守护进程 firewalld,加入 DNSSEC 域名系统安全扩展,附带 OpenLMI 用来管理 Linux 系统提供常用的基础 设施,引进了可信网络连接功能 (技术预览)等。
  • 对 KVM (基于内核的虚拟化) 提供了大量改进,诸如使用 virtio-blk-data-plane 提高快 I/O性能 (技术预览),支持 PCI 桥接,QEMU 沙箱,多队列 NIC, USB 3.0 支持 (技术预览) 等。
  • 引入 Linux 容器 Docker。
  • 编译工具链方面,包含 GCC 4.8.x、glibc 2.17、GDB 7.6.1。
  • 包含 Ruby 2.0.0、Python 2.7.5、Java 7 等编程语言。
  • 包含 Apache 2.4、MariaDB 5.5、PostgreSQL 9.2 等。
  • 在系统和服务上,使用 systemd 替换了 SysV。
  • 引入 Pacemaker 集群管理器,同时使用 keepalived 和 HAProxy 替换了负载均衡程序 Piranha。
  • 此外,还对安装程序 Anaconda 进行了重新设计和增强,并使用 引导装载程序 GRUB 2。

历史

CentOS的发行历史就是RHEL的发行历史,亦步亦趋。

支持周期

CentOS 版本发布日期完全更新维护更新
32004年3月19日2006年7月20日2010年10月31日
42005年3月9日2009年3月31日2012年2月29日
52007年4月12日2014年一季度2017年3月31日
62011年7月10日2017年二季度2020年11月30日
72014年7月7日2020年四季度2024年6月30日

注:部分资料来自维基百科。

Samba 是一个自由的开源软件套件,用于实现 Windows 操作系统与 Linux/Unix 系统之间的无缝连接及共享资源。

Samba 不仅可以通过 SMB/CIFS 协议组件来为 Windows 与 Linux 系统之间提供独立的文件及打印机共享服务,它还能实现 活动目录 Active Directory 域控制器 Domain Controller 的功能,或者让 Linux 主机加入到域环境中作为域成员服务器。当前的 Samba4 版本实现的 AD DC 域及林功能级别可以取代 Windows 2008 R2 系统的域相关功能。

本系列的文章的主要内容是使用 Samba4 软件来配置活动目录域控制器,涉及到 Ubuntu、CentOS 和 Windows 系统相关的以下主题:

  • 第 1 节:在 Ubuntu 系统上使用 Samba4 来创建活动目录架构
  • 第 2 节:在 Linux 命令行下管理 Samba4 AD 架构
  • 第 3 节:在 Windows 10 操作系统上安装 RSAT 工具来管理 Samba4 AD
  • 第 4 节:从 Windows 中管理 Samba4 AD 域控制器 DNS 和组策略
  • 第 5 节:使用 Sysvol Replication 复制功能把 Samba 4 DC 加入到已有的 AD
  • 第 6 节:从 Linux DC 服务器通过 GOP 来添加一个共享磁盘并映射到 AD
  • 第 7 节:把 Ubuntu 16.04 系统主机作为域成员服务器添加到 AD
  • 第 8 节:把 CenterOS 7 系统主机作为域成员服务器添加到 AD
  • 第 9 节:在 AD Intranet 区域创建使用 kerberos 认证的 Apache Website

这篇指南将阐明在 Ubuntu 16.04 和 Ubuntu 14.04 操作系统上安装配置 Samba4 作为域控服务器组件的过程中,你需要注意的每一个步骤。

以下安装配置文档将会说明在 Windows 和 Linux 的混合系统环境中,关于用户、机器、共享卷、权限及其它资源信息的主要配置点。

环境要求:

  1. Ubuntu 16.04 服务器安装
  2. Ubuntu 14.04 服务器安装
  3. 为你的 AD DC 服务器设置静态IP地址

第一步:初始化 Samba4 安装环境

1、 在开始安装 Samba4 AD DC 之前,让我们先做一些准备工作。首先运行以下命令来确保系统已更新了最新的安全特性,内核及其它补丁:

$ sudo apt-get update 
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

2、 其次,打开服务器上的 /etc/fstab 文件,确保文件系统分区的 ACL 已经启用 ,如下图所示。

通常情况下,当前常见的 Linux 文件系统,比如 ext3、ext4、xfs 或 btrfs 都默认支持并已经启用了 ACL 。如果未设置,则打开并编辑 /etc/fstab 文件,在第三列添加 acl,然后重启系统以使用修改的配置生效。

Enable ACL's on Linux Filesystem

启动 Linux 文件系统的 ACL 功能

3、 最后使用一个具有描述性的名称来设置主机名 ,比如这往篇文章所使用的 adc1。通过编辑 /etc/hostname 文件或使用使用下图所示的命令来设置主机名。

$ sudo hostnamectl set-hostname adc1

为了使修改的主机名生效必须重启服务器。

第二步: 为 Samba4 AD DC 服务器安装必需的软件包

4、 为了让你的服务器转变为域控制器,你需要在服务器上使用具有 root 权限的账号执行以下命令来安装 Samba 套件及所有必需的软件包。

$ sudo apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind

Install Samba on Ubuntu

在 Ubuntu 系统上安装 Samba 套件

5、 安装包在执行的过程中将会询问你一系列的问题以便完成域控制器的配置。

在第一屏中你需要以大写为 Kerberos 默认 REALM 输入一个名字。以大写为你的域环境输入名字,然后单击回车继续。

Configuring Kerberos Authentication

配置 Kerosene 认证服务

6、 下一步,输入你的域中 Kerberos 服务器的主机名。使用和上面相同的名字,这一次使用小写,然后单击回车继续。

Set Hostname Kerberos Server

设置 Kerberos 服务器的主机名

7、 最后,指定 Kerberos realm 管理服务器的主机名。使用更上面相同的名字,单击回车安装完成。

Set Hostname Administrative Server

设置管理服务器的主机名

第三步:为你的域环境开启 Samba AD DC 服务

8、 在为域服务器配置 Samba 服务之前,先运行如下命令来停止并禁用所有 Samba 进程。

$ sudo systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service
$ sudo systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service

9、 下一步,重命名或删除 Samba 原始配置文件。在开启 Samba 服务之前,必须执行这一步操作,因为在开启服务的过程中 Samba 将会创建一个新的配置文件,如果检测到原有的 smb.conf 配置文件则会报错。

$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.initial

10、 现在,使用 root 权限的账号并接受 Samba 提示的默认选项,以交互方式启动 域供给 domain provision

还有,输入正确的 DNS 服务器地址并且为 Administrator 账号设置强密码。如果使用的是弱密码,则域供给过程会失败。

$ sudo samba-tool domain provision --use-rfc2307 –interactive

Samba Domain Provisioning

Samba 域供给

11、 最后,使用以下命令重命名或删除 Kerberos 认证在 /etc 目录下的主配置文件,并且把 Samba 新生成的 Kerberos 配置文件创建一个软链接指向 /etc 目录。

$ sudo mv /etc/krb6.conf /etc/krb5.conf.initial
$ sudo ln –s /var/lib/samba/private/krb5.conf /etc/

Create Kerberos Configuration

创建 Kerberos 配置文件

12、 启动并开启 Samba 活动目录域控制器后台进程

$ sudo systemctl start samba-ad-dc.service
$ sudo systemctl status samba-ad-dc.service
$ sudo systemctl enable samba-ad-dc.service

Enable Samba Active Directory Domain Controller

开启 Samba 活动目录域控制器服务

13、 下一步,使用 netstat 命令 来验证活动目录启动的服务是否正常。

$ sudo netstat –tulpn| egrep ‘smbd|samba’

Verify Samba Active Directory

验证 Samba 活动目录

第四步: Samba 最后的配置

14、 此刻,Samba 应该跟你想像的一样,完全运行正常。Samba 现在实现的域功能级别可以完全跟 Windows AD DC 2008 R2 相媲美。

可以使用 samba-tool 工具来验证 Samba 服务是否正常:

$ sudo samba-tool domain level show

Verify Samba Domain Level

验证 Samba 域服务级别

15、 为了满足 DNS 本地解析的需求,你可以编辑网卡配置文件,修改 dns-nameservers 参数的值为域控制器地址(使用 127.0.0.1 作为本地 DNS 解析地址),并且设置 dns-search 参数为你的 realm 值。

$ sudo cat /etc/network/interfaces
$ sudo cat /etc/resolv.conf

Configure DNS for Samba AD

为 Samba 配置 DNS 服务器地址

设置完成后,重启服务器并检查解析文件是否指向正确的 DNS 服务器地址。

16、 最后,通过 ping 命令查询结果来检查某些重要的 AD DC 记录是否正常,使用类似下面的命令,替换对应的域名。

$ ping –c3 tecmint.lan       # 域名
$ ping –c3 adc1.tecmint.lan  # FQDN
$ ping –c3 adc1              # 主机

Check Samba AD DNS Records

检查 Samba AD DNS 记录

执行下面的一些查询命令来检查 Samba 活动目录域控制器是否正常。

$ host –t A tecmint.lan
$ host –t A adc1.tecmint.lan
$ host –t SRV _kerberos._udp.tecmint.lan  # UDP Kerberos SRV record
$ host -t SRV _ldap._tcp.tecmint.lan # TCP LDAP SRV record

17、 并且,通过请求一个域管理员账号的身份来列出缓存的票据信息以验证 Kerberos 认证是否正常。注意域名部分使用大写。

$ kinit [email protected]
$ klist

Check Kerberos Authentication on Domain

检查域环境中的 Kerberos 认证是否正确

至此! 你当前的网络环境中已经完全运行着一个 AD 域控制器,你现在可以把 Windows 或 Linux 系统的主机集成到 Samba AD 中了。

在下一期的文章中将会包括其它 Samba AD 域的主题,比如,在 Samba 命令行下如何管理你的域控制器,如何把 Windows 10 系统主机添加到同一个域环境中,如何使用 RSAT 工具远程管理 Samba AD 域,以及其它重要的主题。


via: http://www.tecmint.com/install-samba4-active-directory-ubuntu/

作者:Matei Cezar 译者:rusking 校对:wxy

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

基于 Debian 衍生的 PIXEL 将把树莓派体验带到 x86 上,正如树莓派基金会所宣称的,“我们不只是要为树莓派创造最好的桌面环境,而是要创造最好的桌面环境,如是。”

树莓派基金会将其今年九月份发布的 PIXEL OS 移植到了 PC 和 Mac 上。

PIXEL 的意思是“Pi Improved Xwindows Environment, Lightweight”,即“树莓派改进的轻量级 Xwindows 环境”,树莓派的创始人 Eben Upton 说,“我们觉得大多数用户都希望要这样的一个桌面环境:干净整洁而现代化的用户界面;提升工作效率的生产力软件和编程工具,包括自由软件和专有软件。”

挖掘这个操作系统的其它用途的想法在这几个月来一直浮现在 Upton 的脑海中,正如他写的“在夏天时,我们就问自己一个简单的问题:如果我们这么喜欢 PIXEL,为什么我们非要人们买树莓派才能运行它呢?”

Upton 说他和其他的伙伴们注意到“有大量可以用来安装的 PC 和 Mac 机器丢在那里,它们可以很好的运行 x86 Debian”,并且问他们,“我们可以为这些机器做些什么吗?”

现在答案就是“YES”,树莓派基金会发布了该操作系统的 x86 体验版。

这个操作系统对硬件的需求很低,Upton 说 PIXEL “将运行在像我的 ThinkPad X40 这样的老机器上,它只要 512MB 内存就行。”Upton 认为这样的硬件需求很符合还在使用老式 PC 的学校,这就意味着学生们可以在学校的 x86 上使用和家里的树莓派上一样的 PIXEL 环境。

PIXEL 可以从 DVD 或 USB 盘启动,或者你也可以将它安装到计算机上。你可以下载这个 1.3GB 的 ISO 镜像试试,不过,有些型号的 Mac 可能不能用这个引导镜像启动。Upton 也表示,这还是一个早期发布版本,还在继续改进。

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 的话。