分类 技术 下的文章

FRR(free range routing)给了你实现多种协议的选择。本指南将帮助你入门。

最近,我写了一篇文章,解释了如何使用 Quagga 路由套件实现 开放式最短路径优先 Open Shortest Path First (OSPF)。可以使用多个软件套件代替 Quagga 来实现不同的路由协议。其中一种是 FRR(free range routing)。

FRR

FRR 是一个路由软件套件,它衍生自 Quagga,并在 GNU GPL2 许可下分发。与 Quagga 一样,它为类 Unix 平台提供了所有主要路由协议的实现,例如 OSPF、 路由信息协议 Routing Information Protocol (RIP)、 边界网关协议 Border Gateway Protocol (BGP) 和 中间系统到中间系统 Intermediate system-to-intermediate system (IS-IS)。

开发了 Quagga 的一些公司,例如 Big Switch Networks、Cumulus、Open Source Routing 和 6wind,创建了 FRR 以在 Quagga 的良好基础上进行改善。

体系结构

FRR 是一组守护进程,它们可以共同构建路由表。每个主协议都在其自己的守护进程中实现,并且这些守护进程与独立于协议的核心守护进程 Zebra 通信,后者提供内核路由表更新、接口查找以及不同路由协议之间路由的重新分配。每个特定协议的守护进程负责运行相关协议并根据交换的信息构建路由表。

 title=

VTY shell

VTYSH 是 FRR 路由引擎的集成 shell。它将每个守护进程中定义的所有 CLI 命令合并,并在单个 shell 中将它们呈现给用户。它提供了类似于 Cisco 的命令行模式,并且许多命令与 Cisco IOS 命令相似。CLI 有不同的模式,某些命令仅在特定模式下可用。

设置

在本教程中,我们将使用 FRR 配置动态路由来实现路由信息协议(RIP)。我们可以通过两种方式来做到这一点:在编辑器中编辑协议守护进程配置文件或使用 VTY Shell。在此例中,我们将使用 VTY shell。我们的设置包括两个名为 Alpha 和 Beta 的 CentOS 7.7 主机。这两台主机都有两个网络接口,并共享对 192.168.122.0/24 网络的访问。我们将广播 10.12.11.0/24 和 10.10.10.0/24 网络的路由。

对于主机 Alpha:

  • eth0 IP:192.168.122.100/24
  • 网关:192.168.122.1
  • eth1 IP:10.10.10.12/24

对于主机 Beta:

  • eth0 IP:192.168.122.50/24
  • 网关:192.168.122.1
  • eth1 IP:10.12.11.12/24

安装软件包

首先,我们需要在两台主机上都安装 FRR 软件包。可以按照官方 FRR 文档中的说明进行操作。

启用 IP 转发

对于路由,我们需要在两台主机上都启用 IP 转发,因为这将由 Linux 内核执行:

sysctl -w net.ipv4.conf.all.forwarding = 1
sysctl -w net.ipv6.conf.all.forwarding = 1
sysctl -p

启用 RIPD 守护进程

安装后,所有配置文件将保存在 /etc/frr 目录中。 必须通过编辑 /etc/frr/daemons 文件显式启用守护进程。该文件确定启动 FRR 服务时激活哪些守护进程。要启用特定的守护进程,只需将相应的 no 改为 yes。之后的服务重启将启动守护进程。

 title=

防火墙配置

由于 RIP 协议使用 UDP 作为传输协议,并被分配了 520 端口,因此我们需要在 firewalld 配置中允许该端口。

firewall-cmd --add-port=520/udp –permanent
firewalld-cmd -reload

现在,我们可以使用以下命令启动 FRR 服务:

systemctl start frr

使用 VTY 进行配置

现在,我们需要使用 VTY Shell 配置 RIP。

在主机 Alpha 上:

[root@alpha ~]# vtysh

Hello, this is FRRouting (version 7.2RPKI).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

alpha# configure terminal
alpha(config)# router rip
alpha(config-router)# network 192.168.122.0/24
alpha(config-router)# network 10.10.10.0/24
alpha(config-router)# route 10.10.10.5/24
alpha(config-router)# do write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
alpha(config-router)# do write memory
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
alpha(config-router)# exit

类似地,在主机 Beta 上:

[root@beta ~]# vtysh

Hello, this is FRRouting (version 7.2RPKI).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

beta# configure terminal
beta(config)# router rip
beta(config-router)# network 192.168.122.0/24
beta(config-router)# network 10.12.11.0/24
beta(config-router)# do write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
beta(config-router)# do write memory
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
beta(config-router)# exit

完成后,像下面这样检查两台主机路由:

[root@alpha ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.12 metric 101
10.12.11.0/24 via 192.168.122.50 dev eth0 proto 189 metric 20
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100

我们可以看到 Alpha 上的路由表通过 192.168.122.50 包含了 10.12.11.0/24 的条目,它是通过 RIP 提供的。

类似地,在 Beta 上,该表通过 192.168.122.100 包含了 10.10.10.0/24 的条目。

[root@beta ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 via 192.168.122.100 dev eth0 proto 189 metric 20
10.12.11.0/24 dev eth1 proto kernel scope link src 10.12.11.12 metric 101
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100

总结

如你所见,设置和配置相对简单。要增加复杂性,我们可以向路由器添加更多的网络接口,以为更多的网络提供路由。可以在编辑器中编辑配置文件来进行配置,但是使用 VTY Shell 在单个组合会话中为我们提供了所有 FRR 守护进程的前端。


via: https://opensource.com/article/20/5/vty-shell

作者:M Umer 选题:lujun9972 译者:geekpi 校对:wxy

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

使用 Tiny Tiny RSS 来保护你阅读新闻馈送时的隐私。

Tiny Tiny RSS(TT-RSS)是一个自由开源的基于 Web 的新闻 馈送 feed (RSS/Atom)阅读器和聚合工具。它非常适合那些注重隐私,并且仍然依赖 RSS 来获取日常新闻的人。TT-RSS 是自行托管的软件,因此你可以 100% 的掌控你的服务器、数据以及你的全部隐私。它还支持大量的插件、扩展和主题。你喜欢黑暗模式的界面?没问题。想基于关键词过滤发来的消息?TT-RSS 也能让你得偿所愿。

 title=

现在你知道 TT-RSS 是什么了,那么为什么你可能会想用它。我会讲述要把它安装到树莓派或 Debian 10 服务器上你需要了解的所有的东西。

安装和配置 TT-RSS

要把 TT-RSS 安装到树莓派上,你还需要安装和配置最新版本的 PHP(本文撰写时 PHP 最新版本是 7.3)、后端数据库 PostgreSQL、Nginx web 服务器、Git,最后才是 TT-RSS。

1、安装 PHP 7

安装 PHP 7 是整个过程中最复杂的部分。幸运的是,它并不像看起来那样困难。从安装下面的支持包开始:

$ sudo apt install -y ca-certificates apt-transport-https

现在,添加存储库 PGP 密钥:

$ wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

下一步,把 PHP 库添加到你的 apt 源:

$ echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list

然后更新你的存储库索引:

$ sudo apt update

最后,安装 PHP 7.3(或最新版本)和一些通用组件:

$ sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-opcache php7.3-curl php7.3-mbstring php7.3-pgsql php7.3-zip php7.3-xml php7.3-gd php7.3-intl

上面的命令默认你使用的后端数据库是 PostgreSQL,会安装 php7.3-pgsql。如果你想用 MySQL 或 MariaDB,你可以把命令参数改为 php7.3-mysql

下一步,确认 PHP 已安装并在你的树莓派上运行着:

$ php -v

现在是时候安装和配置 Web 服务器了。

2、安装 Nginx

可以用下面的命令安装 Nginx:

$ sudo apt install -y nginx

修改默认的 Nginx 虚拟主机配置,这样 Web 服务器才能识别 PHP 文件以及知道如何处理它们。

$ sudo nano /etc/nginx/sites-available/default

你可以安全地删除原文件中的所有内容,用下面的内容替换:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html index.htm index.php;
        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }

}

Ctrl+O 保存修改后的配置文件,然后按 Ctrl+X 退出 Nano。你可以用下面的命令测试你的新配置文件:

$ nginx -t

如果没有报错,重启 Nginx 服务:

$ systemctl restart nginx

3、安装 PostgreSQL

接下来是安装数据库服务器。在树莓派上安装 PostgreSQL 超级简单:

$ sudo apt install -y postgresql postgresql-client postgis

输入下面的命令看一下数据库服务器安装是否成功:

$ psql --version

4、创建 Tiny Tiny RSS 数据库

在做其他事之前,你需要创建一个数数据库,用来给 TT-RSS 软件保存数据。首先,登录 PostgreSQL 服务器:

sudo -u postgres psql

下一步,新建一个用户,设置密码:

CREATE USER username WITH PASSWORD 'your_password' VALID UNTIL 'infinity';

然后创建一个给 TT-RSS 用的数据库:

CREATE DATABASE tinyrss;

最后,给新建的用户赋最高权限:

GRANT ALL PRIVILEGES ON DATABASE tinyrss to user_name;

这是安装数据库的步骤。你可以输入 \q 来退出 psql 程序。

5、安装 Git

安装 TT-RSS 需要用 Git,所以输入下面的命令安装 Git:

$ sudo apt install git -y

现在,进入到 Nginx 服务器的根目录:

$ cd /var/www/html

下载 TT-RSS 最新源码:

$ git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss

注意,这一步会创建一个 tt-rss 文件夹。

6、安装和配置Tiny Tiny RSS

现在是安装和配置你的新 TT-RSS 服务器的最后时刻了。首先,确认下你在浏览器中能打开 http://your.site/tt-rss/install/index.php。如果浏览器显示 403 Forbidden,那么就证明 /var/www/html 文件夹的权限没有设置正确。下面的命令通常能解决这个问题:

$ chmod 755 /var/www/html/ -v

如果一切正常,你会看到 TT-RSS 安装页面,它会让你输入一些数据的信息。你只需要输入前面你创建的数据库用户名和密码;数据库名;主机名填 localhost;端口填 5432

点击“Test Configuration”。如果一切正常,你会看到一个标记着“Initialize Database”的红色按钮。点击它来开始安装。结束后,你会看到一个配置文件,你可以把它复制到 TT-RSS 的目录,另存为 config.php

安装过程结束后,浏览器输入 http://yoursite/tt-rss/ 打开 TT-RSS,使用默认的凭证登录(用户名:admin,密码:password)。登录后系统会提示你修改密码。我强烈建议你尽快修改密码。

配置 TT-RSS

如果一切正常,你现在就可以开始使用 TT-RSS 了。建议你新建一个非管理员用户,使用新用户名登录,并开始导入你的馈送、订阅,按照你的意愿来配置它。

最后,并且是超级重要的事,不要忘了阅读 TT-RSS 维基上的 Updating Feeds 部分。它讲述了如何创建一个简单的 systemd 服务来更新馈送。如果你跳过了这一步,你的 RSS 馈送就不会自动更新。

总结

呵!工作量不小,但是你做完了!你现在有自己的 RSS 聚合服务器了。想了解 TT-RSS 更多的知识?我推荐你去看官方的 FAQ支持论坛,和详细的安装笔记。如果你有任何问题,尽情地在下面评论吧。


via: https://opensource.com/article/20/2/ttrss-raspberry-pi

作者:Patrick H. Mullins 选题:lujun9972 译者:lxbwolf 校对:wxy

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

我们都知道在 Linux 中使用 uptime 命令的目的。它用于检查 Linux 系统的正常运行时间以及系统上次启动以来运行的时间。

而 Linux 管理员的工作是保持系统正常运行。

如果要检查 Linux 上的其他服务(例如 Apache、MySQL、MariaDB、sftp 等)运行了多长时间,该怎么做?

每个服务都有自己的命令来检查服务的正常运行时间。但是你也可以为此使用其他命令。

方法 1:如何使用 ps 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间

ps 命令的意思是 进程状态 process status 。这是最基本的命令之一,它显示了系统正在运行的进程的详细信息。

为此,你首先需要使用 pidof 命令查找 MySQL/MariaDB 的 PID。

# pidof mysqld | cut -d" " -f1

2412

获取 MySQL/MariaDB 的 PID 后,请在 ps 命令中使用 --etime 选项获得正常运行时间。

  • --etime:自进程启动以来经过的时间,形式为 [[DD-]hh:]mm:ss
# ps -p 2412 -o etime

   ELAPSED
2-08:49:30

或者,在 ps 命令中使用 --lstart 选项来获取指定 PID 的正常运行时间。

# ps -p 2412 -o lstart

                STARTED
Sat May 2 03:02:15 2020

MySQL/MariaDB 进程已经运行了 2 天 03 小时 02 分 15 秒。

方法 2:如何使用 systemctl 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间

systemctl 命令用于控制 systemd 系统和服务管理器。

systemd 是新的初始化系统和系统管理器,现在大多数 Linux 发行版都淘汰了传统的 SysVinit 管理器而采用了 systemd。

# systemctl status mariadb
或者
# systemctl status mysql

● mariadb.service - MariaDB 10.1.44 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor     preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Sat 2020-05-02 03:02:18 UTC; 2 days ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 2448 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 2388 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=/usr/bin/galera_recovery; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 2386 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 2412 (mysqld)
   Status: "Taking your SQL requests now…"
   CGroup: /system.slice/mariadb.service
           └─2412 /usr/sbin/mysqld

May 03 21:41:26 ns2.2daygeek.com mysqld[2412]: 2020-05-03 21:41:26 140328136861440 [Warning] Host name '1.1.1.1' could not be resolved: … not known
May 04 02:00:46 ns2.2daygeek.com mysqld[2412]: 2020-05-04 2:00:46 140328436418304 [Warning] IP address '1.1.1.1' has been resolved to the host name '2…ss itself.
May 04 03:01:31 ns2.2daygeek.com mysqld[2412]: 2020-05-04 3:01:31 140328436111104 [Warning] IP address '1.1.1.1' could not be resolved: Temporary fai…resolution
May 04 04:03:06 ns2.2daygeek.com mysqld[2412]: 2020-05-04 4:03:06 140328136861440 [Warning] IP address '1.1.1.1' could not be resolved: Name or ser… not known
May 04 07:23:54 ns2.2daygeek.com mysqld[2412]: 2020-05-04 7:23:54 140328435189504 [Warning] IP address '1.1.1.1' could not be resolved: Name or service not known
May 04 08:03:31 ns2.2daygeek.com mysqld[2412]: 2020-05-04 8:03:31 140328436418304 [Warning] IP address '1.1.1.1' could not be resolved: Name or service not known
May 04 08:25:56 ns2.2daygeek.com mysqld[2412]: 2020-05-04 8:25:56 140328135325440 [Warning] IP address '1.1.1.1' could not be resolved: Name or service not known
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Hint: Some lines were ellipsized, use -l to show in full.

方法 3:如何使用 MySQLAdmin 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间

MySQLAdmin 是安装 MySQL 软件包时安装的 MySQL 服务器命令行程序。

MySQLAdmin 客户端允许你在 MySQL 服务器上执行一些基本的管理功能。

它用于创建数据库、删除数据库、设置 root 密码、更改 root 密码、检查 MySQL 状态、验证 MySQL 功能、监视 mysql 进程以及验证服务器的配置。

# mysqladmin -u root -pPassword version

mysqladmin Ver 8.42 Distrib 5.7.27, for Linux on x86_64
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version 5.7.27
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 1 day 10 hours 44 min 13 sec

via: https://www.2daygeek.com/check-mysql-mariadb-database-server-uptime-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

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

前两天,Linus Torvalds 说他更新了其主力电脑,据称编译内核时快了三倍。虽然 Torvalds 用来编程时喜欢用戴尔 XPS 开发者版笔记本电脑,但他还有一台开发工作站,最近他将它升级为基于 AMD 锐龙 Threadripper 3970x 高速处理器。这是 Linus 15 年来第一次换用 AMD 的 CPU。

作为世界上最著名的程序员之一、Linux 操作系统之父以及 Git 的缔造者,他的一举一动都会引来开源社区的兴趣,因此大家对这台新电脑的配置也相当感兴趣。

“Linus Torvalds 牌”电脑配置清单

Torvalds 是一个喜欢自己攒电脑的人。“我通常都是自己攒电脑。我会重新使用上一台机器的机箱或 SSD 之类的东西,但这一次是全新打造的。”

在这次攒机之前,他的机器是 i9-9900k。通常情况下,Torvalds 会直接去当地的 Fry's 商店直接购买一些比较基础的配件,但由于病毒的影响,这次都是从亚马逊买的。几周后就到货了(这年头电脑配件几天就发货了),最后两件是上周五到的。

以下列出这台电脑的具体配置,大家感兴趣的可以按图索骥。

CPU:AMD 锐龙 Threadripper 3970X

锐龙 Threadripper 3970X 并不便宜,而且它是目前最快的 CPU。AMD Threadripper 3970x 搭载了 32 个核心。它采用 AMD 的 7 纳米 Zen 2 核心架构,拥有 88 个 PCIe 4.0。AMD 声称它比竞争对手快了 90%。Phoronix 的独立测试发现,“Threadripper 3970X 在性能上绝对占优势,超过了 Core i9 10980XE。”

“最初,我其实是计划用 AM4 主板和 Ryzen 3950X,这是比较主流的升级过程。” Torvalds 说,“Ryzen 3950X 是英特尔 i9-9900K 的升级版,但只是不多的升级。”

“通常情况下,我都会选择普通的消费级 CPU,因为它们往往是性价比最高的,而对于英特尔 CPU 来说,我其实喜欢它们只是因为集成了显卡。我不太在意 GPU,所以集成式的就好了,这样可以避免了挑选相匹配的 GPU,以及风扇不好的 GPU 可能产生的噪音。”

Torvalds 为此“来回折腾了好一阵子”,正如他所说的:“Threadripper 的功率让我担心噪音问题。但我决定做一次大升级,因为与传统的英特尔 Xeon 高核数平台不同,AMD 的 Threadripper 系列仍然属于‘物美价廉’的范畴。所以我咬咬牙就上了,到目前为止,我很满意。”

主板:技嘉 Aorus TRX40 Master

对于顶级 CPU,你当然需要最好的主板:技嘉 Aorus RX40 Master。它使用的是 16+3 相英飞凌供电,考虑到新 CPU 恐怖的规格,技嘉还给主板的供电覆盖上了加强散热模块,模块以密集的散热鳍片热管为主。

在这里,Torvalds 主要关心的是:

“要有一块看起来不错的电源传输和风扇控制的主板。在我所攒的机器中,我希望的是最基本的东西都要可靠,没有什么比电源传输更基本的东西了。很久以前,我有几个系统因为电源断电而变得不可靠,现在我对这个问题已经变得很虔诚了。所以我就找一些适合超频的东西,然后不超频。”

简而言之,他要的是一台能承受高负载的 PC,但他不会把机器推到极限。话虽如此,Torvalds 很讨厌“这款主板的默认风扇设置(非常烦人的小高转速风扇,用于电压调节器模块 VRM 散热),但你可以通过 BIOS 设置调整得更好。另外请大家注意:这是一款 E-ATX 主板,所以在出现错误的情况下可能会很不方便。”

CPU 散热器和风扇:猫头鹰(Noctua) NF-A14 PWM、NH-U14S 和 NF-A15

高性能 CPU 的发热自然很高,因此 CPU 风扇也需要一台强劲的,但是,更重要的是,需要安静,Torvalds 以前就在用猫头鹰,感觉很好,这次依然用的是它。

Torvalds 使用了两款 CPU 散热器的风扇。其中 NH-U14S 是主打的,而多出的 NF-A15 风扇则是针对该散热器的推拉式配置。

既然他这么担心噪音问题,你问为什么不选择水冷呢?“我不喜欢水冷的。可靠性让我担心,而且我不觉得 AIO 系统会比好的风冷系统好。另外,定制那些系统太费劲了,我担心水泵和潺潺的噪音。” Torvalds 说。

Torvalds 说,“额外的风扇是因为我喜欢那种推拉式的设置,140mm 大的猫头鹰风扇低速运行,我不用担心噪音问题。即使是在负载下加速运行时,我也不觉得那些风扇的噪音很烦人。它更多的是一种舒缓的‘嗖嗖’的白噪音,没有劣质风扇所带来的恼人的呜呜声或嘎嘎声。”

机箱:德商必酷(Be Quiet)Dark Base 700

显然程序员在工作时都想要安静,Torvalds 也不例外,那么德商必酷(Be Quiet)Dark Base 700 PC 机箱自然是首选。

其实 Torvalds 更喜欢猫头鹰,德商必酷只是第二选择,但是猫头鹰没有做机箱产品。

附加风扇:德商必酷(Be Quiet)Silent Wings 3

高性能 PC 需要大量的电能,这又意味着它们会产生大量的热量。 自然,重视安静的 Torvalds 又选择了一块德商必酷(Be Quiet) Silent Wings 3 风扇。

为什么要多一个风扇?Torvalds 解释说:“多出一个风扇(机箱已经有两个)是因为我最初订购了这个机箱,然后在看的时候,我觉得前面的进气口看起来比后面的输出口更受限制(因为前面板的缘故),反正我在等其他配件到货,所以我决定多加一个进气口风扇会更有利于空气流通,希望能造成机箱的正压,减少灰尘的担心。”

最终,为了做一台安静强大的PC,所有的努力都是值得的。

“有了 BIOS 中正确的风扇控制设置(假设你选对了风扇头。主板的纸质手册上的图片太可怕了,而且我在第一次攒机的时候把 CPU 和系统风扇头弄错了),你的机器在空载的时候基本上是静音的,而且在满载的情况下没有任何恼人的呜呜声(但不是静音)。”

电源:海韵(Seasonic)Focus GX-850

快速的 CPU 也需要大量的电能,海韵(Seasonal)Focus GX-850 可以提供澎湃的电能。

GX-850 并不是 Torvald 的首选,但在新冠期间只能选到它,不过“它应该是可靠的”,Torvalds 说。他对基础的电源传输非常在意:“我基本上会考虑机器的最高功率使用量是多少?然后挑选一个额定功率为 2 倍的电源,然后寻找评论和有信誉的品牌。”

存储:1TB 三星 EVO 970 SSD

说到存储,Torvalds 说现在已经是固态硬盘(SSD)的天下:“到现在为止,我已经十几年没接触过旋转介质了,在过去的几代产品中,我尽量避免布线这些麻烦,只用 m.2 外形的固态硬盘。我用过几款三星的固态硬盘,它们一直都很好。几代以前有很多坏的固态硬盘,现在已经不是什么问题了,但我还是坚持用适合自己的东西。”

内存:4 条 16GB DDR4-2666

在理想的情况下,当然是 64GB 的纠错码(ECC)内存更好,不过这次他只是选择了高质量的通用 DDR RAM。

事实证明,内存是 Torvalds 的一个痛点:“这其实是我攒的机器里面最不喜欢的部分 —— 它是个好内存,但我真的很想要 ECC(错误校正代码)内存。我很难在亚马逊上找到任何(价格合理)的东西,所以这个我觉得是暂时的‘够用了’,实际用起来起来还不错。”

此外,他继续说道:“其实我甚至不需要 64GB 内存,因为我做的东西往往都不太需要内存,但我想把四个内存通道都填满,而且内存很便宜。”

虽然游戏和人工智能和机器学习的开发者们都很关心图形,但视频和图像处理并不在 Torvalds 的兴趣范围之内。他用的是“随便选的蓝宝石 RX580 显卡。对于我所做的工作(台式机使用,不玩游戏)来说,这已经足够了。”

操作系统:Linux Fedora 32

这没什么说的,Torvalds 肯定是用的 Linux ,他一直很喜欢用 Red Hat 的 Fedora 进行开发。当然,用的是最新版本的 Fedora 32。

“把它拼凑在一起,确保所有的风扇设置正确,然后在上面安装 Fedora 32,你就有了一个相当不错的工作站”,Torvalds 说。

除了这台工作站之外,Torvalds 日常使用笔记本电脑进行编程,他使用的是戴尔 XPS 13。

Torvalds 说,“通常情况下,我不会说出品牌,但对 XPS 13 我破例了,我实在太喜欢它了,以至于在我女儿上大学的时候,我还为她买了一台。”

羡慕吗?

要不要也攒一台呢,也就 3 万来块钱 :D

我相信你是按照这份很棒的指南安装来 Arch Linux 的,这篇指南最后提到了 GNOME 桌面的安装步骤。

但现在,不是每个人都是 GNOME 的粉丝,有几个读者要求我们向他们展示如何在 Arch Linux 上配置 KDE 桌面

因此,我创建了这个指南来演示如何在 Arch Linux 上正确安装和配置 KDE 桌面(也被称为 KDE Plasma桌面)的步骤。

如何在 Arch Linux 上安装和设置 KDE 桌面环境?

请记住,KDE 不允许直接以 root 身份登录。如果你已经安装了 Arch Linux 并以 root 身份使用,你应该创建一个新的用户,并给它以 root 身份运行命令的 sudo 权限。

如果你只是最小化安装了 Arch Linux,那么你可能是以 TTY 终端方式登录的。如果你使用的是其他桌面环境,步骤也是一样的。

让我们开始吧!

步骤 1:创建一个 sudo 用户(如果你只有 root 用户)

你可以使用 useradd 命令来创建一个新用户。我创建的用户名为 dimitrios(这是我的名字)。你可以使用与你的名字匹配的东西。

选项 -m 为新创建的用户创建一个主目录。

useradd -m dimitrios

你还应该为这个用户设置一个密码。使用此命令:

passwd dimitrios

现在你已经创建了用户,给它 sudo 权限。首先,安装 sudo 和一个像 nano 这样的命令行文本编辑器

pacman -S sudo nano

sudo 的配置文件是 /etc/sudoers。该文件应该使用 visudo 来编辑,它会锁定 sudoers 文件,将编辑的内容保存到一个临时文件中,并在复制到 /etc/sudoers 之前检查该文件的语法。

要使用 nano 作为 visudo 编辑器,请这样设置:

EDITOR=nano visudo

像我的示例那样添加下面这一行,然后保存并退出。

dimitrios ALL=(ALL) ALL

保存你的更改,然后退出编辑器。你现在在 Arch Linux 上有了一个 sudo 用户。

步骤 2 :安装 KDE Plasma 桌面

要运行 KDE 桌面,你需要以下软件包。

你可以用下面的命令安装上述部分。

pacman -S xorg plasma plasma-wayland-session kde-applications

安装后,启用显示管理器和网络管理器服务。

systemctl enable sddm.service
systemctl enable NetworkManager.service

快完成了。关闭你的系统。

shutdown now

重新打开系统电源,你应该会看到 KDE 的登录界面。你还记得为你的 sudo 用户设置的密码吗?用它来登录。

接下来?

你可能会想探索一下基本的 pacman 命令,了解一下 Arch 用户资源库,了解一下 AUR 助手

希望这篇教程对你在 Arch Linux 上安装 KDE 桌面有所帮助。如果你在安装过程中遇到任何障碍或困难,请在下面的评论中告诉我们。

你最喜欢的桌面环境或窗口管理器是什么?请告诉我们,别忘了在我们的社交媒体上订阅。


via: https://itsfoss.com/install-kde-arch-linux/

作者:Dimitrios Savvopoulos 选题:lujun9972 译者:wxy 校对:wxy

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

本教程教你如何处理无人值守的升级,即 Ubuntu Linux 的自动系统更新。

有时,当你尝试关闭 Ubuntu 系统时,可能看到这个阻止你关闭的页面:

关机过程中正在进行无人值守升级,请不要关闭计算机。

你可能会问这个“无人值守升级”是什么,怎么会在你不知情的情况下运行呢?

原因是 Ubuntu 非常重视系统的安全性。默认情况下,它会每天自动检查系统更新,如果发现安全更新,它会下载这些更新并自行安装。对于正常的系统和应用更新,它会通过软件更新程序通知你。

由于所有这些都是在后台发生的,所以在你尝试关闭系统或尝试自行安装应用程序之前,你甚至不会意识到这一点。

在这些无人值守的升级过程中,尝试安装新软件,会导致著名的无法获得锁定的错误

如你所见,自动更新带来了一些小麻烦。你可以选择禁用自动更新,但这意味着你必须一直手动检查并更新你的 Ubuntu 系统

你真的需要禁用自动更新吗?

请注意,这是一项安全功能。Linux 实际上允许你禁用系统中的所有功能,甚至禁用这些安全功能。

但是我认为,作为普通用户,你不应该禁用自动更新。毕竟,它可以确保你的系统安全。

为了确保系统的安全性,你可以忍受自动更新所带来的小麻烦。

现在,你已经收到警告,还是觉得承担手动更新系统的额外任务更好,那么让我们看看如何处理自动更新。

与往常一样,有两种方法可以做到:GUI 和命令行。 我将向你展示两种方法。

我在这里使用 Ubuntu 20.04,但是这些步骤对 Ubuntu 18.04 和任何其他 Ubuntu 版本均有效。

方法 1:以图形方式禁用 Ubuntu 中的自动更新

进入菜单并查找“软件和更新”工具。

在此处,进入“更新”选项卡。查找“自动检查更新”。默认情况下,它设置为“每日”。

你可以将其更改为“从不”,你的系统将永远不会检查更新。如果不检查更新,它就不会找到要安装的新的更新。

如果这样做,那么必须不时手动更新系统。但是,这是额外的工作,你可能不会一直记得。

在 Ubuntu 中处理自动更新的更好方法

就个人而言,我建议让它自己检查更新。如果你不希望它自动安装更新,那么可以更改该行为,以通知有关安全更新的可用性。

保持“自动检查更新”为“每日”,然后将“有安全更新时”选项更改为“立即显示”,而不是“自动下载并安装”。

这样,它会检查是否有更新,而不是在后台自动安装更新,软件更新程序会通知你有可用于系统的更新。而你的系统已经完成正常的系统和软件更新。

使用此设置,关闭系统时将不会看到“正在进行的无人值守升级”。但是,由于两个不同的进程无法同时使用 apt 包管理器,因此你仍然可能会遇到“无法锁定”错误。

我相信这是一个更好的解决方案,你不认为是么?

如我承诺的同时有 GUI 和命令行方法一样,让我向你展示如何在终端中禁用无人值守的升级。

如何在 Ubuntu 中使用命令行禁用自动更新

你可以在 /etc/apt/apt.conf.d/20auto-upgrades 中找到自动升级设置。Ubuntu 终端中的默认文本编辑器是 Nano,因此你可以使用以下命令来编辑此文件:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

现在,如果你不希望系统自动检查更新,那么可以将 APT::Periodic::Update-Package-Lists 的值更改为 "0"

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

如果你希望它检查更新但不自动安装无人值守的升级,那么可以选择将其设置为:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "0";

最后

由于某种原因,启用了自动安全更新,建议你保持这种状态。这个小烦恼实际上并不值得冒险损害系统安全性。你怎么看?


via: https://itsfoss.com/auto-updates-ubuntu/

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

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