2020年9月

SSH 8.0 预发布公告中,OpenSSH 项目表示,他们认为 scp 协议已经过时,不灵活,而且不容易修复,然后他们继而推荐使用 sftprsync 来进行文件传输。

然而,很多用户都是从小用着 scp 命令长大的,所以对 rsync 并不熟悉。此外,rsync 可以做的事情也远不止复制文件,这可能会给菜鸟们留下复杂和难以掌握的印象。尤其是,scp 命令的标志大体上可以直接对应到 cp 命令的标志,而 rsync 命令的标志却和它大相径庭。

本文将为熟悉 scp 的人提供一个介绍和过渡的指南。让我们跳进最常见的场景:复制文件和复制目录。

复制文件

对于复制单个文件而言,scprsync 命令实际上是等价的。比方说,你需要把 foo.txt 传到你在名为 server 的服务器上的主目录下:

$ scp foo.txt me@server:/home/me/

相应的 rsync 命令只需要输入 rsync 取代 scp

$ rsync foo.txt me@server:/home/me/

复制目录

对于复制目录,就有了很大的分歧,这也解释了为什么 rsync 会被认为比 scp 更复杂。如果你想把 bar 目录复制到 server 服务器上,除了指定 ssh 信息外,相应的 scp 命令和 cp 命令一模一样。

$ scp -r bar/ me@server:/home/me/

对于 rsync,考虑的因素比较多,因为它是一个比较强大的工具。首先,我们来看一下最简单的形式:

$ rsync -r bar/ me@server:/home/me/

看起来很简单吧?对于只包含目录和普通文件的简单情况,这就可以了。然而,rsync 更在意发送与主机系统中一模一样的文件。让我们来创建一个稍微复杂一些,但并不罕见的例子:

# 创建多级目录结构
$ mkdir -p bar/baz
# 在其根目录下创建文件
$ touch bar/foo.txt
# 现在创建一个符号链接指回到该文件
$ cd bar/baz
$ ln -s ../foo.txt link.txt
# 返回原位置
$ cd -

现在我们有了一个如下的目录树:

bar
├── baz
│   └── link.txt -> ../foo.txt
└── foo.txt

1 directory, 2 files

如果我们尝试上面的命令来复制 bar,我们会注意到非常不同的(并令人惊讶的)结果。首先,我们来试试 scp

$ scp -r bar/ me@server:/home/me/

如果你 ssh 进入你的服务器,看看 bar 的目录树,你会发现它和你的主机系统有一个重要而微妙的区别:

bar
├── baz
│   └── link.txt
└── foo.txt

1 directory, 2 files

请注意,link.txt 不再是一个符号链接,它现在是一个 foo.txt 的完整副本。如果你习惯于使用 cp,这可能会是令人惊讶的行为。如果你尝试使用 cp -r 复制 bar 目录,你会得到一个新的目录,里面的符号链接和 bar 的一样。现在如果我们尝试使用之前的 rsync 命令,我们会得到一个警告:

$ rsync -r bar/ me@server:/home/me/
skipping non-regular file "bar/baz/link.txt"

rsync 警告我们它发现了一个非常规文件,并正在跳过它。因为你没有告诉它可以复制符号链接,所以它忽略了它们。rsync 在手册中有一节“符号链接”,解释了所有可能的行为选项。在我们的例子中,我们需要添加 -links 标志:

$ rsync -r --links bar/ me@server:/home/me/

在远程服务器上,我们看到这个符号链接是作为一个符号链接复制过来的。请注意,这与 scp 复制符号链接的方式不同。

bar/
├── baz
│   └── link.txt -> ../foo.txt
└── foo.txt

1 directory, 2 files

为了省去一些打字工作,并利用更多的文件保护选项,在复制目录时可以使用归档标志 -archive(简称 -a)。该归档标志将做大多数人所期望的事情,因为它可以实现递归复制、符号链接复制和许多其他选项。

$ rsync -a bar/ me@server:/home/me/

如果你感兴趣的话,rsync 手册页有关于存档标志的深入解释。

注意事项

不过,使用 rsync 有一个注意事项。使用 scp 比使用 rsync 更容易指定一个非标准的 ssh 端口。例如,如果 server 使用 8022 端口的 SSH 连接,那么这些命令就会像这样:

$ scp -P 8022 foo.txt me@server:/home/me/

而在使用 rsync 时,你必须指定要使用的“远程 shell”命令,默认是 ssh。你可以使用 -e 标志来指定。

$ rsync -e 'ssh -p 8022' foo.txt me@server:/home/me/

rsync 会使用你的 ssh 配置;但是,如果你经常连接到这个服务器,你可以在你的 ~/.ssh/config 文件中添加以下代码。这样你就不需要再为 rsyncssh 命令指定端口了!

Host server
    Port 8022

另外,如果你连接的每一台服务器都在同一个非标准端口上运行,你还可以配置 RSYNC_RSH 环境变量。

为什么你还是应该切换到 rsync?

现在我们已经介绍了从 scp 切换到 rsync 的日常使用案例和注意事项,让我们花一些时间来探讨一下为什么你可能想要使用 rsync 的优点。很多人在很久以前就已经开始使用 rsync 了,就是因为这些优点。

即时压缩

如果你和服务器之间的网络连接速度较慢或有限,rsync 可以花费更多的 CPU 处理能力来节省网络带宽。它通过在发送数据之前对数据进行即时压缩来实现。压缩可以用 -z 标志来启用。

差量传输

rsync 也只在目标文件与源文件不同的情况下复制文件。这可以在目录中递归地工作。例如,如果你拿我们上面的最后一个 bar 的例子,并多次重新运行那个 rsync 命令,那么在最初的传输之后就不会有任何传输。如果你知道你会重复使用这些命令,例如备份到 U 盘,那么使用 rsync 即使是进行本地复制也是值得的,因为这个功能可以节省处理大型数据集的大量的时间。

同步

顾名思义,rsync 可以做的不仅仅是复制数据。到目前为止,我们只演示了如何使用 rsync 复制文件。如果你想让 rsync 把目标目录变成源目录的样子,你可以在 rsync 中添加删除标志 -delete。这个删除标志使得 rsync 将从源目录中复制不存在于目标目录中的文件,然后它将删除目标目录中不存在于源目录中的文件。结果就是目标目录和源目录完全一样。相比之下,scp 只会在目标目录下添加文件。

结论

对于简单的使用情况,rsync 并不比老牌的 scp 工具复杂多少。唯一显著的区别是在递归复制目录时使用 -a 而不是 -r。然而,正如我们看到的,rsync-a 标志比 scp-r 标志更像 cp-r 标志。

希望通过这些新命令,你可以加快你的文件传输工作流程。


via: https://fedoramagazine.org/scp-users-migration-guide-to-rsync/

作者:chasinglogic 选题:lujun9972 译者:wxy 校对:wxy

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

微软用新的身份验证工具加强了对 deepfake 的打击力度

deepfake,即合成媒体,是由人工智能(AI)操纵的照片、视频或音频文件。为了打击 deepfake 的盛行,微软推出了一款新的视频认证工具,它可以对一张静态照片或视频进行分析,提供一份该媒体被人为操纵的几率百分比。它的工作原理是检测 deepfake 的混合边界和微妙的褪色或灰度元素,这些元素可能无法被人眼检测到。

来源:zdnet

拍一拍:果然是魔高一尺道高一丈,AI 的问题需要 AI 来解决。不过,长期来看,这是一个不断博弈的过程。

白帽黑客一度能控制所有特斯拉汽车

白帽子黑客 Jason Hughes 曾经利用服务器端的漏洞能控制所有特斯拉的汽车。任何特斯拉汽车的远程指令或诊断信息都会经过 Mothership 服务器。他在 Mothership 中发现了漏洞允许他以任何特斯拉车主的身份给汽车发送指令。当时特斯拉汽车的远程控制功能还比较有限,Hughes 并不能操纵汽车开到任何地方,但可以使用召唤功能召唤它们。这些漏洞让他获得了 5 万美元的赏金。

来源:solidot

拍一拍:新技术出现往往伴随着巨大的风险,幸好总能尽快迭代解决。

英特尔更新 MKL,AMD CPU 再次受伤

英特尔的 Math Kernel Library(MKL)是科学计算领域广泛使用的数学库,但它对竞争对手 AMD 的 CPU 非常不友好。英特尔最近释出了 MKL 2020 Update 1+,导致 AMD CPU 之前的一个旁路解决方案失效。虽然英特尔在 MKL 中加入了 Zen 内核,但并不完备,因此,科学计算软件在 AMD CPU 上性能又变差了。

来源:solidot

拍一拍:商业公司的出发点是如何利益最大化。

来了解一下 printf ,一个神秘的、灵活的和功能丰富的函数,可以替换 echo、print 和 cout。

当我开始学习 Unix 时,我很早就接触到了 echo 命令。同样,我最初的 Python 课程也涉及到了 print 函数。再想起学习 C++ 和 Java 时学到 coutsystemout。似乎每种语言都骄傲地宣称拥有一种方便的单行输出方法,并生怕这种方式要过时一样宣传它。

但是当我翻开中级教程的第一页后,我遇到了 printf,一个晦涩难懂的、神秘莫测的,又出奇灵活的函数。本文一反向初学者隐藏 printf 这个令人费解的传统,旨在介绍这个不起眼的 printf 函数,并解释如何在几乎所有语言中使用它。

printf 简史

术语 printf 代表“ 格式化打印 print formatted ”,它可能最早出现 Algol 68 编程语言中。自从它被纳入到 C 语言后,printf 已经在 C++、Java、Bash、PHP 中一次次重新实现,并且很可能在你最喜欢的 “后 C” 语言中再次出现。

显然,它很受欢迎,但很多人认为它的语法很复杂,尤其是与 echoprintcout 等替代的函数相比尤为明显。例如,这是在 Bash 中的一个简单的 echo 语句:

$ echo hello
hello
$

这是在 Bash 中使用 printf 得到同样结果:

$ printf "%s\n" hello
hello
$

但是所增加的复杂性反而让你拥有很多功能,这是为什么 printf 值得学习的确切原因。

printf 输出

printf 背后的基本思想是:它能够基于与内容分离的样式信息来格式化输出。例如,这里是 printf 认可的视作特殊字符的特定序列集合。你喜欢的语言可能会有或多或少的序列,但是通常包含:

  • \n: 新行
  • \r: 回车换行
  • \t: 水平制表符
  • \NNN: 一个包含一个到三个数字,使用八进制值表示的特殊字节

例如:

$ printf "\t\123\105\124\110\n"
     SETH
$

在这个 Bash 示例中, printf 渲染一个制表符后,然后是分配给四个八进制值字符串的 ASCII 字符,并以一个生成一个新行(\n)的控制序列结束。

如果同样使用 echo 来输出会产生更多的字符:

$ echo "\t\123\105\124\110\n"
\t\123\105\124\110\n
$

使用 Python 的 print 函数来完成同样的任务,你会发现 Python 的 print 命令比你想象的要强大:

>>> print("\t\123\n")
        S

>>>

显然,Python 的 print 包含传统的 printf 特性以及简单的 echocout 的特性。

不过,这些示例包括的只是文字字符,尽管在某些情况下它们也很有用,但它们可能是 printf 最不重要的部分。printf 的真正的威力在于格式化说明。

使用 printf 格式化输出

格式化说明符是以一个百分号(%)开头的字符。

常见的格式化说明符包括:

  • %s: 字符串
  • %d: 数字
  • %f: 浮点数字
  • %o: 一个八进制的数字

这些格式化说明符是 printf 语句的占位符,你可以使用一个在其它地方提供的值来替换你的 printf 语句中的占位符。这些值在哪里提供取决于你使用的语言和它的语法,这里有一个简单的 Java 例子:

string var="hello\n";
system.out.printf("%s", var);

把这个代码包裹在适当的样板文件中,在执行后,将呈现:

$ ./example
hello
$

但是,当一个变量的内容更改时,有意思的地方就来了。假设你想基于不断增加的数字来更新输出:

#include <stdio.h>

int main() {
  int var=0;
  while ( var < 100) {
    var++;
  printf("Processing is %d% finished.\n", var);
  }
  return 0;
}

编译并运行:

Processing is 1% finished.
[...]
Processing is 100% finished.

注意,在代码中的两个 % 将被解析为一个打印出来的 % 符号。

使用 printf 限制小数位数

数字也可以是很复杂,printf 提供很多格式化选项。你可以对浮点数使用 %f 限制打印出多少个小数位。通过把一个点(.)和一个限制的数放置在百分符号和 f 之间, 你可以告诉 printf 打印多少位小数。这是一个简单的用 Bash 写的简练示例:

$ printf "%.2f\n" 3.141519
3.14
$

类似的语法也适用于其它的语言。这里是一个 C 语言的示例:

#include <math.h>
#include <stdio.h>

int main() {
  fprintf(stdout, "%.2f\n", 4 * atan(1.0));
  return 0;
}

对于三位小数,使用 .3f ,依次类推。

使用 printf 来在数字上添加逗号

因为位数大的数字很难解读,所以通常使用一个逗号来断开大的数字。你可以在百分号和 d 之间放置一个撇号('),让 printf 根据需要添加逗号:

$ printf "%'d\n" 1024
1,024
$ printf "%'d\n" 1024601
1,024,601
$

使用 printf 来添加前缀零

printf 的另一个常用的用法是对文件名称中的数字强制实行一种特定的格式。例如,如果你在一台计算机上有 10 个按顺序排列的文件,计算机可能会把 10.jpg 排在 1.jpg 之前,这可能不是你的本意。当你以编程的方式写一个到文件时,你可以使用 printf 来用前缀为 0 的字符形成文件名称。这是一个简单的用 Bash 写的简练示例:

$ printf "%03d.jpg\n" {1..10}
001.jpg
002.jpg
[...]
010.jpg

注意:每个数字最多使用 3 位数字。

使用 printf

正如这些 printf 示例所显示,包括控制字符,尤其是 \n ,可能会冗长,并且语法相对复杂。这就是为什么开发像 echocout 之类的快捷方式的原因。不过,如果你时不时地使用 printf ,你就会习惯于这种语法,并且它也会变成你的习惯。我不认为 printf 有任何理由成为你在日常活动中打印时的首选,但是它是一个很好的工具,当你需要它时,它不会拖累你。

花一些时间学习你所选择语言中的 printf,并且当你需要时就使用它。它是一个强有力的工具,你不会后悔随时可用的工具。


via: https://opensource.com/article/20/8/printf

作者:Seth Kenlon 选题:lujun9972 译者:robsean 校对:wxy

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

使用 Docsify 创建文档网页并发布到 GitHub Pages 上。

文档是帮助用户使用开源项目一个重要部分,但它并不总是开发人员的首要任务,因为他们可能更关注的是使他们的应用程序更好,而不是帮助人们使用它。对开发者来说,这就是为什么让发布文档变得更容易是如此有价值的原因。在本教程中,我将向你展示一个这样做的方式:将 Docsify 文档生成器与 GitHub Pages 结合起来。

默认情况下,GitHub Pages 会提示用户使用 Jekyll,这是一个支持 HTML、CSS 和其它网页技术的静态网站生成器。Jekyll 可以从以 Markdown 格式编码的文档文件中生成一个静态网站,GitHub 会自动识别它们的 .md.markdown 扩展名。虽然这种设置很好,但我想尝试一下其他的东西。

幸运的是,GitHub Pages 支持 HTML 文件,这意味着你可以使用其他网站生成工具(比如 Docsify)在这个平台上创建一个网站。Docsify 是一个采用 MIT 许可证的开源项目,其具有可以让你在 GitHub Pages 上轻松创建一个有吸引力的、先进的文档网站的功能

 title=

开始使用 Docsify

安装 Docsify 有两种方法:

  1. 通过 NPM 安装 Docsify 的命令行界面(CLI)。
  2. 手动编写自己的 index.html

Docsify 推荐使用 NPM 方式,但我将使用第二种方案。如果你想使用 NPM,请按照快速入门指南中的说明进行操作。

从 GitHub 下载示例内容

我已经在该项目的 GitHub 页面上发布了这个例子的源代码。你可以单独下载这些文件,也可以通过以下方式克隆这个存储库

git clone https://github.com/bryantson/OpensourceDotComDemos

然后 cd 进入 DocsifyDemo 目录。

我将在下面为你介绍这些代码,它们克隆自我的示例存储库中,这样你就可以理解如何修改 Docsify。如果你愿意,你也可以从头开始创建一个新的 index.html 文件,就像 Docsify 文档中的的示例一样:

<!-- index.html -->

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta charset="UTF-8">
  <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css">
</head>
<body>
  <div id="app"></div>
  <script>
    window.$docsify = {
      //...
    }
  </script>
  <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
</body>
</html>

探索 Docsify 如何工作

如果你克隆了我的 GitHub 存储库,并切换到 DocsifyDemo 目录下,你应该看到这样的文件结构:

 title=

文件/文件夹名称内容
index.html主要的 Docsify 初始化文件,也是最重要的文件
_sidebar.md生成导航
README.md你的文档根目录下的默认 Markdown 文件
images包含了 README.md 中的示例 .jpg 图片
其它目录和文件包含可导航的 Markdown 文件

index.html 是 Docsify 可以工作的唯一要求。打开该文件,你可以查看其内容:

<!-- index.html -->

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta charset="UTF-8">
  <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css">
  <title>Docsify Demo</title>
</head>
<body>
  <div id="app"></div>
  <script>
    window.$docsify = {
      el: "#app",
      repo: 'https://github.com/bryantson/OpensourceDotComDemos/tree/master/DocsifyDemo',
      loadSidebar: true,
    }
  </script>
  <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
</body>
</html>

这本质上只是一个普通的 HTML 文件,但看看这两行:

<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css">
... 一些其它内容 ...
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>

这些行使用内容交付网络(CDN)的 URL 来提供 CSS 和 JavaScript 脚本,以将网站转化为 Docsify 网站。只要你包含这些行,你就可以把你的普通 GitHub 页面变成 Docsify 页面。

<body> 标签后的第一行指定了要渲染的内容:

<div id="app"></div>

Docsify 使用单页应用(SPA)的方式来渲染请求的页面,而不是刷新一个全新的页面。

最后,看看 <script> 块里面的行:

<script>
    window.$docsify = {
      el: "#app",
      repo: 'https://github.com/bryantson/OpensourceDotComDemos/tree/master/DocsifyDemo',
      loadSidebar: true,
    }
</script>

在这个块中:

  • el 属性基本上是说:“嘿,这就是我要找的 id,所以找到它并在那里呈现。”
  • 改变 repo 值,以确定当用户点击右上角的 GitHub 图标时,会被重定向到哪个页面。  title=
  • loadSideBar 设置为 true 将使 Docsify 查找包含导航链接的 _sidebar.md 文件。

你可以在 Docsify 文档的配置部分找到所有选项。

接下来,看看 _sidebar.md 文件。因为你在 index.html 中设置了 loadSidebar 属性值为 true,所以 Docsify 会查找 _sidebar.md 文件,并根据其内容生成导航文件。示例存储库中的 _sidebar.md 内容是:

<!-- docs/_sidebar.md -->


* [HOME](./)

* [Tutorials](./tutorials/index)
  * [Tomcat](./tutorials/tomcat/index)
  * [Cloud](./tutorials/cloud/index)
  * [Java](./tutorials/java/index)

* [About](./about/index)

* [Contact](./contact/index)

这会使用 Markdown 的链接格式来创建导航。请注意 “Tomcat”、“Cloud” 和 “Java” 等链接是缩进的;这意味着它们被渲染为父链接下的子链接。

README.mdimages 这样的文件与存储库的结构有关,但所有其它 Markdown 文件都与你的 Docsify 网页有关。

根据你的需求,随意修改你下载的文件。下一步,你将把这些文件添加到你的 GitHub 存储库中,启用 GitHub Pages,并完成项目。

启用 GitHub 页面

创建一个示例的 GitHub 存储库,然后使用以下 GitHub 命令检出、提交和推送你的代码:

$ git clone 你的 GitHub 存储库位置
$ cd 你的 GitHub 存储库位置
$ git add .
$ git commit -m "My first Docsify!"
$ git push

设置你的 GitHub Pages 页面。在你的新 GitHub 存储库中,点击 “Settings”:

 title=

向下滚动直到看到 “GitHub Pages”:

 title=

查找 “Source” 部分:

 title=

点击 “Source” 下的下拉菜单。通常,你会将其设置为 “master branch”,但如果你愿意,也可以使用其他分支:

 title=

就是这样!你现在应该有一个链接到你的 GitHub Pages 的页面了。点击该链接将带你到那里,然后用 Docsify 渲染:

 title=

它应该像这样:

 title=

结论

通过编辑一个 HTML 文件和一些 Markdown 文本,你可以用 Docsify 创建一个外观精美的文档网站。你觉得怎么样?请留言,也可以分享其他可以和 GitHub Pages 一起使用的开源工具。


via: https://opensource.com/article/20/7/docsify-github-pages

作者:Bryant Son 选题:lujun9972 译者:wxy 校对:wxy

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

Manjaro 社区版 PinePhone Linux 智能机即将上市

Manjaro 团队表示:“PinePhone 的下一个社区版本(CE)将启用 Manjaro……现已支持几乎所有 Pine64 单板机和相关设备”。可购买预装了 Manjaro Linux 的 PinePhone,并且可从 2GB RAM + 16GB ROM / 3GB RAM + 32GB ROM 这两种存储组合中进行选择。

来源:cnbeta

拍一拍:真正的开源爱好者,自然希望他的手机也是真正开源的。

k3s 进入 CNCF 沙箱,首个进入 CNCF 的 k8s 发行版

Rancher 发布公告,宣布其开源项目 k3s 已经进入 CNCF 沙箱孵化。k3s 是一个轻量级 Kubernetes,适用于 Edge、IoT、CI 与 ARM 场景。k3s 旨在成为完全兼容的 Kubernetes 发行版。自 2019 年 2 月发布,k3s 的全球下载量超过 100 万次,每周平均被安装超过 2 万次,其中 30% 的下载量来自于中国。

来源:开源中国

拍一拍:虽然 k3s 像是一个 k8s 的子项目,但是还是被认为是独立项目进入了孵化。

Google Chrome 加入密码泄露检查功能,支持一键跳转修改

这项功能采用了“众所周知(.well-known)”的解决方案,大多数网站都有提供标准的“修改密码”页面。而 Chrome 浏览器做到了更进一步 —— 帮助用户一件跳转!

来源:cnbeta

拍一拍:为了你们泄露的密码,浏览器厂商真是操尽了心。

Debian Linux 作为颇受 Linux 爱好者青睐的老牌发行版,无论在服务器领域、嵌入式环境,还是个人作为桌面计算机操作系统使用,都有一大片铁杆粉丝。

不过就中文使用环境而言,普遍遇到的一个现状是针对中文、中国人使用习惯打造的软件比较少,也缺乏整理,很多人不知道在哪里可以找到。

前两天,老王在群内偶尔发现有朋友在分享一款名为“铜豌豆 Linux”的 Debian 定制版,颇感兴趣,下面将它分享给大家。


铜豌豆 Linux 是什么?

铜豌豆 Linux 是一款基于 Debian 的 Linux 中文桌面操作系统。

Debian 是一款非常优秀的 Linux 操作系统,但由于版权限制等多方面的原因,其默认安装缺少中国人常用的软件。 将一个原生 Debian 安装好后,再修改配置为中国人可以使用的日常操作系统,就是对一个对 Debian 比较了解的技术人员来讲,也需要不少时间。

铜豌豆 Linux 操作系统在 Debian 基础上,优化安装步骤,收集整理制作中文常用软件、一键安装脚本,搭建软件源,一次性安装完成常用中文应用,节省大家定制 Debian 的时间,可以做到“开箱即用”。

你是否在爱着 Debian 的同时,也感受到了这些困扰?

  • 由于 Debian 严格遵循源代码开放的自由协议,硬件厂家的闭源驱动固件默认是不会放在 Debian 官方 iso 里面。
  • 目前笔记本电脑一般默认集成有无线网卡,但这类无线网卡的驱动,在原生 Debian 的安装过程中,需要自己先确认无线网卡芯片型号,手工用 U 盘拷贝对应固件文件,再进行加载。
  • 由于受到 Debian iso 文件大小的限制,在安装的时候,即使安装界面选择中文,也没有安装中文字体,安装后第一次重启登录,中文显示是乱码,需要再手工用命令行安装中文字体才行。
  • Debian 的在安装过程中的可定制化程度比较高,有较多安装选项在安装过程中需要选择,对用户的技术知识水平也有一定的要求。

响当当的铜豌豆 Linux

针对以上的这些问题,铜豌豆 Linux 定制化安装 iso 文件,对安装过程进行了大量优化:

  • 采用 preseed 等技术,默认设置安装过程中的很多配置选项,无需用户输入
  • 默认使用中文安装界面、中文字符集
  • 默认集成常见无线网卡固件,让内核能够直接识别并驱动
  • 默认采用 DHCP 方式自动获取网络参数
  • 默认使用速度比较快的国内 Debian 官方镜像作为软件源和安全升级源
  • 默认安装中文字体、搜狗输入法、WPS 等常用中文应用
  • 默认设置 root 账号密码
  • 默认设置新用户及密码
  • 默认识别多个硬盘的多个操作系统,并自动将 GRUB 安装在 sda 硬盘引导区

在整个安装过程中,以尽量自动化和免交互输入为目标,只需要进行“WiFi 选择”、“WiFi 密码输入”、“硬盘分区”这三个步骤,就可以完成整个操作系统安装。而且这三个步骤,只需要在安装初期前面几分钟的时候需要用户输入。在硬盘分区完成后,后续大部分的安装耗时,都是系统自动完成,不需要人为再干预。安装完成后,会自动重启进入登录界面。

如果是使用的 SSD 硬盘,一般只需要半个小时,可以完成全部安装,而且后续 20 多分钟,是不需要人一直在旁边盯着看的。

铜豌豆 Linux 软件收录

除了安装方便之外,铜豌豆 Linux 中都有什么软件呢?

为方便大家安装各类中文软件,铜豌豆 Linux 软件源积极收集各类中文软件。收录的软件包中,既有开源项目软件,也有各类商业软件,丰富 Linux 桌面中文应用。

对收录的 deb 软件包,会用 Debian 官方软件包质量检查工具 lintian 进行质量检查,安装卸载测试等工作。 确保收录的软件包,维持在相当的质量水平。

铜豌豆 Linux 完全尊重软件包知识产权,所收录的软件包至少是可以个人免费使用才行,不收录破解版本。

铜豌豆软件源同时支持 Debian 系发行版。

收纳开源社区中文软件包

中国象棋、麻将 等中文开源软件,积极收集整理到“铜豌豆”软件源,并进行必要的调整、重新打包,共同打造 Linux 中文桌面生态。 目前铜豌豆软件源收录的中文应用软件包约 90 个。(不包括 Debian 官方软件包和底层依赖相关软件包)

铜豌豆软件源的软件源,都可以在“铜豌豆应用商店”里面轻松安装。

自制中文字体等软件包

针对目前 Linux 桌面缺少中文字体的窘境, iso 文件默认安装自制字体包,让 WPS 打开不报缺少字体的错误。

“铜豌豆”项目组成员凡客做出了积极的贡献,收集整理了若干开源或者免费商用的中文字体,制作打包。目前已经制作好的字体软件包有:

  • 微软 cascadia 英文字体
  • 鸿雷板书简体
  • 江西拙楷
  • 演示春风楷(毛笔楷体)
  • 演示秋鸿楷(毛笔楷体)
  • 演示夏行楷(毛笔楷体)
  • 演示悠然小楷(毛笔楷体)
  • 优设标题黑
  • 杨任东竹石体
  • 小赖手写体
  • 一点明体
  • 江城斜宋体、江城斜黑体
  • 萌神拼音体(自带拼音)
  • 黄令东齐伋体、黄令东齐伋复刻体
  • 演示佛系体
  • 悠哉手写体
  • 更纱黑体(自带常规体、斜体)

中文字体软件包还在持续制作增加中。

商业软件互动

对中文商业软件在适配测试过程中发现的问题,也积极和商业公司沟通,进行良性互动。得到了百度网盘、WPS 、永中 office 等公司的反馈。而在向 linuxqq 反馈的意见,也在 linuxqq 新版本中得到了改进。

关于铜豌豆

历程

铜豌豆最早始于 2019 年 9 月在码云上创建的第一个仓库: https://gitee.com/atzlinux/debian-cn

  • 前期是用的一键安装脚本的方式,在已经安装好 Debian 操作系统的上一次性安装常用中文应用: https://www.atzlinux.com/yjaz.htm
  • 后来自己搭建了 apt 软件源,方便软件包下载: https://www.atzlinux.com/allpackages.htm
  • 第一版定制化的 iso 文件发布于 2019 年 11 月初,目前已经经历了 9 次更新迭代到了 10.5.1 版本。

项目团队成员

项目发布后,先后有多位 Linux 爱好者参与项目,目前总计有 5 位铜豌豆开发者贡献了软件包,项目核心成员约 10 人。

非常欢迎更多的 Linux 爱好者加入,具体请访问: https://www.atzlinux.com/devel.htm

来一起添砖加瓦吧

与其抱怨中文 Linux 社区匮乏,不如身体力行:

结语

那么,你有没有试过铜豌豆呢,你对这个项目感兴趣吗?希望大家来反馈和参与,把这颗铜豌豆打造得圆坨坨、响当当。