介绍

Clear Linux 是英特尔发布的一个滚动更新的,针对英特尔架构优化的开源 Linux 发行版操作系统。官方发布了三种形态,带图形界面的桌面版,不带图形界面的服务器版和 Docker 镜像。可以安装在常规的笔记本,台式机,云主机以及在现有的系统上以 Docker 容器的形式安装。

特点

英特尔架构优化

英特尔出品自然为自家平台做了很好优化,以便达到最优性能;这包含这么几个意思:

  1. 全栈深度优化,包括内核,库和软件等等所有而并不是只对部分软件包做了优化;
  2. 针对可用的 CPU 特性对库进行了优化所以在运行时可以根据 CPU 特性自动选择优化过的内容以达到最优性能;
  3. 所有的优化内容都是开源的;

滚动更新

没有什么其他发行版那样区分稳定版滚动版,就是滚动;官方说他们的目标是一周9更,各种补丁和包更新等等,24小时漏洞修复;

依赖问题

传统的发行版依赖关系是在安装的时候帮你一并检测并安装但 Clear Linux 是在服务端 build 软件的时候就帮你解决了依赖问题,类似于其他的包组(package group)的概念又略有不同,传统的包组是水平的,而 Clear Linux 的包(bundle)是整个软件栈垂直的集成,这种集成范围从大的框架(framework)到小的最终的用户使用的二进制文件都覆盖;

无状态

这包含这么几个意思:

  1. 系统在 /usr/share/defaults/ 目录提供具有功能性和安全性的默认配置,所以开箱即用;
  2. 但是这种配置又是可以被 /etc 和 /home 里的配置覆盖和修改的;
  3. 删除 /etc 和 /usr 就相当于来了个“恢复出厂设置”;

安装

安装途径

官方提供了几种安装方式,你想到的一般方式都是支持的,包括:Live Desktop / Live Server ,移动介质例如优盘安装,网络安装以及云服务器安装;

系统需求

一般的硬件环境甚至虚拟的硬件环境都是支持的,它本质上还是个 Linux 发行版而已而 Linux 几乎可以安装在所有的环境上。默认最低要1核CPU,1GB内存,4GB硬盘(桌面版需要20GB硬盘)即可。

安装方式

桌面版

和你知道的套路一样,下载镜像,刻盘或者做优盘启动盘然后安装即可,官方图文看这里

服务器版

和你知道的套路一样,下载镜像,刻盘或者做优盘启动盘然后安装即可,官方图文看这里

虚拟机安装

官方提供了各种版本各种环境的虚拟机安装,看这里

云端部署

如果你只想体验体验的话,我建议云端部署,体验完毕删除也不费事比在本机物理机安装虚拟机省事不少。但是你想看图形界面的话还是要安装虚拟机or物理机安装的,但是也没啥可看的,虽然很漂亮但是它默认还是 gnome 环境和其他的发行版差不多。

Google Cloud

如果你还在300刀免费内的话可以用这种方式,思路就是上传镜像用自定义镜像启动实例,看官方图文说明的详细例子在这里

Azure

看起来十分麻烦的样子,官方例子在这里

Amazon AWS

这里说的是 AWS EC2!!!不是 lightsail!!!不推荐体验用途,即便是你的免费套餐内,因为虽然你的套餐是免费的但是它这个镜像可不是免费的,官方例子看这里

青云

青云好像是目前(2020年3月)唯一本来就提供 Clear Linux 镜像的云厂商而且还是国内厂商,如果你是他们的用户直接建个VM即可;

DO

DO 是我目前(2020年3月)最推荐的体验 Clear Linux 的方式,理由不用多说大多数人都有账号而且安装过程没有坑使用方便完事删除走人价格低廉;官方图文看这里,过程也很简单,直接上传这个官方帮你搞好的镜像https://cdn.download.clearlinux.org/releases/31870/clear/clear-31870-digitalocean.img.gz)(不用担心这个镜像没有更新太老,因为滚动发行版的东西你只要一次更新即可到最新版).

注意:

  1. 当前不支持IPv6,应该是 DO 当前对自定义镜像不支持;
  2. 不要选择“Monitoring”否则会失败
  3. 当前由于源比较少,所以建议选择美区,其他区下载更新会很慢很慢;

安装后 SSH 链接即可,用户名是 “clear”

看一把 os-release

[email protected]~ $ cat /etc/os-release 
NAME="Clear Linux OS"
VERSION=1
ID=clear-linux-os
ID_LIKE=clear-linux-os
VERSION_ID=31870
PRETTY_NAME="Clear Linux OS"
ANSI_COLOR="1;35"
HOME_URL="https://clearlinux.org"
SUPPORT_URL="https://clearlinux.org"
BUG_REPORT_URL="mailto:[email protected]"
PRIVACY_POLICY_URL="http://www.intel.com/privacy"

看一把 free

[email protected]~ $ free -h
              total        used        free      shared  buff/cache   available
Mem:          983Mi        50Mi       857Mi       0.0Ki        76Mi       825Mi
Swap:            0B          0B          0B

看一把硬盘

[email protected]~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        25G  424M   24G   2% /
devtmpfs        490M     0  490M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  528K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
tmpfs           492M     0  492M   0% /tmp
tmpfs            99M     0   99M   0% /run/user/1000

包管理和更新

Clear Linux 使用 swupd 来进行包管理和更新操作,可以理解为之前的 apt dnf 这里东西,官方文档看这里

官方 man 手册:

man swupd

官方 GitHub 在线手册网页版:

[GitHub][17]

查看自动更新是否打开:

sudo swupd autoupdate

自动更新默认是关闭的,打开/关闭自动更新:

sudo swupd autoupdate --enable
sudo swupd autoupdate --disable

检查系统更新:

sudo swupd check-update

更新系统:(更新或者安装会重启正在运行的项)

sudo swupd update

安装一个软件,我们举个例子假设要安装 mosh 这个软件:

搜索软件包:

[email protected]~ $ sudo swupd search mosh
Component mosh has version 1.3.2

Bundle with the best search result:
     sysadmin-basic                     - Run common utilities, useful for managing a system.  (107MB) 

This bundle can be installed with:

  swupd bundle-add  sysadmin-basic

安装搜索到的软件包:(更新或者安装会重启正在运行的项)

sudo swupd bundle-add  sysadmin-basic #正确
sudo swupd bundle-add  mosh #错误

经过发现 vim 这个包也是常用的,因为默认没有安装所以也建议一起装上。

删除软件包:(删除软件包不会删除依赖)

sudo swupd bundle-remove axel

总结

  • 自动更新可以降低维护带来的时间成本;
  • 不同于传统发新版的包管理方式可以大大降低各种包版本之间的撕逼问题降低维护成本;
  • 别人都三个字母了这写老长老长的感觉有点费劲啊?
  • 性能据说挺好的,看起来反正资源占用确实是比主流发新版低一些;
  • 更多资源参考官方文档官方 GitHub

用自己的服务器接受邮件是可以的,但是为了少点头疼的事,不要用自己的服务器发送邮件。这事一篇关于不要相信互联网上的你读到的内容的警示,也是一篇关于一种被全世界广泛采用的通信协议被一家大型广告技术公司捂死的内容,但首先这事一篇关于我给我妈妈发邮件的内容。

2016年的某个寒冷的早上。在像一个普通人一样使用了20年电子邮件以后我终于受不了了。我打算搭建自己的电子邮件服务器且打算把这件事做好,这样我就不必仍受使用别人的邮件服务器遇到的这些破事。啥事呢?垃圾邮件过滤!

有次我给我妈妈的一个 Gmail 邮箱回复邮件,一周后她打过来问我是否还活着因为她从来没有收到过我的邮件。然后我给我的邮件服务商同时也是我的网络服务商打电话说这事,他们告诉我说 Gmail 把他们的列入了几天黑名单因为有人用他们的服务器发送垃圾邮件。但是别担心现在已经解除拉黑了。当然了,也许只是今天解除了,或许明天我妈妈又不得不有一次担心了因为没人设置邮件退回通知。(有趣的是:随后网络服务商关闭了我的电子邮件账号由于他们期待收购而终止了 B2C 服务。)

你是否曾经注册某个网络服务并且好奇为啥要等两小时的验证邮件呢?这事以前对我来说是个普遍问题但是现在我知道了这是由一项叫做灰名单(graylisting)的反垃圾邮件技术导致的。灰名单的意思是来自未知服务器的邮件会被带上一个“请稍后再试”的注释被退回,然后发送服务器重试了一次一次又一次。几个小时以后接受服务器说:“试了这么多次,我猜你可能不是垃圾邮件发送者。”最终邮件进入了收件箱。好吧,所以,首先我们把光纤布满整个地球这样我们就可以在全世界发送几乎即时的消息了。然后就有人看着这个系统说:“我知道我们如何可以做的更好:让我们来创建一个可以把消息几小时的协议吧!”

个人邮件服务器

关于建立邮件服务器你首先要知道它不是一个邮件协议的事而是一个完整的系统的事。如果你想玩得高级一些的话大概有包括 DNS,DKIM,SFP,HELO等在内的12个其他我试图忘记也不想一一列举的协议。之后你又要经历一些莫名其妙的事情。如果你的邮件还没到达对方收件箱的话你得祈祷了,因为高冷的家伙(Gmail 和 Outlook)是不会告诉你哪儿有问题的。

所以我搞定了整个系统,然后用了一系列工具比如 DKIMValidator, mail-tester 和 Glockapps 来验证我的系统是否运行正常。我搞定了这些工具告诉我的每个可能影响系统的小问题,一直到不再有问题提示。尽管我这么努力了,但是我的邮件仍然被视为垃圾邮件过滤器拦截了。这让我觉得有点不可思议:我是独立域名和IP地址的唯一发件人,我只发送个人邮件,但是不知为什么这仍然被视为垃圾邮件了。

也许有人获得了访问我的服务器的权限,并在我不知情的情况下将其用于垃圾邮件? 我知道情况并非如此,因为我已经配置了DMARC,并且Gmail向我发送了DMARC报告,该报告显示了在我给妈妈发送电子邮件的那一天从我的服务器到Gmail的一封外发电子邮件。 我还定期检查我的域和IP是否不在垃圾邮件发送者黑名单中。

雨神,你听到我的祈祷了吗?

Outlook和Gmail都提供反馈邮件投递问题的地方,Gmail没有回应我。 Outlook回答我说“不关我的事”。 他们不会说为什么,但是他们很友好地提供了一些有用的提示,例如“确保您的电子邮件列表是最新的”。 我再次尝试向他们解释,我主要是给妈妈发送电子邮件,并且因为我不是垃圾邮件发送者而没有任何电子邮件列表。 他们“核实我的问题后”回答说,我应“确保取消订阅的过程可见”,以及他们认为对试图向亲人发送个人电子邮件的人有用的其他技巧。

邮件服务商们还提供了一些交互式工具来监视电子邮件的可传递性并帮助解决问题。 Gmail提供的服务称为Postmaster工具,而Outlook提供的垃圾邮件报告程序和智能网络数据服务程序。这些我都试了但是它们都没有什么数据反馈给我,因为我不是垃圾邮件发送者。

Gmail为那些有兴趣改善其Gmail邮件投递能力的人提供了一篇标题是《Spammer Bulk Sender Guidelines》的文章,这也表明了Gmail希望提高他们的邮件投递成功率。

这是一个小的电子邮件服务商叫做 Migadu 的引述:

某些情况下收件服务器只是因为我们的发件人数量少而故意拒绝了合规的电子邮件。 讽刺的是,合规的发送者确实就是这样。

等等,为什么有人这样做呢? AWS对此有一些说明:

如果您使用专用IP地址,则有责任通过发送一致且可预测的电子邮件量来保持发件人的声誉[...]您必须通过发送每天逐渐增加的电子邮件量来预热这些地址[...] IP地址已预热,您必须保持一致的发送模式[…]大多数Internet服务提供商(ISP)仅在给定IP地址从该地址接收大量邮件的情况下跟踪其信誉。

我敢肯定,您已经注意到了这种模式,但是无论如何,我都会加以说明:Gmail和Outlook并未从低流量发件人处发送明显合法的电子邮件。 可传递性工具,缓解措施和准则仅适用于垃圾邮件发送者大批量发送者。 在最大的电子邮件提供商是大型广告技术公司的反乌托邦中,这几乎是您所期望的。

放弃

在过去两年的时间里,我一直在积极使用自己的服务器从相同的域和IP发送电子邮件,但一段时间以来,我的电子邮件仍在Gmail的收件箱中发送。 然后有一段时间,我的电子邮件被放入垃圾邮件中,有时被彻底反弹,有时甚至在没有降落到垃圾邮件文件夹的情况下被接收和丢弃。 您永远无法知道Gmail将如何处理您的电子邮件。 前景更糟。 在过去的两年中,我再也无法将电子邮件发送到Outlook的收件箱。 甚至没有送给我的女友,后者经常从同一个地址给我发电子邮件。 是的,Outlook的垃圾邮件过滤在某种程度上甚至比Gmail还要差。

但是你做这件事吗?
是的,我确实做了。 是的,我确实加入了DNSWL。 是的,我确实配置了return-path标头以匹配回复标头。 是的,我确实告诉我的服务器,当它告诉其他服务器来自127.0.0.1时,这很顽皮。 是的,我确实配置了SPF 3.0,这甚至不是真实的东西,您甚至都不会注意到我刚刚完成了配置,因为电子邮件的可传递性是反乌托邦式的。

由于某些原因,当我讲这个故事时,许多人都难以置信。 常见的回答是“您是在喊大雨神的名字的同时做逆时针旋转这件事吗……”是的,我也尝试过顺时针旋转,以防万一可行,为什么呢? 这件事吗? 只是为了争辩,让我们假设我做错了什么。 假设可以从您的个人电子邮件服务器向Outlook和Gmail发送电子邮件。 如果这很难实现,那似乎是值得的努力吗?

我不是唯一遇到此问题的人。黑客新闻定期发布有关电子邮件可传递性的话题,很多人都在抱怨同一问题。这是一个这些线索似乎也使个人电子邮件传播者脱颖而出,说诸如“很容易发送电子邮件。只需做一件事……”即使有许多知名人士重复说,也不要相信您在互联网上看到的所有内容。这些人的意思很好,但是他们没有提供任何证据,这使我得出一个明显的结论,即他们实际上并未衡量其可交付性。他们只是觉得自己的电子邮件已送达。当偶发邮件丢失时,很容易假定目标收件人只是选择不回信。而且您知道吗,也许其中一个实际上拥有秘密的秘诀,可以通过圣少女IP块(幸运的兔子脚碰到的域)发送电子邮件,IP。我再次问:这似乎是值得的吗?

免责声明:反乌托邦地狱的笑话被约翰·奥利弗(John Oliver)偷走了。
Gmail的垃圾邮件过滤功能几乎总是让我通过电子邮件向妈妈发送电子邮件,真正的麻烦是通过电子邮件发送了新联系人。

本文描述的情况使用的操作系统如下所示,可能不适用于正在阅读本文的时候已经更新的版本或不同的主机商的不同配置:

#cat /proc/version 
Linux version 4.9.0-9-amd64 ([email protected]) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.168-1+deb9u5 (2019-08-11)

#lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.9 (stretch)
Release:        9.9
Codename:       stretch

当执行 sudo 的时候若收到如下提示:

sudo: unable to resolve host xxxxxx

则需要修改 /etc/hosts 文件 文件,把 xxxxxx 解析为 127.0.0.1 即可,即:


127.0.0.1    localhost xxxxxx

某些主机商(比如 Amazon AWS/Lightsail)的虚拟机(VM)上使用的 Debian 系统由于初始配置问题,不能修改 hosts 文件,会被告知如下信息:

#cat /etc/hosts

# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 ip-172-26-40-252.eu-west-1.compute.internal ip-172-26-40-252
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

但是查找上述文件(/etc/cloud/templates/hosts.tmpl 和 /etc/cloud/cloud.cfg 以及 /etc/init.d/cloud-config)的时候并没有 manage_etc_hosts 这个选项。

只要编辑 /etc/cloud/cloud.cfg.d/01_debian_cloud.cfg 并在其中加入 manage_etc_hosts: false 即可,如下:

#sudo vim /etc/cloud/cloud.cfg.d/01_debian_cloud.cfg 

apt_preserve_sources_list: true
manage_etc_hosts: false
system_info:
  default_user:
    name: admin
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    lock_passwd: True
    gecos: Debian
    groups: [adm, audio, cdrom, dialout, dip, floppy, netdev, plugdev, sudo, video]
    sudo: ["ALL=(ALL) NOPASSWD:ALL"]
    shell: /bin/bash

重启,即可修改 /etc/hosts 文件。

本来,对于 RHEL/CentOS 系统 mosh 应该在第三方源 EPEL 里面,可是当前(2019年7月)的时间节点正是 RHEL8 发布后,CentOS8 和 EPEL8 还没有发布。所以给 RHEL8 安装 mosh 则不能使用 EPEL 源了。

编译安装 mosh:

安装需要的工具软件:

#如果已有则会自动跳过
sudo dnf install gcc gcc-c++ autoconf automake libtool make unzip ncurses-devel git

安装 Google Protocol Buffers 库:
解决:“ configure: error: cannot find protoc, the Protocol Buffers compiler ”问题

#安装 Google Protocol Buffers 库
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure --prefix=/usr #参考安装指导“Hint on install location”部分,后面 mosh 则会找不到该库
make #可能需要等待较长时间
make check
make install
ldconfig #刷新共享库缓存

编译安装 Mosh:

git clone https://github.com/mobile-shell/mosh
cd mosh
./autogen.sh
./configure
make
make install

参考链接:

需要注意“Hit on install location”部分

https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
https://fedoraproject.org/wiki/EPEL
https://fedoraproject.org/wiki/Infrastructure_2020/EPEL-8
https://github.com/mobile-shell/mosh/wiki/Build-Instructions
https://gist.github.com/palexander/2975305
https://gist.github.com/samsonjs/4076746
https://gist.github.com/andrewgiessel/4486779
https://gist.github.com/jaywilliams/c9ffab789b3f622abc932dd4cfaaeef5

openSUSE 15.1 于 2019年5月22日发布了。

openSUSE 15.1 中文 发行注记/发行说明: https://doc.opensuse.org/release-notes/x86_64/openSUSE/Leap/15.1/

备份现有源:

sudo cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.Old

替换 openSUSE 15.0 源为 openSUSE 15.1 源:

sudo sed -i 's/15.0/15.1/g' /etc/zypp/repos.d/*

如果复制上面的命令到控制台出现字符错误提示,那么手动输入。

刷新源:

sudo zypper --gpg-auto-import-keys ref

更新:

sudo zypper dup

最后重启完成。

参考来源: https://en.opensuse.org/SDB:System_upgrade