2021年3月

华为称,鸿蒙中有 Android 代码,但将不包含 Google 贡献的

华为消费者业务软件部总裁王成录今年初曾表示,鸿蒙不是 Android 或 iOS 的拷贝,面对鸿蒙 V2 中包含 Android 代码的质疑,王成录在采访中回应称,“并不是所有 Android 代码都是 Google 开发的,绝大部分代码来自开源社区。鸿蒙也会吸收社区的优秀技术和代码,用了 AOSP(Android 开源项目)的开源代码,就判断鸿蒙是 Android 换了皮,说明这类吐槽者没有太准确理解什么是开源。今年 10 月,鸿蒙第三阶段的开源代码会上线,来自 AOSP 社区的、由 Google 贡献的代码几乎没有了。”

这份采访中透露的信息量非常大。

Google 表示不再为广告而跟踪用户

Google 准备杀死跟踪用户在网上活动的 cookie,它没有计划构建新的用户身份识别符,因为它并不需要为了广告而跟踪个别用户

Google 称,聚合、匿名化和设备本地处理等隐私保护技术的进步提供了一条清晰的道路替代个人身份识别符,广告商不需要跟踪用户就能受益于数字广告。

说不清这到底是一种进步还是退步,总之,广告是少不了的。

美国空军要求逆向工程 B-2 隐形轰炸机的关键零件

B-2 单价高达 24 亿美元,总共只造了 20 架,相关零部件显然早就停产了。利用新的技术逆向工程制造出合适的零部件可能比重启生产更廉价。美国政府对 B-2 隐形轰炸机的关键零件负载热交换器的逆向工程发出招标,要求在交付时提供完整的技术数据。

这就像回家忘记带钥匙找开锁公司一样。

虚拟环境是安全地使用不同版本的 Python 和软件包组合的关键。

 title=

Python 对管理虚拟环境的支持,已经提供了一段时间了。Python 3.3 甚至增加了内置的 venv 模块,用于创建没有第三方库的环境。Python 程序员可以使用几种不同的工具来管理他们的环境,我使用的工具叫做 virtualenvwrapper

虚拟环境是将你的 Python 项目及其依赖关系与你的系统安装的 Python 分离的一种方式。如果你使用的是基于 macOS 或 Linux 的操作系统,它很可能在安装中附带了一个 Python 版本,事实上,它很可能依赖于那个特定版本的 Python 才能正常运行。但这是你的计算机,你可能想用它来达到自己的目的。你可能需要安装另一个版本的 Python,而不是操作系统提供的版本。你可能还需要安装一些额外的库。尽管你可以升级你的系统 Python,但不推荐这样做。你也可以安装其他库,但你必须注意不要干扰系统所依赖的任何东西。

虚拟环境是创建隔离的关键,你需要安全地修改不同版本的 Python 和不同组合的包。它们还允许你为不同的项目安装同一库的不同版本,这解决了在相同环境满足所有项目需求这个不可能的问题。

为什么选择 virtualenvwrapper 而不是其他工具?简而言之:

  • venv 需要在项目目录内或旁边有一个 venv 目录不同,virtualenvwrapper 将所有环境保存在一个地方:默认在 ~/.virtualenvs 中。
  • 它提供了用于创建和激活环境的命令,而且激活环境不依赖于找到正确的 activate 脚本。它只需要(从任何地方)workon projectname而不需要 source ~/Projects/flashylights-env/bin/activate

开始使用

首先,花点时间了解一下你的系统 Python 是如何配置的,以及 pip 工具是如何工作的。

以树莓派系统为例,该系统同时安装了 Python 2.7 和 3.7。它还提供了单独的 pip 实例,每个版本一个:

  • 命令 python 运行 Python 2.7,位于 /usr/bin/python
  • 命令 python3 运行 Python 3.7,位于 /usr/bin/python3
  • 命令 pip 安装 Python 2.7 的软件包,位于 /usr/bin/pip
  • 命令 pip3 安装 Python 3.7 的包,位于 /usr/bin/pip3

 title=

在开始使用虚拟环境之前,验证一下使用 pythonpip 命令的状态是很有用的。关于你的 pip 实例的更多信息可以通过运行 pip debugpip3 debug 命令找到。

在我运行 Ubuntu Linux 的电脑上几乎是相同的信息(除了它是 Python 3.8)。在我的 Macbook 上也很相似,除了唯一的系统 Python 是 2.6,而我用 brew 安装 Python 3.8,所以它位于 /usr/local/bin/python3(和 pip3 一起)。

安装 virtualenvwrapper

你需要使用系统 Python 3 的 pip 安装 virtualenvwrapper

sudo pip3 install virtualenvwrapper

下一步是配置你的 shell 来加载 virtualenvwrapper 命令。你可以通过编辑 shell 的 RC 文件(例如 .bashrc.bash_profile.zshrc)并添加以下几行:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

 title=

如果你的 Python 3 位于其他地方,请根据你的设置修改第一行。

关闭你的终端,然后重新打开它,这样才能生效。第一次打开终端时,你应该看到 virtualenvwrapper 的一些输出。这只会发生一次,因为一些目录是作为设置的一部分被创建的。

现在你应该可以输入 mkvirtualenv --version 命令来验证 virtualenvwrapper 是否已经安装。

创建一个新的虚拟环境

假设你正在进行一个名为 flashylights 的项目。要用这个名字创建一个虚拟环境,请运行该命令:

mkvirtualenv flashylights

环境已经创建并激活,所以你会看到 (flashlylights) 出现在你的提示前:

 title=

现在环境被激活了,事情发生了变化。python 现在指向一个与你之前在系统中识别的 Python 实例完全不同的 Python 实例。它为你的环境创建了一个目录,并在其中放置了 Python 3 二进制文件、pip 命令等的副本。输入 which pythonwhich pip 来查看它们的位置。

 title=

如果你现在运行一个 Python 程序,你可以用 python 代替 python3 来运行,你可以用 pip 代替 pip3。你使用 pip安装的任何包都将只安装在这个环境中,它们不会干扰你的其他项目、其他环境或系统安装。

要停用这个环境,运行 deactivate 命令。要重新启用它,运行 workon flashylights

你可以用 workon 或使用 lsvirtualenv 列出所有可用的环境。你可以用 rmvirtualenv flashylights 删除一个环境。

在你的开发流程中添加虚拟环境是一件明智的事情。根据我的经验,它可以防止我在系统范围内安装我正在试验的库,这可能会导致问题。我发现 virtualenvwrapper 是最简单的可以让我进入流程的方法,并无忧无虑地管理我的项目环境,而不需要考虑太多,也不需要记住太多命令。

高级特性

  • 你可以在你的系统上安装多个 Python 版本(例如,在 Ubuntu 上使用 deadsnakes PPA),并使用该版本创建一个虚拟环境,例如,mkvirtualenv -p /usr/bin/python3.9 myproject
  • 可以在进入和离开目录时自动激活、停用。
  • 你可以使用 postmkvirtualenv 钩子在每次创建新环境时安装常用工具。

更多提示请参见文档

本文基于 Ben Nuttall 在 Tooling Tuesday 上关于 virtualenvwrapper 的帖子,经许可后重用。


via: https://opensource.com/article/21/2/python-virtualenvwrapper

作者:Ben Nuttall 选题:lujun9972 译者:geekpi 校对:wxy

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

云上运维,那就是和云上资源和产品打交道,无疑会涉及到一系列的资源部署。比如简单地使用一台云服务器,就需要运维人员依次创建 VPC、VSwitch、安全组和云服务器实例,如果想创建一个集群,那还要进一步创建负载均衡、数据库和多个云服务器实例。

随着业务规模的不断扩大,IT系统和环境日益复杂,人工一个一个创建资源的方式显然不可取,许多人正在转向自动化资源部署和配置的工具。

本文将基于基础设施即代码 IaC 理念,分享如何借助自动化编排工具实现自动化部署,使得运上运维工作更为高效。

手动/半手动云上运维的五大痛点

对于云上资源的部署,如果你的云上运维还处于手动或是半手动运维阶段,那么大部分工作是通过控制台选择特定资源规格参数进行创建,还有一部分是使用 CLI(如 aliyun-cli)或者 SDK 直接调用接口来创建资源。但随着企业的云上业务规模不断扩大,不论是哪种方式,或多或少都会遇到下述五个问题:

  • 部署效率低。手动创建对于创建少量种类的资源来说倒是种很直观的方式,但一旦涉及到大量不同资源时,尤其是资源之间还有依赖关系,这时候会发现需要在不同的产品控制台之间来回切换,还要时刻关注创建进度,才能再去创建下一个依赖它的资源,整个过程所耗费的时间和精力可想而知,相信不少人有深有体会。
  • 可复制性差。当手动创建好了一系列的资源后,如果需要针对不同的环境(如预发、测试和生产)或不同的地域(如北京和上海)创建完全相同的资源,则又需要花费很多时间一步步地进行操作,无法直接复制、做到一键部署。
  • 一致性差。手动创建还有一个非常大的问题,那就是非常容易出现配置错误,很难保证两套环境中各个资源配置是完全相同的。
  • 管理困难。资源的创建只是开始,可能还需要针对这批资源做扩缩容、更新特定资源的规格等操作。但手动运维的方式就导致没有统一管理这批资源的入口,仍需要分别到各产品控制台上操作。随着资源数越来越多,资源管理就愈发难以维护。
  • 难以 DevOps。每次开发、测试或部署软件应用程序时都可能需要手动部署基础设施,既无法对基础设施进行版本控制,也无法对其变动进行评审,更无法做到敏捷部署。

其实,我们都知道这些问题的背后是因为资源的部署还未做到自动化。但这些问题也不断促使着我们思考应该通过什么样的方式来解决这些痛点,才能让整个资源部署过程自动化。

引入基础设施即代码 IaC 理念,实现云上资源自动化部署

在真正做到自动化部署之前,不妨回头看看所需要创建的云服务资源(如 VPC、VSwitch、ECS 实例等),它们相对于Web服务等应用程序来说都是云上的基础设施,如果把这些基础设施想象成一段“代码”,在“代码”中定义产品、规格、数量等信息,那么是不是就可以通过这段“代码”来管理整个基础设施了呢?

这就是 基础设施即代码 Infrastructure as Code (IaC)的理念,将基础设施配置视为软件编程。Kief Morris 在《Infarftruce as Code》一书中对基础设施即代码是这么定义的:

“基础设施即代码是一种使用新的技术来构建和管理动态基础设施的方式。它把基础设施、工具和服务以及对基础设施的管理本身作为一个软件系统,采纳软件工程实践以结构化的安全的方式来管理对系统的变更。”

引入 IaC 的理念,运维人员可以将基础设施的部署和管理过程变得敏捷:

  • 在模板(宽泛意义上的代码)中定义基础设施,即各类云资源及其规格、数量等属性、云资源之间的依赖;
  • 使用版本控制(如 Git)管理模板,并提交评审;
  • 通过评审后由自动化部署工具使用模板来创建/更新基础设施;

基础设施的部署和管理变得便捷后,上述提到的手动运维/半手动运维的痛点问题就可以得到很好的解决:

  • 提升部署效率。使用自动化部署工具进行部署,相对于人工部署的效率将大大提升。
  • 标准化和一致性。将基础设施的内容通过模板的形式保存,对基础设施的变更由对模板的变更来实现,实现了基础设施管理的标准化。此外,使用相同的模板在不同地域部署,也能够保证资源的一致性。
  • 易于管理。对基础设施的管理不再分散于各个产品控制台,而统一到单个模板,使得管理成本大大降低。
  • 敏捷化工作流程。通过基础设施管理流程的规范化和标准化,资源部署的整个过程就变得敏捷。
  • 审计和回滚。对模板进行版本管理,使得对基础设施变动的审计和回退到某个特定版本成为了可能。

四个常见的 IaC 自动化配置与编排工具

当前,有很多 IaC 自动化部署工具,有第三方资源编排工具,也有云服务商提供的云原生的资源编排工具,这里介绍四个自动化配置与编排工具:

  1. 阿里云资源编排服务 ROS(Resource Orchestration Service),这是云原生编排工具,通过编写 JSON/YAML 格式的模板,在模板中定义所需的ECS实例、数据库实例等云服务资源以及资源依赖关系等,然后再根据模板在 ROS 中创建资源栈,ROS 服务端将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。而资源栈则管理着模板中定义的所有资源,并可通过新模板来更新资源栈,包括资源的新增、更新或删除等操作。
  2. AWS CloudFormation,也是云原生的编排工具,运维人员也是通过 JSON/YAML 格式的模板定义云服务资源,通过资源栈管理这些资源。
  3. HashiCorp Terraform,这是一个开源的自动化编排工具。以配置文件为驱动,可以在文件中定义所要管理的组件,即基础设施资源,以此生成一个可执行的计划,通过执行这个计划来完成所定义组件的创建,增量式的变更和持续的管理。如果不可执行,会提示报错。Terraform 不仅可以管理 IaaS 层的资源,如计算实例、网络实例和存储实例等,也可以管理更上层的服务,如DNS 域名和解析记录、SaaS 应用的功能等。
  4. Pulumi,与 Terraform 一样也是开源项目,但它与 Terraform 的重要区别在于:可以用熟悉的编程语言来编写声明式配置,而不需要额外学习云服务商特定的模板语言来写配置。

对于自动化配置与编排工具的选择,笔者的建议是:

  1. 如果你的业务部署在单一云平台,就选择云平台提供的资源编排工具,在阿里云平台就用 ROS、在 AWS 平台就用 CloudFormation,原因很简单:云平台提供的工具是云原生,是免费的托管服务,在服务端就可以执行自动化部署;同时,它还实现了云原生的访问控制、编排资源与实际资源差异检测等功能,用起来比较省心。
  2. 如果你的业务是部署在多个云平台,建议使用第三方的 Terraform 和 Pulumi,因为它不仅可以进行多云资源的部署和管理,还能管理除云以外的其他资源,如 Kubernetes。

如何利用编排工具进行自动化部署和管理?

对于运维人员来说,使用 IaC 理念的自动化部署工具的门槛其实不高,使用步骤也非常简单,主要来说就是编写模板和使用模板。这里谈谈编写模板和使用模板有哪些注意事项,如何才能更好地利用工具、更好地提升运维效率。

1、编写模板的三个注意事项

确认好自动化部署工具,就可以根据不同工具的模板语言来编写对应的模板文件。如果你选择云服务商提供的云原生的编排工具, 编写模板这里,有三点注意事项想重点提醒一下:

  1. 注意资源的依赖关系。不恰当的依赖或少了依赖都会导致资源创建出错。
  2. 注意使用通用属性作为参数。比如实例规格等就是比较通用的属性,建议使用同一份模板,指定不同的参数来达到部署不同规格实例的目的。
  3. 使用有价值的属性作为输出。比如实例 ID、连接地址等内容就是有价值的属性,它们都是在资源创建完成后才能获取到,把这些属性作为整个模板的输出,可以方便后续的查看和管理。

2、自动解析依赖关系,自动化部署基础设施

编写完模板后,就可以通过对应的自动化部署工具将模板转化为真正的资源。上述提到的编排工具都能解析资源的依赖关系,并能先后创建这些资源。同时,对于互不依赖的资源也能够并行创建。

  • 对于阿里云 ROS 和 AWS CloudFormation 来说,可使用模板来创建一个资源栈。一个资源栈即一组云上资源,也就是在模板中定义的基础设施。后续当需要增/删/改一些资源时,也是通过使用模板来更新资源栈来达到目的。
  • 对于 Terraform 来说,可使用配置文件生成一个可执行的计划,通过执行这个计划来完成所定义资源/组件的创建,增量式的变更和持续的管理。
  • 对于 Pulumi 来说,则是直接执行代码来进行部署。

这样的部署方式既能使得资源能按照合理的顺序创建出来,又能够提升部署效率,在遇到异常情况时也会进行一定程度的重试,真正让整个自动化部署过程变得稳定和高效。

以基础设施代码化为基础,进一步高效运维

当运维工作完成整个基础设施模板化后,DevOps 就变得更加容易。我们可以使用版本管理工具(如 Git)管理描述当前基础设施的模板,使用阿里云云效/AWS CodePipline/Jenkins 创建一个从代码提交触发到人工卡点再到资源栈部署的流水线,这样整个基础设施的管理就会变得更加敏捷和自动化。

图1: 基础设施变更的流程图

  1. 在每次变更模板后,将本地仓库的分支内容推送到远程仓库,并发起评审;
  2. 若评审不通过,则修改模板后重新发起评审;若评审通过,则自动触发流水线;
  3. 流水线触发人工卡点,通知上级管理员检查此次变更。若不同意,则终止;若同意,则进入下一个步骤;
  4. 若是首次提交模板,则创建资源栈(即创建基础设施);反之,则更新资源栈(即更新基础设施)。

基础设施变更及预览

IT 基础设施并非一成不变,随着业务的变化,我们可能面临扩缩容场景,也可能面临整个架构的变化。好在基于 IaC 的理念,我们只需要描述基础设施最新配置,而不用担心如何进行变更。但即使如此,我们需要在变更前知道究竟会发生哪些变化。阿里云ROS 和 AWS CloudFormation 的更改集功能,Terraform 的执行计划均能让我们提前了解到变更内容。

例如,由于业务变化,在基于图1的架构基础上,在阿里云平台上新增一台 ECS 实例,并使用 SLB 实例为两台 ECS 实例做负载均衡。在编写好新的模板后,就可以使用更改集功能来感知变化,下图是 阿里云ROS 的一个变更示例:

在确认无误后,便可以执行变更。随后,自动化编排工具便会对整个基础设施进行更新,根据模板发生的变化来决定新增、更改或删除哪些资源。

基础设施偏差检测和纠正

尽管使用了自动化编排工具部署资源,仍可能有部分人员会通过非标准化的方式(比如通过控制台或 API)修改了基础设施中部分资源的属性,使得资源实际情况和模板中定义的资源产生了差异。好的自动化编排工具不仅具备检测基础设施实际属性和模板中定义的属性之间差异的能力;还能基于差异结果纠正模板或实际资源,使得模板和基础设施保持一致。

当前,通过 阿里云 ROS 和 AWS CloudFormation 的偏差检测能力,就可以轻松地发现实际资源和模板中定义的资源之间的差异,并可通过偏差纠正功能使模板内容和实际资源保持一致。

总结

在 IT 基础设施全面上云的趋势下,云上手工运维的方式已难以为继,出现了部署效率低、可复制性差、一致性差、管理困难、难以 DevOps 等痛点。阿里云 ROS/AWS CloudFormation/Terraform/Pulumi 等自动化编排工具都是基于基础设施即代码(IaC)的理念,可以通过模板来定义基础设施,同时标准化和自动化整个部署过程,配合更改集、偏差检测等能力,再结合流水线,真正实现了 IT 基础设施管理的 DevOps。建议运维人员可以重点关注和巧用工具,将帮助你更好的提升运维效率,解放生产力。


作者介绍:

王斌鑫,从事阿里云弹性计算资源编排工具的研发工作,热爱开源和写作。阿里云凌云时刻出品人、PyCon China出品人。

部署恶意软件之前,黑客会先给它们进行 SEO

SEO 优化被网站管理员用来合法地增加网站在搜索引擎上的曝光率,然而现在研究人员发现,恶意行为者会在被入侵的网站上部署恶意软件前,先利用 SEO 手段为该网站进行 SEO,以使恶意软件可以传播到更多地方。

这就像一个攻击者入侵服务器之后,会堵上各种可能的安全漏洞以“独占”这台肉鸡一样,恶意行为者并不是为了让你更好,而是为了更好的利用被攻击者。

新版 NTFS 驱动程序进入 Linux 5.12 内核愿望成空

当前的 Linux 下 NFTS 驱动程序只能以只读方式挂载 NTFS 文件系统。而另外一种支持 NTFS 的方式是采用 FUSE 来支持它,但是性能上并不算太好。Paragon 的 NTFS3 驱动程序支持完全的读写操作、以及许多现有 Linux 驱动程序并不包含的功能。即便与 FUSE NTFS 驱动程序相比,Paragon NTFS3 驱动程序的性能也更高。

为了进入主线,Paragon 对其驱动程序进行了大量修改以满足上游要求、解决代码审查问题,并提交了第 22 次修改,以期望在下一次 Linux 内核发布时进入主线。

虽然 Paragon 一直在销售其第三方 NFTS 驱动程序,但是要进入 Linux 内核主线,内核社区对其的要求却是非常严格。从这里,我们也可以看出 Linux 内核团队的认真负责态度 —— 虽然被拒绝的贡献者会感觉挫败。

Brave 买了一个搜索引擎,以提供无跟踪的搜索体验

注重隐私的浏览器厂商 Brave 已经收购了搜索引擎 Tailcat,以替代谷歌搜索引擎。Brave 打算将 Tailcat 作为自己搜索服务 Brave Search 的基础。该公司希望其超过 2500 万月活的 Brave 客户在会选择将 Brave Search 作为默认搜索引擎。

这真是将隐私保护进行到底,说真的,在如今很多互联网产品对人们的隐私越来越滥用的环境下,这种关注于隐私的产品和服务会越来越得到青睐。

KDE Plasma 桌面 无疑是定制化的巅峰,因为你几乎可以改变任何你想要的东西。你甚至可以让它充当 平铺窗口管理器

KDE Plasma 提供的定制化程度会让初学者感到困惑。用户会迷失在层层深入的选项之中。

为了解决这个问题,我将向你展示你应该注意的 KDE Plasma 定制的关键点。这里有 11 种方法可以改变你的 KDE 桌面的外观和感觉。

定制 KDE Plasma

我在本教程中使用了 KDE Neon,但你可以在任何使用 KDE Plasma 桌面的发行版中遵循这些方法。

1、Plasma 桌面小工具

桌面小工具可以增加用户体验的便利性,因为你可以立即访问桌面上的重要项目。

现在学生和专业人士使用电脑的时候越来越多,其中一个有用的小部件是便签。

右键点击桌面,选择“ 添加小工具 Add Widgets ”。

选择你喜欢的小部件,然后简单地将其拖放到桌面上。

2、桌面壁纸

不用说,更换壁纸可以改变桌面的外观。

在“ 壁纸 Wallpaper ”选项卡中,你可以改变的不仅仅是壁纸。从“ 布局 Layout ”下拉菜单中,你还可以选择桌面是否放置图标。

文件夹视图 Folder View ”布局的命名来自于主目录中的传统桌面文件夹,你可以在那里访问你的桌面文件。因此,“ 文件夹视图 Folder View ”选项将保留桌面上的图标。

如果你选择“ 桌面 Desktop ”布局,它会使你的桌面图标保持自由而普通。当然,你仍然可以访问主目录下的桌面文件夹。

在“ 壁纸类型 Wallpaper Type ”中,你可以选择是否要壁纸,是静止的还是变化的,最后在“ 位置 Positioning ”中,选择它在屏幕上的样子。

3、鼠标动作

每一个鼠标按键都可以配置为以下动作之一:

  • 切换窗口 Switch Window
  • 切换桌面 Switch Desktop
  • 粘贴 Paste
  • 标准菜单 Standard Menu
  • 应用程序启动器 Application Launcher
  • 切换活动区 Switch Activity

右键默认设置为 标准菜单 Standard Menu ,也就是在桌面上点击右键时的菜单。点击旁边的设置图标可以更改动作。

4、桌面内容的位置

只有在壁纸选项卡中选择“文件夹视图”时,该选项才可用。默认情况下,桌面上显示的内容是你在主目录下的“ 桌面 Desktop ”文件夹中的内容。这个位置选项卡让你可以选择不同的文件夹来改变桌面上的内容。

5、桌面图标

在这里,你可以选择图标的排列方式(水平或垂直)、左右对齐、排序标准及其大小。如果这些还不够,你还可以探索其他的美学功能。

6、桌面过滤器

让我们坦然面对自己吧! 相信每个用户最后都会在某些时候出现桌面凌乱的情况。如果你的桌面变得乱七八糟,找不到文件,你可以按名称或类型应用过滤器,找到你需要的文件。虽然,最好是养成一个良好的文件管理习惯!

7、应用仪表盘

如果你喜欢 GNOME 3 的应用程序启动器,那么你可以试试 KDE 应用程序仪表板。你所要做的就是右击菜单图标 > “ 显示替代品 Show Alternatives ”。

点击“ 应用仪表盘 Application Dashboard ”。

8、窗口管理器主题

就像你在 Xfce 自定义教程 中看到的那样,你也可以在 KDE 中独立改变窗口管理器的主题。这样你就可以为面板选择一种主题,为窗口管理器选择另外一种主题。如果预装的主题不够用,你可以下载更多的主题。

不过受 MX Linux Xfce 版的启发,我还是忍不住选择了我最喜欢的 “Arc Dark”。

导航到“ 设置 Settings ” > “ 应用风格 Application Style ” > “ 窗口装饰 Window decorations ” > “ 主题 Theme ”。

9、全局主题

如上所述,KDE Plasma 面板的外观和感觉可以从“ 设置 Settings ” > “ 全局主题 Global theme ”选项卡中进行配置。预装的主题数量并不多,但你可以下载一个适合自己口味的主题。不过默认的 “Breeze Dark” 是一款养眼的主题。

10、系统图标

系统图标样式对桌面的外观有很大的影响。无论你选择哪一种,如果你的全局主题是深色的,你应该选择深色图标版本。唯一的区别在于图标文字对比度上,图标文字对比度应该与面板颜色反色,使其具有可读性。你可以在系统设置中轻松访问“ 图标 Icons ”标签。

11、系统字体

系统字体并不是定制的重点,但如果你每天有一半的时间都在屏幕前,它可能是眼睛疲劳的因素之一。有阅读障碍的用户会喜欢 OpenDyslexic 字体。我个人选择的是 Ubuntu 字体,不仅我觉得美观,而且是在屏幕前度过一天的好字体。

当然,你也可以通过下载外部资源来 在 Linux 系统上安装更多的字体

总结

KDE Plasma 是 Linux 社区最灵活和可定制的桌面之一。无论你是否是一个修理工,KDE Plasma 都是一个不断发展的桌面环境,具有惊人的现代功能。更好的是,它也可以在性能中等的系统配置上进行管理。

现在,我试图让本指南对初学者友好。当然,可以有更多的高级定制,比如那个 窗口切换动画。如果你知道一些别的技巧,为什么不在评论区与我们分享呢?


via: https://itsfoss.com/kde-customization/

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

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

美国 1800 台比特币 ATM 现已支持存取狗狗币

在马斯克等名人的推动下,原本只是一个玩笑下创立的狗狗币一飞冲天。近日,比特币 ATM 提供商 Coinflip 宣布其比特币 ATM 支持狗狗币。

自 2020 年 1 月以来,比特币 ATM 提供商 Coinflip 的 ATM 数量从 441 台增加到大约 1800 台。除了狗狗币,该公司 ATM 机还支持比特币、以太坊、币安币、达世币、莱特币等加密货币。

在加密的世界,有时候你分不清虚拟和现实,谁能想到一个创始人都视为玩笑而退出的狗狗币,居然成了不可忽视的加密货币。

Python 包仓库 PyPI 被上传了数千恶意软件包

像 NPM、PyPI 和 RubyGems 这样的软件包管理系统近几年都被上传 过大量恶意软件包。在最近,有数千个 CuPy 的篡改版本被上传到了 PyPI。这些软件包在一天后被检测到并删除。

这次攻击可能是恶意的,也可能是出于善意的提醒。因为短时间内上传数千个软件包,这种活动会很快被注意到,此外,该软件包的恶意代码也只是向一个 IP 地址发送了一个 GET 请求。

尽管开发者通常被建议审查他们从外部库导入的任何代码,但这个建议并不总是被遵循。关于使用来自公共软件仓库组件带来的安全隐患,应该有更好的防御和警告机制。

华为 EMUI 11 用户突破 1 亿,但可能很快就被替换

去年 9 月份,华为宣布了 EMUI,而半年后,华为透露 EMUI 升级用户已达 1 亿,并正式宣布,“下一站 HarmonyOS”!之前就有消息称,EMUI 11 将是 EMUI 最后一个大版本,EMUI 11.1 则为最后一个更新版本,接下来将不再会有新的 EMUI 系统,而是升级成 HarmonyOS。

据称,华为将在四月份向其旗下的手机产品逐批推送 HarmonyOS。华为消费者 BG 软件部总裁王成录也曾表示:“相信鸿蒙系统今年能覆盖 3 亿到 4 亿台设备,这其中包括了华为至少 2 亿台的自有设备。”

鸿蒙系统终究是要亮相的,到底如何自有公论。