2019年10月

一个月前,我们发起了徽标公开征集活动,这次活动得到了很多成员和爱好者的积极关注,截止至昨天,我们收到了 25 位设计师提交的多份设计投稿。

按照计划,我们将从今天开始,至 10 月 30 日公示投稿,并发起投票活动请大家投票支持。并在投票结果的基础上,由我们的管理委员会做最终裁定(意即,并不会以投票结果作为最终结果,投票结果会作为一个重要的参考因素)。

本次公开投票将在微信投票上进行,敬请来自其他平台的读者和爱好者移步至微信投票。

此外,在活动中,一直有声音表示,原本的徽标就挺好,或者原本徽标只需要做适当修改即可。对于这种意见,说实话我是有点吃惊的。不过尊重大家的意见,我决定将原本的徽标也放入评选,如果原本的徽标胜出,那这次的一等奖可能就要空缺了,我们就不会更换徽标(或对原本的徽标做少量修改)。

以下是这次投稿的徽标,

  • 按投稿时间列出
  • 变体视作同一徽标
  • 尺寸裁剪至同一大小(128px),缩放过程中会有精度损失
  • 设计思路在此不展示,可访问在 GitHub 上的原始投稿了解

徽标投稿

1、原本的徽标

2、wxy

地址: https://github.com/LCTT/logo/tree/master/wxy

3、RedInLinux

地址:https://github.com/LCTT/logo/tree/master/RedInLinux

4、1466587594

地址:https://github.com/LCTT/logo/tree/master/1466587594

5、tinnx

地址:https://github.com/LCTT/logo/tree/master/tinnx

6、alim0x

地址:https://github.com/LCTT/logo/tree/master/alim0x

7、flag

地址:https://github.com/LCTT/logo/tree/master/flag-2

8、WSJ

地址:https://github.com/LCTT/logo/tree/master/WSJ

9、logo0281

地址:https://github.com/LCTT/logo/tree/master/logo0281

10、logo0964

地址:https://github.com/LCTT/logo/tree/master/logo0964

11、long

地址:https://github.com/LCTT/logo/tree/master/long

12、kokialoves

地址:https://github.com/LCTT/logo/tree/master/kokialoves

13、hacker

地址:https://github.com/LCTT/logo/tree/master/hacker

14、lartpang

地址:https://github.com/LCTT/logo/tree/master/lartpang

15、OLC

地址:https://github.com/LCTT/logo/tree/master/OLC

16、garywill

地址:https://github.com/LCTT/logo/tree/master/garywill

17、lightyisu

地址:https://github.com/LCTT/logo/tree/master/lightyisu

18、lightyisu2

地址:https://github.com/LCTT/logo/blob/master/lightyisu2

19、icekylin-design-1

地址:https://github.com/LCTT/logo/tree/master/icekylin-design

20、icekylin-design-2

地址:https://github.com/LCTT/logo/tree/master/icekylin-design

21、icekylin-design-3

地址:https://github.com/LCTT/logo/tree/master/icekylin-design

22、whsasf\_work

地址:https://github.com/LCTT/logo/tree/master/whsasf_work

23、whsasf\_work2

地址:https://github.com/LCTT/logo/tree/master/whsasf_work2

24、whsasf\_work3

地址:https://github.com/LCTT/logo/tree/master/whsasf_work3

25、CodingOctocat

地址:https://github.com/LCTT/logo/tree/master/CodingOctocat

26、JUNEN-1

地址:https://github.com/LCTT/logo/tree/master/JUNEN

27、JUNEN-2

地址:https://github.com/LCTT/logo/tree/master/JUNEN

28、ZIN

地址:https://github.com/LCTT/logo/tree/master/ZIN

29、Fine

地址:https://github.com/LCTT/logo/tree/master/Fine

30、SmarterC

地址:https://github.com/LCTT/logo/blob/master/SmarterC

31、water0902

地址:https://github.com/LCTT/logo/tree/master/water0902

32、logo yk

地址:https://github.com/LCTT/logo/blob/master/logo%20yk

33、schiway

地址:https://github.com/LCTT/logo/blob/master/schiway

34、aimeDesign

地址:https://github.com/LCTT/logo/blob/master/aimeDesign

在 Manjaro 18.0(Illyria)发布一年之际,该团队发布了他们的下一个重要版本,即 Manjaro 18.1,代号为 “Juhraya”。该团队还发布了一份官方声明,称 Juhraya 包含了许多改进和错误修复。

Manjaro 18.1 中的新功能

以下列出了 Manjaro 18.1 中的一些新功能和增强功能:

  • 可以在 LibreOffice 或 Free Office 之间选择
  • Xfce 版的新 Matcha 主题
  • 在 KDE 版本中重新设计了消息传递系统
  • 使用 bhau 工具支持 Snap 和 FlatPak 软件包

最小系统需求

  • 1 GB RAM
  • 1 GHz 处理器
  • 大约 30 GB 硬盘空间
  • 互联网连接
  • 启动介质(USB/DVD)

安装 Manjaro 18.1(KDE 版)的分步指南

要在系统中开始安装 Manjaro 18.1(KDE 版),请遵循以下步骤:

步骤 1) 下载 Manjaro 18.1 ISO

在安装之前,你需要从位于 这里 的官方下载页面下载 Manjaro 18.1 的最新副本。由于我们这里介绍的是 KDE 版本,因此我们选择 KDE 版本。但是对于所有桌面环境(包括 Xfce、KDE 和 Gnome 版本),安装过程都是相同的。

步骤 2) 创建 USB 启动盘

从 Manjaro 下载页面成功下载 ISO 文件后,就可以创建 USB 磁盘了。将下载的 ISO 文件复制到 USB 磁盘中,然后创建可引导磁盘。确保将你的引导设置更改为使用 USB 引导,并重新启动系统。

步骤 3) Manjaro Live 版安装环境

系统重新启动时,它将自动检测到 USB 驱动器,并开始启动进入 Manjaro Live 版安装屏幕。

Boot-Manjaro-18-1-kde-installation

接下来,使用箭头键选择 “ 启动:Manjaro x86_64 kde Boot: Manjaro x86_64 kde ”,然后按回车键以启动 Manjaro 安装程序。

安装 4) 选择启动安装程序

接下来,将启动 Manjaro 安装程序,如果你已连接到互联网,Manjaro 将自动检测你的位置和时区。单击 “ 启动安装程序 Launch Installer ”,开始在系统中安装 Manjaro 18.1 KDE 版本。

Choose-Launch-Installaer-Manjaro18-1-kde

步骤 5) 选择语言

接下来,安装程序将带你选择你的首选语言。

Choose-Language-Manjaro18-1-Kde-Installation

选择你想要的语言,然后单击“ 下一步 Next ”。

步骤 6) 选择时区和区域

在下一个屏幕中,选择所需的时区和区域,然后单击“ 下一步 Next ”继续。

Select-Location-During-Manjaro18-1-KDE-Installation

步骤 7) 选择键盘布局

在下一个屏幕中,选择你喜欢的键盘布局,然后单击“ 下一步 Next ”继续。

Select-Keyboard-Layout-Manjaro18-1-kde-installation

步骤 8) 选择分区类型

这是安装过程中非常关键的一步。 它将允许你选择分区方式:

  • 擦除磁盘
  • 手动分区
  • 并存安装
  • 替换分区

如果在 VM(虚拟机)中安装 Manjaro 18.1,则将看不到最后两个选项。

如果你不熟悉 Manjaro Linux,那么我建议你使用第一个选项( 擦除磁盘 Erase Disk ),它将为你自动创建所需的分区。如果要创建自定义分区,则选择第二个选项“ 手动分区 Manual Partitioning ”,顾名思义,它将允许我们创建自己的自定义分区。

在本教程中,我将通过选择“ 手动分区 Manual Partitioning ”选项来创建自定义分区:

Manual-Partition-Manjaro18-1-KDE

选择第二个选项,然后单击“ 下一步 Next ”继续。

如我们所见,我有 40 GB 硬盘,因此我将在其上创建以下分区,

  • /boot – 2GB(ext4)
  • / – 10 GB(ext4)
  • /home – 22 GB(ext4)
  • /opt – 4 GB(ext4)
  • 交换分区 Swap – 2 GB

当我们在上方窗口中单击“ 下一步 Next ”时,将显示以下屏幕,选择“ 新建分区表 new partition table ”:

Create-Partition-Table-Manjaro18-1-Installation

点击“ 确定 OK ”。

现在选择可用空间,然后单击“ 创建 create ”以将第一个分区设置为大小为 2 GB 的 /boot

boot-partition-manjaro-18-1-installation

单击“ 确定 OK ”以继续操作,在下一个窗口中再次选择可用空间,然后单击“ 创建 create ”以将第二个分区设置为 /,大小为 10 GB:

slash-root-partition-manjaro18-1-installation

同样,将下一个分区创建为大小为 22 GB 的 /home

home-partition-manjaro18-1-installation

到目前为止,我们已经创建了三个分区作为主分区,现在创建下一个分区作为扩展分区:

Extended-Partition-Manjaro18-1-installation

单击“ 确定 OK ”以继续。

创建大小分别为 5 GB 和 2 GB 的 /opt 和交换分区作为逻辑分区。

opt-partition-manjaro-18-1-installation

swap-partition-manjaro18-1-installation

完成所有分区的创建后,单击“ 下一步 Next ”:

choose-next-after-partition-creation

步骤 9) 提供用户信息

在下一个屏幕中,你需要提供用户信息,包括你的姓名、用户名、密码、计算机名等:

User-creation-details-manjaro18-1-installation

提供所有信息后,单击“ 下一步 Next ”继续安装。

在下一个屏幕中,系统将提示你选择办公套件,因此请做出适合你的选择:

Office-Suite-Selection-Manjaro18-1

单击“ 下一步 Next ”以继续。

步骤 10) 摘要信息

在完成实际安装之前,安装程序将向你显示你选择的所有详细信息,包括语言、时区、键盘布局和分区信息等。单击“ 安装 Install ”以继续进行安装过程。

Summary-manjaro18-1-installation

步骤 11) 进行安装

现在,实际的安装过程开始,一旦完成,请重新启动系统以登录到 Manjaro 18.1 KDE 版:

Manjaro18-1-Installation-Progress

Restart-Manjaro-18-1-after-installation

步骤 12) 安装成功后登录

重新启动后,我们将看到以下登录屏幕,使用我们在安装过程中创建的用户凭据登录:

Login-screen-after-manjaro-18-1-installation

点击“ 登录 Login ”。

KDE-Desktop-Screen-Manjaro-18-1

就是这样!你已经在系统中成功安装了 Manjaro 18.1 KDE 版,并探索了所有令人兴奋的功能。请在下面的评论部分中发表你的反馈和建议。


via: https://www.linuxtechi.com/install-manjaro-18-1-kde-edition-screenshots/

作者:Pradeep Kumar 选题:lujun9972 译者:wxy 校对:wxy

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

使用事先设计好的故障以确保你的代码达到预期的结果,并遵循 .NET xUnit.net 测试框架来进行测试。

在变异测试是 TDD 的演变 一文中,我谈到了迭代的力量。在可度量的测试中,迭代能够保证找到问题的解决方案。在那篇文章中,我们讨论了迭代法帮助确定实现计算给定数字平方根的代码。

我还演示了最有效的方法是找到可衡量的目标或测试,然后以最佳猜测值开始迭代。正如所预期的,第一次测试通常会失败。因此,必须根据可衡量的目标或测试对失败的代码进行完善。根据运行结果,对测试值进行验证或进一步加以完善。

在此模型中,学习获得解决方案的唯一方法是反复失败。这听起来有悖常理,但它确实有效。

按照这种分析,本文探讨了在构建包含某些依赖项的解决方案时使用 DevOps 的最佳方法。第一步是编写一个预期结果失败的用例。

依赖性问题是你不能依赖它们

正如 迈克尔·尼加德 Michael Nygard 在《没有终结状态的架构》中机智的表示的那样,依赖问题是一个很大的话题,最好留到另一篇文章中讨论。在这里,你将会看到依赖项给项目带来的一些潜在问题,以及如何利用测试驱动开发(TDD)来避免这些陷阱。

首先,找到现实生活中的一个挑战,然后看看如何使用 TDD 解决它。

谁把猫放出来?

 title=

在敏捷开发环境中,通过定义期望结果开始构建解决方案会很有帮助。通常,在 用户故事 user story 中描述期望结果:

我想使用我的家庭自动化系统(HAS)来控制猫何时可以出门,因为我想保证它在夜间的安全。

现在你已经有了一个用户故事,你需要通过提供一些功能要求(即指定验收标准)来对其进行详细说明。 从伪代码中描述的最简单的场景开始:

场景 1:在夜间关闭猫门

  • 用时钟监测到了晚上的时间
  • 时钟通知 HAS 系统
  • HAS 关闭支持物联网(IoT)的猫门

分解系统

开始构建之前,你需要将正在构建的系统(HAS)进行分解(分解为依赖项)。你必须要做的第一件事是识别任何依赖项(如果幸运的话,你的系统没有依赖项,这将会更容易,但是,这样的系统可以说不是非常有用)。

从上面的简单场景中,你可以看到所需的业务成果(自动控制猫门)取决于对夜间情况监测。这种依赖性取决于时钟。但是时钟是无法区分白天和夜晚的。需要你来提供这种逻辑。

正在构建的系统中的另一个依赖项是能够自动访问猫门并启用或关闭它。该依赖项很可能取决于具有 IoT 功能的猫门提供的 API。

依赖管理面临快速失败

为了满足依赖项,我们将构建确定当前时间是白天还是晚上的逻辑。本着 TDD 的精神,我们将从一个小小的失败开始。

有关如何设置此练习所需的开发环境和脚手架的详细说明,请参阅我的上一篇文章。我们将重用相同的 NET 环境和 xUnit.net 框架。

接下来,创建一个名为 HAS(“家庭自动化系统”)的新项目,创建一个名为 UnitTest1.cs 的文件。在该文件中,编写第一个失败的单元测试。在此单元测试中,描述你的期望结果。例如,当系统运行时,如果时间是晚上 7 点,负责确定是白天还是夜晚的组件将返回值 Nighttime

这是描述期望值的单元测试:

using System;
using Xunit;

namespace unittest
{
   public class UnitTest1
   {
       DayOrNightUtility dayOrNightUtility = new DayOrNightUtility();

       [Fact]
       public void Given7pmReturnNighttime()
       {
           var expected = "Nighttime";
           var actual = dayOrNightUtility.GetDayOrNight();
           Assert.Equal(expected, actual);
       }
   }
}

至此,你可能已经熟悉了单元测试的结构。快速复习一下:在此示例中,通过给单元测试一个描述性名称Given7pmReturnNighttime 来描述期望结果。然后,在单元测试的主体中,创建一个名为 expected 的变量,并为该变量指定期望值(在该示例中,值为 Nighttime)。然后,为实际值指定一个 actual(在组件或服务处理一天中的时间之后可用)。

最后,通过断言期望值和实际值是否相等来检查是否满足期望结果:Assert.Equal(expected, actual)

你还可以在上面的列表中看到名为 dayOrNightUtility 的组件或服务。该模块能够接收消息GetDayOrNight,并且返回 string 类型的值。

同样,本着 TDD 的精神,描述的组件或服务还尚未构建(仅为了后面说明在此进行描述)。构建这些是由所描述的期望结果来驱动的。

app 文件夹中创建一个新文件,并将其命名为 DayOrNightUtility.cs。将以下 C# 代码添加到该文件中并保存:

using System;

namespace app {
   public class DayOrNightUtility {
       public string GetDayOrNight() {
           string dayOrNight = "Undetermined";
           return dayOrNight;
       }
   }
}

现在转到命令行,将目录更改为 unittests 文件夹,然后运行:

[Xunit.net 00:00:02.33] unittest.UnitTest1.Given7pmReturnNighttime [FAIL]
Failed unittest.UnitTest1.Given7pmReturnNighttime
[...]

恭喜,你已经完成了第一个失败的单元测试。单元测试的期望结果是 DayOrNightUtility 方法返回字符串 Nighttime,但相反,它返回是 Undetermined

修复失败的单元测试

修复失败的测试的一种快速而粗略的方法是将值 Undetermined 替换为值 Nighttime 并保存更改:

using System;

namespace app {
   public class DayOrNightUtility {
       public string GetDayOrNight() {
           string dayOrNight = "Nighttime";
           return dayOrNight;
       }
   }
}

现在运行,成功了。

Starting test execution, please wait...

Total tests: 1. Passed: 1. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 2.6470 Seconds

但是,对值进行硬编码基本上是在作弊,最好为 DayOrNightUtility 方法赋予一些智能。修改 GetDayOrNight 方法以包括一些时间计算逻辑:

public string GetDayOrNight() {
    string dayOrNight = "Daylight";
    DateTime time = new DateTime();
    if(time.Hour < 7) {
        dayOrNight = "Nighttime";
    }
    return dayOrNight;
}

该方法现在从系统获取当前时间,并与 Hour 比较,查看其是否小于上午 7 点。如果小于,则处理逻辑将 dayOrNight 字符串值从 Daylight 转换为 Nighttime。现在,单元测试通过。

测试驱动解决方案的开始

现在,我们已经开始了基本的单元测试,并为我们的时间依赖项提供了可行的解决方案。后面还有更多的测试案例需要执行。

在下一篇文章中,我将演示如何对白天时间进行测试以及如何在整个过程中利用故障。


via: https://opensource.com/article/19/9/mutation-testing-example-tdd

作者:Alex Bunardzic 选题:lujun9972 译者:Morisun029 校对:wxy

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

几周前,我买了一台 英特尔 NUC 迷你 PC。我在上面安装了 Linux,我非常喜欢它。这个小巧的无风扇机器取代了台式机那庞大的 CPU。

英特尔 NUC 通常采用准系统形式,这意味着它没有任何内存、硬盘,也显然没有操作系统。许多基于 Linux 的微型 PC 定制化英特尔 NUC 并添加磁盘、RAM 和操作系统将它出售给终端用户。

不用说,它不像大多数其他台式机那样带有键盘、鼠标或屏幕。

英特尔 NUC 是一款出色的设备,如果你要购买台式机,我强烈建议你购买它。如果你正在考虑购买英特尔 NUC,你需要买一些配件,以便开始使用它。

基本的英特尔 NUC 配件

*文章中的 Amazon 链接是(原文的)受益链接。请阅读我们的受益政策

外围设备:显示器、键盘和鼠标

这很容易想到。你需要有屏幕、键盘和鼠标才能使用计算机。你需要一台有 HDMI 连接的显示器和一个 USB 或无线键盘鼠标。如果你已经有了这些东西,那你可以继续。

如果你正在寻求建议,我建议购买 LG IPS LED 显示器。我有两台 22 英寸的型号,我对它提供的清晰视觉效果感到满意。

这些显示器有一个简单的固定支架。如果要使显示器可以上下移动并纵向旋转,请尝试使用 HP EliteDisplay 显示器

HP EliteDisplay Monitor

我在多屏设置中同时连接了三台显示器。一台显示器连接到指定的 HDMI 端口。两台显示器通过 Club 3D 的 Thunderbolt 转 HDMI 分配器连接到 Thunderbolt 端口。

你也可以选择超宽显示器。我对此没有亲身经历。

内存

英特尔 NUC 有两个内存插槽,最多可支持 32GB 内存。由于我的是 i3 核心处理器,因此我选择了 Crucial 的 8GB DDR4 内存,价格约为 $33。

8 GB 内存在大多数情况下都没问题,但是如果你的是 i7 核心处理器,那么可以选择 16GB 内存,价格约为 $67。你可以加两条,以获得最大 32GB。选择全在于你。

硬盘(重要)

英特尔 NUC 同时支持 2.5 英寸驱动器和 M.2 SSD,因此你可以同时使用两者以获得更多存储空间。

2.5 英寸插槽可同时容纳 SSD 和 HDD。我强烈建议选择 SSD,因为它比 HDD 快得多。480GB 2.5 英寸的价格是 $60。我认为这是一个合理的价格。

2.5 英寸驱动器的标准 SATA 口速度为 6 Gb/秒。根据你是否选择 NVMe SSD,M.2 插槽可能会更快。 NVMe(非易失性内存主机控制器接口规范)SSD 的速度比普通 SSD(也称为 SATA SSD)快 4 倍。但是它们可能也比 SATA M2 SSD 贵一些。

当购买 M.2 SSD 时,请检查产品图片。无论是 NVMe 还是 SATA SSD,都应在磁盘本身的图片中提到。你可以考虑使用经济的三星 EVO NVMe M.2 SSD

Make sure that your are buying the faster NVMe M2 SSD

M.2 插槽和 2.5 英寸插槽中的 SATA SSD 具有相同的速度。这就是为什么如果你不想选择昂贵的 NVMe SSD,建议你选择 2.5 英寸 SATA SSD,并保留 M.2 插​​槽供以后升级。

交流电源线

当我拿到 NUC 时,为惊讶地发现,尽管它有电源适配器,但它并没有插头。

正如一些读者指出的那样,你可能有完整的电源线。这取决于你的地理区域和供应商。因此,请检查产品说明和用户评论,以验证其是否具有完整的电源线。

其他配套配件

你需要使用 HDMI 线缆连接显示器。如果你要购买新显示器,通常应会有一根线缆。

如果要使用 M.2 插槽,那么可能需要螺丝刀。英特尔 NUC 是一款出色的设备,你只需用手旋转四个脚即可拧开底部面板。你必须打开设备才能放置内存和磁盘。

Intel NUC with Security Cable | Image Credit Intel

NUC 还有防盗孔,可与防盗绳一起使用。在业务环境中,建议使用防盗绳保护计算机安全。购买防盗绳几美元便可节省数百美元。

你使用什么配件?

这些就是我在使用和建议使用的英特尔 NUC 配件。你呢?如果你有一台 NUC,你会使用哪些配件并推荐给其他 NUC 用户?


via: https://itsfoss.com/intel-nuc-essential-accessories/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

本教程中,你将学习如何在 Ubuntu Linux 上安装和使用开源数据库 PostgreSQL。

PostgreSQL (又名 Postgres) 是一个功能强大的自由开源的关系型数据库管理系统 (RDBMS) ,其在可靠性、稳定性、性能方面获得了业内极高的声誉。它旨在处理各种规模的任务。它是跨平台的,而且是 macOS Server 的默认数据库。

如果你喜欢简单易用的 SQL 数据库管理器,那么 PostgreSQL 将是一个正确的选择。PostgreSQL 对标准的 SQL 兼容的同时提供了额外的附加特性,同时还可以被用户大量扩展,用户可以添加数据类型、函数并执行更多的操作。

之前我曾论述过 在 Ubuntu 上安装 MySQL。在本文中,我将向你展示如何安装和配置 PostgreSQL,以便你随时可以使用它来满足你的任何需求。

在 Ubuntu 上安装 PostgreSQL

PostgreSQL 可以从 Ubuntu 主存储库中获取。然而,和许多其它开发工具一样,它可能不是最新版本。

首先在终端中使用 apt 命令 检查 Ubuntu 存储库 中可用的 PostgreSQL 版本:

apt show postgresql

在我的 Ubuntu 18.04 中,它显示 PostgreSQL 的可用版本是 10(10+190 表示版本 10)而 PostgreSQL 版本 11 已经发布。

Package: postgresql
Version: 10+190
Priority: optional
Section: database
Source: postgresql-common (190)
Origin: Ubuntu

根据这些信息,你可以自主决定是安装 Ubuntu 提供的版本还是还是获取 PostgreSQL 的最新发行版。

我将向你介绍这两种方法:

方法一:通过 Ubuntu 存储库安装 PostgreSQL

在终端中,使用以下命令安装 PostgreSQL:

sudo apt update
sudo apt install postgresql postgresql-contrib

根据提示输入你的密码,依据于你的网速情况,程序将在几秒到几分钟安装完成。说到这一点,随时检查 Ubuntu 中的各种网络带宽

什么是 postgresql-contrib?

postgresql-contrib 或者说 contrib 包,包含一些不属于 PostgreSQL 核心包的实用工具和功能。在大多数情况下,最好将 contrib 包与 PostgreSQL 核心一起安装。

方法二:在 Ubuntu 中安装最新版本的 PostgreSQL 11

要安装 PostgreSQL 11, 你需要在 sources.list 中添加官方 PostgreSQL 存储库和证书,然后从那里安装它。

不用担心,这并不复杂。 只需按照以下步骤。

首先添加 GPG 密钥:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

现在,使用以下命令添加存储库。如果你使用的是 Linux Mint,则必须手动替换你的 Mint 所基于的 Ubuntu 版本号:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

现在一切就绪。使用以下命令安装 PostgreSQL:

sudo apt update
sudo apt install postgresql postgresql-contrib

PostgreSQL GUI 应用程序

你也可以安装用于管理 PostgreSQL 数据库的 GUI 应用程序(pgAdmin):

sudo apt install pgadmin4

PostgreSQL 配置

你可以通过执行以下命令来检查 PostgreSQL 是否正在运行:

service postgresql status

通过 service 命令,你可以启动、关闭或重启 postgresql。输入 service postgresql 并按回车将列出所有选项。现在,登录该用户。

默认情况下,PostgreSQL 会创建一个拥有所权限的特殊用户 postgres。要实际使用 PostgreSQL,你必须先登录该账户:

sudo su postgres

你的提示符会更改为类似于以下的内容:

postgres@ubuntu-VirtualBox:/home/ubuntu$ 

现在,使用 psql 来启动 PostgreSQL Shell:

psql

你应该会看到如下提示符:

postgress=#

你可以输入 \q 以退出,输入 \? 获取帮助。

要查看现有的所有表,输入如下命令:

\l

输出内容类似于下图所示(单击 q 键退出该视图):

PostgreSQL Tables

使用 \du 命令,你可以查看 PostgreSQL 用户:

PostgreSQLUsers

你可以使用以下命令更改任何用户(包括 postgres)的密码:

ALTER USER postgres WITH PASSWORD 'my_password';

注意:postgres 替换为你要更改的用户名,my_password 替换为所需要的密码。另外,不要忘记每条命令后面的 ;(分号)。

建议你另外创建一个用户(不建议使用默认的 postgres 用户)。为此,请使用以下命令:

CREATE USER my_user WITH PASSWORD 'my_password';

运行 \du,你将看到该用户,但是,my_user 用户没有任何的属性。来让我们给它添加超级用户权限:

ALTER USER my_user WITH SUPERUSER;

你可以使用以下命令删除用户:

DROP USER my_user;

要使用其他用户登录,使用 \q 命令退出,然后使用以下命令登录:

psql -U my_user

你可以使用 -d 参数直接连接数据库:

psql -U my_user -d my_db

你可以使用其他已存在的用户调用 PostgreSQL。例如,我使用 ubuntu。要登录,从终端执行以下命名:

psql -U ubuntu -d postgres

注意:你必须指定一个数据库(默认情况下,它将尝试将你连接到与登录的用户名相同的数据库)。

如果遇到如下错误:

psql: FATAL:  Peer authentication failed for user "my_user"

确保以正确的用户身份登录,并使用管理员权限编辑 /etc/postgresql/11/main/pg_hba.conf

sudo vim /etc/postgresql/11/main/pg_hba.conf

注意:用你的版本替换 11(例如 10)。

对如下所示的一行进行替换:

local   all             postgres                                peer

替换为:

local   all             postgres                                md5

然后重启 PostgreSQL:

sudo service postgresql restart

使用 PostgreSQL 与使用其他 SQL 类型的数据库相同。由于本文旨在帮助你进行初步的设置,因此不涉及具体的命令。不过,这里有个 非常有用的要点 可供参考! 另外, 手册(man psql)和 文档 也非常有用。

总结

阅读本文有望指导你完成在 Ubuntu 系统上安装和准备 PostgreSQL 的过程。如果你不熟悉 SQL,你应该阅读 基本的 SQL 命令

如果你有任何问题或疑惑,请随时在评论部分提出。


via: https://itsfoss.com/install-postgresql-ubuntu/

作者:Sergiu 选题:lujun9972 译者:lnrCoder 校对:wxy

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

 title=

选择合适的视频播放器有助于确保你获得最佳的观看体验,并为你提供创建视频网站的工具。你甚至可以根据个人喜好自定义正在观看的视频。

因此,为了帮助你挑选适合你需求的最佳播放器,我们列出了 Linux 中的十大开源播放器。

让我们来看看:

1、XBMC – Kodi 媒体中心

这是一个灵活的跨平台播放器,核心使用 C++ 编写,并提供 Python 脚本作为附加组件。使用 Kodi 的好处包括:

  • 提供超过 69 种语言版本
  • 用户可以从网络和本地存储播放音频、视频和媒体播放文件
  • 可与 JeOS 一起作为应用套件用于智能电视和机顶盒等设备
  • 有很多不错的附加组件,如视频和音频流插件、主题、屏幕保护程序等
  • 它支持多种格式,如 MPEG-1、2、4、RealVideo、HVC、HEVC 等

2、VLC 媒体播放器

由于该播放器在一系列操作系统上具有令人印象深刻的功能和可用性,它出现在列表上是理所当然的。它使用 C、C++ 和 Objective C 编写,用户无需使用插件,这要归功于它对解码库的广泛支持。VLC 媒体播放器的优势包括:

  • 在 Linux 上支持 DVD 播放器
  • 能够播放 .iso 文件
  • 能够播放高清录制的 D-VHS 磁带
  • 可以直接从 U 盘或外部驱动器运行
  • API 支持和浏览器支持(通过插件)

3、Bomi(CMPlayer)

这个灵活和强大的播放器被许多普通用户选择,它的优势有:

  • 易于使用的图形用户界面(GUI)
  • 令人印象深刻的播放能力
  • 可以恢复播放
  • 支持字幕,可以渲染多个字幕文件

4、Miro 音乐与视频播放器

以前被称为 Democracy Player(DTV),Miro 由 参与文化基金会 Participatory Culture Foundation 重新开发,是一个不错的跨平台音频视频播放器。令人印象深刻,因为:

  • 支持一些高清音频和视频
  • 提供超过 40 种语言版本
  • 可以播放多种文件格式,例如,QuickTime、WMV、MPEG 文件、AVI、XVID
  • 一旦可用,可以自动通知用户并下载视频

5、SMPlayer

这个跨平台的媒体播放器,只使用 C++ 的 Qt 库编写,它是一个强大的多功能播放器。我们喜欢它,因为:

  • 有多语言选择
  • 支持所有默认格式
  • 支持 EDL 文件,你可以配置从互联网获取的字幕
  • 可从互联网下载的各种皮肤
  • 倍速播放

6、MPV 播放器

它用 C、Objective-C、Lua 和 Python 编写,免费、易于使用,并且有许多新功能,便于使用。主要加分是:

  • 可以编译为一个库,公开客户端 API,从而增强控制
  • 允许媒体编码
  • 平滑动画

7、Deepin Movie

此播放器是开源媒体播放器的一个极好的例子,它有很多优势,包括:

  • 通过键盘完成所有播放操作
  • 各种格式的视频文件可以通过这个播放器轻松播放
  • 流媒体功能能让用户享受许多在线视频资源

8、Gnome 视频

以前称为 Totem,这是 Gnome 桌面环境的播放器。

完全用 C 编写,使用 GStreamer 多媒体框架构建,高于 2.7.1 的版本使用 xine 作为后端。它是很棒的,因为:

它支持大量的格式,包括:

  • SHOUTcast、SMIL、M3U、Windows 媒体播放器格式等
  • 你可以在播放过程中调整灯光设置,如亮度和对比度
  • 加载 SubRip 字幕
  • 支持从互联网频道(如 Apple)直接播放视频

9、Xine 多媒体播放器

我们列表中用 C 编写的另外一个跨平台多媒体播放器。这是一个全能播放器,因为:

  • 它支持物理媒体以及视频设备。3gp、MKV、 MOV、Mp4、音频格式
  • 网络协议,V4L、DVB 和 PVR 等
  • 它可以手动校正音频和视频流的同步

10、ExMPlayer

最后但同样重要的一个,ExMPlayer 是一个惊人的、强大的 MPlayer 的 GUI 前端。它的优点包括:

  • 可以播放任何媒体格式
  • 支持网络流和字幕
  • 易于使用的音频转换器
  • 高品质的音频提取,而不会影响音质

上面这些视频播放器在 Linux 上工作得很好。我们建议你尝试一下,选择一个最适合你的播放器。


via: https://opensourceforu.com/2019/10/top-10-open-source-video-players-for-linux/

作者:Stella Aldridge 选题:lujun9972 译者:geekpi 校对:wxy

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