标签 arch 下的文章

修复 Arch Linux 中 “invalid or corrupted package” 错误的简单指南。

我在物理机和虚拟机中都安装有一些 Arch Linux 系统,我会在需要时访问它们。将近两个月后,当我尝试使用 sudo pacman -Syu 升级其中一个中的 Arch Linux 时,我遇到了数百个这样的错误:

Arch Linux 中无效或损坏的包错误示例

问题是当你遇到上面的错误时,你无法升级/更新你的 Arch 系统。即使你同步镜像或获得更快的镜像。所以,如果你运行 sudo pacman -Syyu,错误仍然存在。这就造成了困难,因为在修复此问题之前你无法安装任何其他软件包。

原因

当你在 Arch Linux 系统上安装或升级软件包时,pacman 会根据 archlinux-keyring 软件包中的密钥检查软件包的数字签名。此验证过程可确保你下载和安装的软件包未经修改且来自受信任的来源。

它包含用于 验证包的真实性和完整性 和 pacman 中的密钥环。archlinux-keyring 包由 Arch Linux 开发人员定期更新,以包含新的可信密钥并撤销任何泄露的密钥。

如果你的 Arch Linux 系统很长时间没有更新,那么各种包的数字签名可能会不匹配。更改后的密钥可能与你系统中的密钥不匹配。

因此出现错误了。

修复

要修复 Arch Linux 中的 “invalid or corrupted package (PGP signature)” 错误,你需要从 Core 仓库安装/更新 archlinux-keyring 包。从终端运行以下命令:

sudo pacman -S archlinux-keyring

上述命令完成后,运行升级:

sudo pacman -Syu

这将解决问题,你可以在 Arch Linux 中继续你的正常活动。建议始终保持 archlinux-keyring 包为最新,以维护 Arch Linux 系统的安全性和完整性。

(题图:MJ/7ed6d549-93c6-463d-823e-3a8c3957790f)


via: https://www.debugpoint.com/invalid-corrupted-package-arch/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

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

面向新手和专家的以性能为中心的基于 Arch 的发行版。

cachyOS

Arch Linux 适合于那些想在其系统上使用 Linux 的寻求挑战的高级用户。

然而,许多 基于 Arch 的发行版 也可以使新用户通过简化操作来进入这个发行版家族。比如说,Garuda Linux、Manjaro Linux 等就适合新用户。

其中一个令人感兴趣的选项是 CachyOS

好吧,你可能已经知道 blendOS(它也是一个基于 Arch 的发行版,仍在开发中)。但这个和它一点也不一样,如果你正在探索基于 Arch 的发行版,你可以尝试一下。

CachyOS 概述

cachyos home with cachyos theme

CachyOS 为各种用户量身定制,无论你是专家还是新手。即使它相当新,也可以作为稳定版本使用。

它旨在提供极速体验,同时提供可定制性和稳定性。

所有这些都牢记安全性。

CachyOS 的一些重要亮点包括:

  • 用 LTO 和 x86-64-v3 优化编译的桌面软件包。
  • 可选择通过在线安装的桌面环境(包括 i3、bspwm 和 Openbox 窗口管理器)。
  • 离线和在线安装方式
  • 基于 GUI 和 CLI 的安装方式
  • 优化的 Linux 内核,带有先进的 BORE 调度程序以增强性能和可靠性

初步印象

CachyOS 看起来像是一个精心打磨过的发行版。当我使用 ISO 启动虚拟机时,我注意到它确实支持英伟达显卡,这是一个很好的开端。

然后,使用离线或在线安装过程的方式很有帮助。通过在线安装过程,你可以根据自己的喜好安装桌面环境或窗口管理器。

完成后,欢迎屏幕从一开始就提供了所有基本功能。所以,这一点也很好。

cachyos welcome screen

你可以在欢迎屏幕上安装软件包、启用系统特定的设置以及调整应用程序/内核内容。当然,新手不应该做任何他们不知道的事情,但是这些都可以访问是很好的。

cachyos hello welcome screen tweak options

我尝试了 CachyOS 的 KDE 版本,它看起来很不错。

出于某种原因,主题是 KDE 的默认 Breeze Dark。我希望它可以开箱即用 CachyOS 的自定义主题。

cachyos homescreen with file manager using kde breeze dark theme

所以,我不得不前往主题管理器设置并应用 CachyOS 主题,让它看起来独一无二。

它使用 Fish shell,打开终端,你就能看到非常出色的外观和感觉。

cachyos fish shell

性能和安全性增强是其核心。因此,如果你不确定这代表了什么,你可以与其它发行版进行仔细比较。然而,根据一些 Reddit 上的主题,一些用户提到了它提升了 10-20% 的性能。

你可以阅读 CachyOS 的 Phoronix 的性能分析 来了解更多。

与其他发行版不同,它具有自己的 Web 浏览器,即 Firefox 的一个复刻,并针对隐私和安全性进行了修改/增强。然而,它没有默认的视频播放器,这个应该是为了迎合新用户。

总体感觉像是一个经过深思熟虑的开箱即用的发行版。最重要的是,它的 文档 非常到位,对初学者很有用。

下载 CachyOS

你可以在其 官方网站 上找到 CachyOS 的 KDE 和 GNOME 版本。XFce 版本正在制作中。当然,你可以使用在线安装过程安装其他任何东西。

CachyOS

此外,如果你对他们在幕后所做的定制感到好奇,你可以浏览它的 GitHub 页面


via: https://news.itsfoss.com/cachyos/

作者:Ankush Das 选题:lkxed 译者:geekpi 校对:wxy

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

BioArchLinux 是生物工作者的 Arch Linux 社区,它包含了一个生物信息学软件的 Arch Linux 仓库。这个仓库易于贡献,用户友好,可以帮助大家在 Arch Linux 及其衍生的发行版、Windows 以及 Docker 下面快速安装好生物信息软件。

BioArchLinux

为什么会有 BioArchLinux 项目?

以目前科学相关的发行版为例,它们大多基于 Ubuntu ,比如 Bio-Linux 以及 Poseidon Linux ;也有基于 CentOS 或者 RHEL 的,比如 Scientific Linux 。但是最终这些发行版都慢慢不再活跃,Scientific Linux 发出的各种 公告 也是表现出身不由己。

从 Scientific Linux 的经历可以看出,如果将各种软件包打包在一个依赖商业公司或者由商业公司主导的发行版上,发展方向就会变得不可知,最初的目标和规划自然不能得以实现。最初 Scientific Linux 依赖付费的 Linux 发行版 RHEL ,后期依赖商业公司的免费社群发行版 CentOS(CentOS 8 以及之前是一个稳定的发行版),红帽将 CentOS 8 的生命周期草草结束,进而支持滚动发行版 CentOS Stream(现在是 RHEL 的上游发行版),因此 Scientific Linux 不得不变成基于 CentOS Stream 的发行版。只能说,Scientific Linux 一开始就选择错了。

再从 Bio-Linux 的角度来看待,Bio-Linux 本质上是把各类软件包打包到 Ubuntu 内之后形成的一个发行版。这必然有一个周期,在这个一年或者两年的周期内,各类软件总会有更新的,而 Bio-Linux 不考虑这个问题,所以会出现使用过时的版本来分析数据的情况,很明显这不利于研究。而且, Bio-Linux 8 自 2014 年发布了基于 Ubuntu 14.04 LTS 的发行版之后,就没在发行新的版本了,而目前 Ubuntu 22.04 LTS 都已经出来了。Bio-Linux 的 软件包 除了老旧,还特别冗杂,我需要的包他们不全有,我不需要的包他们有很多,这毫无疑问增加了我 PC 的负担。

Poseidon Linux 也有着类似的问题。这种发布发行版的方式滞后且需要重装系统,特别不方便。实在不如直接经营一个各类包的仓库,可以快速更新,不必频繁发布 ISO 文件又可以将软件更新到最新版。

所以,如果你希望想长期使用,那么就建议使用非商业公司关联的 Linux 系统;如果你需要参与 Linux 的发展,那么你就要寻找一个方便使用第三方仓库/官方仓库、且非商业公司关联的发行版。这里我们就选择了 Arch Linux。

同时,我们也不希望只是一群为 AUR 做贡献人,因为曾经我自己的设想是这个团体可以像 RedHat 那些发行版之类的 SIG,但是 SIG 的运作模式是为官方仓库贡献包。而 AUR 只是存储一个脚本,并不是一个预先编译好的包。这样带来的麻烦有很多,首先是 AUR 不能和官方仓库的包有冲突,但是这对于生物信息的目标用户群体是个麻烦事情,比如我要找 picard,但是 community 仓库里的 picard 已经是别的同名软件了,但是它只是在 community 仓库里,我不会用到它,因此我要几经周折地找到 AUR 里的 picard-tools。AUR 另外一个不方便的点在于软件包的来源不一定不被封锁,曾经我向我师姐十分热情的推销 Arch 系的发行版,她也觉得蛮好用,但当她想从 AUR 里下载软件时候,互联网限制了她的想象。但是,当我们组成了一个有镜像源的仓库的时候,我们就不需要担心这个问题了,来自互联网封锁国家的人们就无需忍受缓慢的互联网速度和法律风险访问他们所需要的软件了。

如何使用 BioArchLinux?

首先,BioArchLinux 本身的属性决定了用户可以在哪些地方使用它。 BioArchLinux 是一个生物工作者的 Arch Linux 社区,包含了一个生物学软件的 Arch Linux 存储库、可以编辑的 wiki 以及 Matrix 聊天频道。

在 Arch Linux 中使用 BioArchLinux

正如它本身的属性所定义,它可以用于 Arch Linux 及其衍生发行版(不包括 Manjaro stable & testing),从 BioArchLinux 安装软件很容易。只需几个简单的命令即可安装所需的软件包。

# echo -e "[bioarchlinux]\nServer = https://repo.bioarchlinux.org/\$arch" >> /etc/pacman.conf
# pacman-key --recv-keys B1F96021DB62254D
# pacman-key --finger B1F96021DB62254D
# pacman-key --lsign-key B1F96021DB62254D
# pacman -Syy
# pacman -S pkg_name

在最初接触 Linux 时候,我使用 Ubuntu 。当我想要安装生信软件的时候,我曾经一下午都在处理循环依赖的问题。这或许是某些发行版的特性,而且由于我是图形化安装的,我其实对未来怎么迁移系统并没有足够的把握。对于小白来说,好不容易装好的环境想要迁移很难避免重复性的工作。Arch Linux 的特性避免了这里很多问题,从打包的粒度考虑,循环依赖可以说是很罕见的了。另外就是当你需要构建一个包,你只需要会写 Shell 脚本再看一看维基,事情会容易很多。相比于 Debian 等发行版,这样其实会有利于你迁移你安装的软件。

当然,和其他软件仓库不同的是,BioArchLinux 仓库在可能的情况下,在每个包描述中提供了一个 DOI。 这使用户能够轻松地了解有关每个包的用途和方法的更多信息,并在准备出版物时快速识别适当的引用。

$ pacman -Ss doi_number
$ pacman -Qi pkg_name

在 WSL 中使用 BioArchLinux

另外,当 Windows 和 macOS 用户需要使用 Linux 环境来运行生物信息软件的时候,也可以轻松使用 BioArchLinux。因为 BioArchLinux 同样提供 WSL 以及 Docker 镜像。

对于 Windows 用户优先推荐 WSL,因为 Docker 在 Windows 下依赖 WSL。只需要在任意一个镜像站点的 wsl 文件夹下找到 tar 文件即可。解压它,在安装了 wsl 的前提下双击 BioArch.exe 文件,就可以开始成功安装,安装好后键入下述命令即可进入:

wsl -d BioArch

在使用前需要做一些初始化的任务,比如初始化 WSL,这里的镜像地址可以更改为你喜欢的镜像,镜像列表见 mirrorlist 仓库 里的 mirrorlist.bio

# echo 'Server = https://mirrors.sdu.edu.cn/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
# echo 'Server = https://mirrors.sdu.edu.cn/bioarchlinux/$arch' > /etc/pacman.d/mirrorlist.bio
# pacman -Syu

此时,你就可以使用该 WSL 了。

在 Docker 中使用 BioArchLinux

至于 Docker 的使用和 WSL 类似,只不过在安装完 Docker 后使用如下命令进入。进入后依然需要使用 WSL 初始化的命令初始 Docker 容器。

# docker pull bioarchlinux/bioarchlinux
# docker run -it --privileged --name container_name --restart=always bioarchlinux/bioarchlinux /bin/bash

BioArchLinux 如何运作?

BioArchLinux 运行流程

BioArchLinux 存储库由几个开源软件包维护。 主要工具是一个名为 lilac 的 python 应用程序。

最基本的步骤是按照 Arch Linux 和 lilac.yaml 的标准编写脚本。我们编写一个 PKGBUILD shell 脚本和一个 YAML 文件(以及可选的 Python 脚本),并将它们放在 Git 存储库的一个文件夹中。

nvchecker 读取 lilac.yaml,获取上游网站的信息,可以查看最新版本。如果 nvchecker 无法从上游网站找到包版本,它会向管理员发送电子邮件报告问题。

nvchecker 的信息发送给 lilac,由 lilac 判断包是否需要升级。如果软件包需要升级,lilac 会将软件包发送到 Arch Linux 打包工具 devtools

devtools 为软件包提供了一个干净的环境,只有 PKGBUILD shell 脚本中的依赖项列表允许构建。这可以避免在使用过程中丢失依赖项。如果包构建失败,则会自动向包维护者发送警告电子邮件。如果包构建成功,archrepo2 会将 Arch Linux 包放入特定路径,并生成一个新的数据库文件,形成一个全新的包仓库。如果 lilac.yaml 中含有维护 AUR 的指令,包更新也将退送给 AUR。

整个构建过程被记录为日志文件,可以使用 Rust 应用程序 bioarchlinux-packages 读取,并显示在日志网站上。

我们的维基网站是基于 MediaWiki 构建的。所有人都可以自由地为本网站贡献关于生物信息学软件的使用以及生物信息学概念和术语。

BioArchLinux 展望

上面讲了那么多的好,其实 BioArchLinux 也有很多的不足。

先从仓库说起,我们虽然在短短一年内有了约 4.2 k 的软件包,维护了约 4.7% AUR 包,但是,我们相比于 Debian Med 以及 bioconda 都有很大的数量上的差距,急需更多的维护者参与进来,并且需要不断提升打包的质量。

除此之外,比较急切的是我们国内镜像源目前仅仅有几家高校,南京大学、西安交通大学、山东大学以及南京邮电大学,我们希望更多的镜像站能够添加我们。另外因为计算机资源的问题,我们也没有 archive 网站,这给回滚造成了一定程度的困难。

其余就是扩大仓库的受众和加强社区的维护。虽然我们有了 WSL 还有 Dokcer,但是有些人很喜欢在虚拟机里运行,我们却提供不了 ISO 文件,也需要相关的维护人员。我们也没有专门的维基管理人员,有段时间因为没有限制用户注册,网站有被垃圾信息灌爆。

甚至我们在网站的搭建上面还是有欠缺,比如没有像 Arch Linux 那样的搜包界面,这需要更多开发人员的参与。除此之外,如何以非 root 用户的角色使用仓库仍然是一个很大的课题。

我们十分欢迎更多的人参与到我们的社区中来,一起做一些疯狂且美好的事情,不管再多困难,我相信,这个那么 FFF(community friendly, user friendly, earth friendly)的项目会长命百岁。(注:community friendly 帮助维护 Arch Linux community 的 AUR 软件包;user friendly 易于使用、以用户为中心;earth friendly 减少大家编译的次数,尽可能减少计算机资源的消耗。)

致谢

非常感谢 xTom、Mick Elliot 以及 Bipin Kumar 对这个项目的资助,也十分感谢一起为仓库工作的所有 BioArchLinux 成员。另外特别感谢 Arch Linux CN 依云 以及 imlonghao,没了他们维护的软件,BioArchLinux 不可能那么顺利的运作。同时也感谢南京大学、西安交通大学、山东大学以及南京邮电大学和其他为 BioArchLinux 提供镜像的机构和个人。最后,感谢之前 Bioinformatics Open Source Conference(BOSC)为参会免除会议费用。


作者简介:

MRes Evolutionary Biology, International Society for Computational Biology 会员


作者:Guoyi 编辑:wxy

本文由贡献者投稿至 Linux 中国公开投稿计划,采用 CC-BY-SA 协议 发布,Linux中国 荣誉推出

Arch Linux 是那些希望对他们的操作系统有更多控制权的 Linux 用户的一个流行选择。

虽然许多有经验的用户对 Arch Linux 进行了定制,以提供一些最好的用户体验(就其用户界面而言),但对于新的 Linux 用户来说,这可能是一个挑战。

如果你不了解 Arch Linux 的具体情况,你可能想读一下这篇 Ubuntu 与 Arch Linux 比较 的文章。

然而,还有一些 基于 Arch 的发行版 旨在提供一个更容易上手的体验,而不会剥夺你的控制权。

XeroLinux 是我们最近遇到的其中一个。

XeroLinux:又一个基于 Arch 的发行版

XeroLinux 是 Steve(又名 TechXero)的个人项目,旨在提供一个“华丽”的 Arch Linux 版本。

请注意,这是一个充满激情的项目,而不是一个由庞大的贡献者团队支持的主流发行版(还没有)。在你替换你的主系统前,你应该先在虚拟机或测试机上试用它。

在这里,我们会为其愉快的开箱即用体验和一些令人更兴奋的地方,简单介绍一下 XeroLinux 的特色。

安装的简易性

XeroLinux 使用 Calamares 安装程序 来让你轻松地安装 Linux 发行版,而不需要依赖终端或 引导式 Arch 安装程序

虽然安装体验与流行的 Linux 发行版相似,但你可以在安装时选择图形驱动程序、特定的 Linux 内核和工具。

你可以安装 System76 的电源管理驱动,并启用对 Nvidia Optimus Manager 的支持,为你的笔记本电脑切换显卡。有趣!

你还可以在安装时选择密码管理器、主题、浏览器和各种不同的软件包,这应该会让使用变得很方便。

考虑到你可以以选择的形式设置所有基本选项,你在安装后没有太多可担心的。

当你选择了需要的东西,只需重新启动并开始使用桌面。

用户体验

XeroLinux 的开箱即用的体验令人印象深刻。桌面的整体外观和感觉包括许多新的功能补充,如显示 CPU 使用情况、网络速度等的小工具。

它还支持全局菜单,使应用程序窗口看起来更干净,为 macOS 用户切换到 Linux 提供了舒适的体验。

通过所有预装的应用,你可以轻松地安装新的软件,卸载现有的工具并进行各种操作。

它同时具有 pamac 和 Synaptic 包管理器(可在安装时选择)。因此,你可以获得大量的软件工具,你可以通过它们中的任何一个轻松安装。

其他产品包括两个文件管理器(Dolphin 和 Thunar)、Yakuake 终端、Spectacle 屏幕截图、KWrite、Konsole 等主要 KDE 版本中的其他 KDE 工具。

如果你不喜欢 Yakuake 终端仿真器,请参考我们的 终端仿真器列表,找到它的替代品。

另外不要忘了,你会得到一个定制的锁屏(登录屏),看起来很不错!

当你启动系统时,你还会注意到一个 XeroLinux 配置工具。它可以让你快速执行一些基本任务,比如检查 NVIDIA 显卡、安装 KVM/QEMU、禁用自动启动、安装 KDE 窗口平铺,以及其他一些配置,如下图所示。

可定制性

XeroLinux 在其主版本中采用了 KDE 桌面环境。因此,你自然会有无尽的定制选项。

最好是参考我们的 KDE 定制指南来获得帮助。

除此之外,你还可以看到 Latte Dock,你可以根据自己的喜好进行定制和调整。

有几个定制停靠区的选项,确保你仔细调整设置,以免看起来很奇怪。

此外,你会得到 Kvantum Manager,可以帮助你安装外部主题。

如果这还不够,开发者还提供了一些 RICE/主题和 Grub 主题,你可以在 官方网站GitHub 仓库 上找到所列的主题。

(LCTT 译注:RICE 不是指大米。它是 “ 受赛车启发的美容强化 Race Inspired Cosmetic Enhancements ” 的缩写。原意是指:给汽车增加的部件,使它们看起来很快,但其实内部调校,实际上一样慢。在 Linux 上指各种对桌面的粉饰,使其看起来花哨。)

换句话说,开发者提供的一些脚本可以帮助你进行改造,但请注意,最好是自己定制,这样就不会出现其他问题。

桌面环境选项

主版本使用的是 KDE,但如果你想尝试一下,你也有另一个 XFCE 变体。(LCTT 译注:由于项目作者实在无力维护两个 DE,因此放弃了 XFCE 变体。)

XFCE 版是为旧系统量身定做的(或者如果你需要节省系统资源)。

它最初还提供了一个 GNOME 版本,但由于每次更新都会出现扩展失效的问题,所以它放弃了对它的支持。如果你对桌面环境感到好奇,你可能想通过我们的 KDE Plasma 对比 GNOME 文章来了解它们的区别。

性能

考虑到它具有最新可用的 Linux 内核 5.16,它应该可以在各种硬件配置下正常工作。

但是,我还没有在裸机上测试过它。根据我虚拟机的使用经验,它运行良好,没有任何特殊问题。

以下是其 KDE 版本的资源使用情况:

使用它的 XFCE 变体时,你可能会注意到较低的资源使用率。

你应该试试 XeroLinux 吗?

我喜欢 XeroLinux 的外观和感觉。

不仅限于此,在安装时你还可以选择多种软件包和做出各种最好的选择。

尝试 XeroLinux

如果你在安装时就知道自己需要什么,那么它应该是一个有吸引力的基于 Arch 的 Linux 发行版。

你试过 XeroLinux 了吗? 在下面的评论中让我知道你的想法。


via: https://itsfoss.com/xerolinux/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

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

如果你曾经尝试过使用 Arch Linux,你就知道如果没有适当的文档和 Linux 知识,几乎不可能安装它。而实际上,这就是 Arch Linux 的 魅力

但由于 Arch Linux 属于专业级的 Linux 发行版,因此有几个 基于 Arch 的发行版,它们试图让普通人可以更轻松地使用它们

当谈到 “基于 Arch 的 Arch 替代品” 时,Manjaro 和 EndeavourOS 是两个最受欢迎的选择。

所以让我们来看看这两个的区别。为什么你要选择其中一个而不是另一个?

桌面变体

这两个发行版都有多种桌面风格。Manjaro 有三种官方风格:Xfce、KDE 和 GNOME。此外还有社区版:Budgie、Cinnamon、Deepin、Mate、Sway 和 i3。

Endeavour OS 官方提供了更多的变体。除了 Manjaro 所拥有的那些,它还有 LXQT、BSPWM、Openbox 和 Qtile。

由于每种风格都有不同的 桌面环境(DE)及特定于该桌面的捆绑应用程序。这就导致了没有一个“严格”的最低系统要求基线。

根据 EndeavourOS 的网站,下面是每种桌面环境对内存的系统要求清单(对 Manjaro 也应该是一样的):

  • Xfce - 至少 2GB 内存,但建议 4GB。
  • Mate - 至少 2GB 内存,但建议 4GB。
  • Cinnamon - 需要至少 4GB 的内存
  • Gnome - 至少需要 4GB 的内存(假设对 KDE 相同)
  • Budgie - 至少需要 4GB 的内存
  • Plasma - 至少需要 4GB 的内存
  • LXQT - 至少需要 2GB 的内存,但建议 4GB

获取 ISO

正如我上面提到的,Manjaro 和 EndeavourOS 有各种各样的风格。这意味着,我不能给你指出一个单一的 ISO 下载链接。但是,出于本文比较操作系统的意图和目的,我选择了默认的产品 —— Xfce 风格的 ISO。

安装操作系统

EndeavourOS 和 Manjaro 都使用 Calameres 安装程序,并在其 GRUB 启动菜单中提供了一些有用的选项。

EndeavourOS 的安装

当你首次启动 EndeavourOS 时,它将向你展示一个 GRUB 菜单,有以下选项:

  • 使用 Intel/AMD 驱动启动(默认选项
  • 使用专有的 NVIDIA 图形驱动启动
  • 运行 Memtest86+(内存测试)
  • 运行 HDT)(硬件检测工具)

EndeavourOS 启动后,它的欢迎屏幕将为你提供一些选项。

这些选项用来管理分区、安装社区版本、更新镜像和启动安装程序。

EndeavourOS 安装程序上的选项列表

有两个选项用于安装:

  • 在线 - 让你选择把你的桌面环境改成 Xfce 以外的其它桌面。
  • 离线 - 给你提供带有 EndeavourOS 主题的 Xfce 桌面。

如前所述,EndeavourOS 使用开源的 Calameres 安装程序。但在此基础上,它还为你提供了一些选项,以便更好地控制用户体验和安装。

EndeavourOS 安装程序提供的可用选项列举如下:

  • LTS 内核(与最新的稳定内核 并列
  • XFCE4
  • KDE
  • GNOME
  • i3 WM
  • Mate 桌面环境
  • Cinnamon 桌面环境
  • Budgie 桌面环境
  • LXQT
  • LXDE

EndeavourOS 安装程序中的无障碍工具列表如下:

  • espeak-ng: 开源的文本朗读合成器
  • mousetweaks: 指针设备的无障碍增强工具
  • orca:可编写脚本的屏幕阅读器

Manjaro 的安装

当你第一次启动 Manjaro 时,你会看到一个 GRUB 菜单,有以下选项:

除了 Manjaro 开发人员对 Calameres 安装程序所做的品牌和操作系统特定的改变之外,原版 Calameres 安装程序和你在 Manjaro 上的没有什么区别。

Calameres 不是 Manjaro 的唯一安装程序

如果你想在 Manjaro 上进行自定义安装,你可以使用 Manjaro Architect ISO 来进行完全自定义的 CLI 安装。

请记住,在写这篇文章的时候,Manjaro 的 Architect 版本 似乎没有被维护,有一个未解决的软件包冲突。如果你有必要的技能和时间,请帮助维护这个项目 : )

这可能是一件好事,也可能是一件坏事,取决于你问谁。

在我看来,如果你是第一个 Linux 发行版就使用 Manjaro 的初学者,那么你的选择最好是有限的。

这意味着更少的进入门槛,可供选择的声音服务器、显示服务器、显示管理器和/或窗口管理器太多会造成进入门槛。

一旦你对 Linux 发行版有了足够的了解,就可以对你的系统进行修补,随心所欲地添加一些东西。

如果你想定制你安装的系统,你必须在你的操作系统安装好后进行。

首次启动

在你安装了 Manjaro 或 EndeavourOS 之后,你会看到一个欢迎屏幕,对于一个刚接触 Linux 的人,或者刚接触 Manjaro 或 EndeavourOS 或基于 Arch 的发行版的人来说,它有一些有用的选项。

EndeavourOS 的选项包括更新镜像、更新系统、改变显示管理器(lightdm、gdm、lxdm 和 sddm)、浏览 AUR 软件包、安装 libreoffice、chromium、akm(一个内核管理器)等软件包。

在 Manjaro 方面,与 EndeavourOS 相比,我认为提供的选项是有限的,但我觉得它是“足够的有限”。

这只是你(作为初学者)开始使用 Manjaro 所需要的适当数量的东西。

Manjaro 欢迎屏幕上的几个选项是官方维基的链接、支持论坛、邮件列表、参与 Manjaro 开发、安装和/或删除应用程序等。

Manjaro 和 EndeavourOS 的欢迎屏幕上都有一个选项,如果你喜欢该项目和它的方向,你可以选择捐赠,但只有你有足够的钱才能这样做。

软件打包

让我们面对现实吧,操作系统的安装只是 Linux 发行版的一个部分。

软件包管理器和软件打包的方式对 Linux 发行版的稳定程度起着重要作用。

如果你在更新/安装一个软件包时,它更新了一个已经安装的库 —— 而其他软件包依赖于它,那么……这就很糟糕。它创造了所谓的“依赖性地狱”。软件包管理器应该处理这个问题。

那么,Manjaro 和 EndeavourOS 在这方面怎么比较呢?

好吧,因为 Manjaro 和 EndeavourOS 都是基于 Arch Linux 的,它们使用 Arch Linux 使用的 pacman 软件包管理器。pacman 的许多功能之一是它为你处理依赖关系。

Manjaro

尽管 Manjaro 使用 pacman 软件包管理器,但 Manjaro 有自己的软件库。

软件包每天从 Arch Linux 中取出,并在 Manjaro Unstable 软件库中 “镜像”,然后推送到 Manjaro Testing,用于 —— 你猜对了 —— 测试。

一旦这些软件包被认为是稳定的,它们就会被推送到主软件库供其他人安装。

安全更新则是通过 Manjaro 所谓的 “快速跟踪” 直接推送到公共软件包库,以更快地解决问题。

Manjaro 测试 Arch Linux 软件包的稳定性

这种测试软件包的方法可以确保不会因为某某被修改而出现意外的软件包损坏。

但是,这也意味着用户需要等待几周(通常是 2 到 4 周),才可以安装新版本的软件。

EndeavourOS

EndeavourOS 没有自己的软件库。他们依赖于 Arch Linux 主软件库,如果你使用 EndeavourOS,这样做你会得到最 “普通” 的体验。

如果你在同一台机器上安装 Arch Linux 和 EndeavourOS,除了桌面环境或窗口管理器和/或它们的主题以及安装体验外,几乎所有东西都应该保持不变。

包含的软件包

现在,你可能已经注意到 Manjaro 和 EndeavourOS 之间的差异模式了。

EndeavourOS

EndeavourOS 在理念上优先考虑最接近 Arch Linux。

有自定义的安装?有。

只安装必要的软件包以获得完整的桌面体验?对。

在发行库中拥有最前沿的软件包?没错。

EndeavourOS 让你有机会学习 Arch,而无需同时学习 EFI、驱动搜索和安装(看着你的 nVidia)、桌面环境/窗口管理器、显示管理器等。

它可以一次性设置好所有东西,让你有时间按照自己的节奏学习 Arch Linux 的内部工作。

EndeavourOS 的强制 neofetch 截图

Manjaro

而 Manjaro,在你使用它的整个过程中,它一直握着你的手(看看我做了什么?)。它处理从安装到软件包稳定性的一切,并让你可以即时获得安全更新。

它旨在用作你计算机的通用操作系统。

它默认安装了相当多的开源应用程序。这对一个新的 Linux 用户来说是非常有帮助的。

它为你安装了一些应用程序,如音频播放器、GUI 防火墙(gufw)、GIMP、HP 设备管理器、电子邮件客户端(thunderbird)、视频播放器(vlc)、办公套件(onlyoffic 桌面版)。

Manjaro 的强制 neftech 截图

我应该使用哪个?

嗯,这是你的决定。我只能根据他们的使用情况和目标受众推荐一个或两个。

如果你自认是一个普通电脑用户,只需要办公套件(LibreOfficeONLYOFFICE)、媒体播放器和网页浏览器来做你的事情,我建议你试试 Manjaro,因为他们自己的仓库有 [大部分] 稳定的软件包,而且安装起来不费事。

但是,另一方面,如果你是一个以前使用过 UbuntuPop!\_OSLinux MintElementaryOSFedora 等发行版的人,现在想学习如何从窗口管理器到 GRUB 菜单来安装你的 Linux 发行版(没错,构建 GRUB 也是个事)。所以,如果你需要一个像 Arch 一样的基本 Linux 发行版,我会向你推荐 EndeavourOS。

现在你也可以说:告诉 Fedora,我使用 Arch 了。

( ͡° ͜ʖ ͡°)


via: https://itsfoss.com/endeavouros-vs-manjaro/

作者:Pratham Patel 选题:lujun9972 译者:wxy 校对:wxy

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

PKGBUILD 文件是为 Arch Linux 及其衍生版(如 Manjaro)构建和创建软件包的方式。

如果你曾经使用过 AUR(即 Arch Linux 的用户维护的 PKGBUILD 存储库),你甚至可能也遇到过它们。

但是,到底是如何从 PKGBUILD 到可安装软件包的呢?这两者之间到底发生了什么,如何把自己的软件制作成软件包呢?你将在这篇文章中了解这些。

PKGBUILD 基础知识

对于那些熟悉 Bash 或其他 shell 的人来说,你可能知道,PKGBUILD 就是一个带有一些变量的 shell 脚本。

PKGBUILD 文件由变量和函数组成,所有这些都是用来定义软件包本身,以及如何构建它。

为了从 PKGBUILD 中创建一个软件包,需要使用 makepkg 命令行工具。在获得 PKGBUILD 文件后,你只需在包含 PKGBUILD 的目录中运行 `makepkg',就可以得到一个可安装的软件包了。

在本教程中,你将会看到我刚刚制作的软件包,它在运行时打印出 “Hello World!”。

准备

为了继续学习本教程,你需要创建几个文件。

首先,你需要创建一个名为 PKGBUILD 的文件,它将作为构建你的软件包的“配方”。

你需要做的另一个文件是一个叫 hello-world.sh 的文件。我稍后会解释它的用途。

你也可以用一个命令来创建这两个文件:

touch PKGBUILD hello-world.sh

你可以用 ls 命令检查这些文件是否被创建。

然后你就可以开始了!

设置你的 PKGBUILD 文件

我不会让你复制粘贴整个文件,而是和你一起键入每一行,这样你就能更好地理解每一行的目的。如果你不喜欢这种学习方式,我强烈推荐 Arch 维基 中为 Arch Linux 创建软件包的文章。

这篇文章也没有介绍 PKGBUILD 中可以设置的每一个选项,只是介绍了一些常用的选项,以便你能尽快上手。

说完了这些,打开你的文本编辑器,让我们直接进入正题吧。

pkgname

首先是 pkgname 变量。这是安装时定义软件包名称的东西,也是 Arch Linux 的软件包管理器 pacman 跟踪软件包的方式。

这个变量(以及其他一些变量)的格式是 variable=value,变量名在左边,变量的值在右边,用等号隔开。

要设置包的名称,请在 PKGBUILD 中输入以下内容:

pkgname="hello-world"
  • 要设置一个不同的软件包名称,用你的软件包的名称替换 hello-world
  • 这并不设置用于运行程序的命令,这将在下面的 package() 部分中处理。

pkgver

正如变量名称本身所述,它设置了你的软件包的版本(即 1.0.0)。这在用户更新他们的系统时很有用,因为设置更高的版本会提示用户升级。

要设置版本号,请在 PKGBUILD 中输入以下内容(在前一行之后):

pkgver="1.0.0"

pkgrel

这与 pkgver 变量有关,通常不需要知道。不过和 pkgver 变量一样,如果它被换到一个更高的数字,就将通知用户进行升级。

它适用于任何需要保持 pkgver 不变的情况下,例如 PKGBUILD 本身发生了变化。如果你为一个你使用的程序创建了一个 PKGBUILD(并希望保持软件包的版本相同),而你需要修复 PKGBUILD 本身的一个错误,这将是非常有用的。

要设置这个变量,请在 PKGBUILD 中输入以下内容:

pkgver="1"

这个变量应该 总是1 开始,然后一次一次地向上移动。当 pkgver 本身向上移动时,这个变量可以(也应该)重置为 1,因为 pkgver 本身会通知用户升级。

pkgdesc

这将设置软件包的描述,用于帮助更好地识别该软件包。

要设置它,只需将描述放在引号内:

pkgdesc="Hello world in your terminal!"

arch

这个变量设置软件包所兼容的 硬件架构。如果你不明白什么是架构,那也没关系,因为在大多数情况下,这个变量几乎是无用的。

无论如何,makepkg 仍然需要设置它,这样它就知道这个软件包与我们的系统是兼容的。

这个变量支持设置多个值,所以 makepkg 需要一个不同的语法,如下所示。

要设置它,请在 PKGBUILD 中输入以下内容:

arch=("x86_64")

如果你要设置多个值,需要用空格和引号分隔每个值,像这样。arch=(“x86_x64" "arm")

depends

这列出了提供了我们的软件包所需功能的所有软件包。与 arch 一样,它也可以包含多个值,因此必须使用括号语法。

由于我们的软件包没有任何依赖关系,所以我们不需要在 PKGBUILD 中输入这个字段。然而,如果我们的软件包有依赖关系,我们就会使用与 arch 相同的语法。

optdepends

这里列出了那些并不是提供所需功能而是额外功能的软件包。

这与 depends 的语法相同。

conflicts

这告诉 pacman 哪些软件包会导致我们的软件包出现问题,或者以我们不希望的方式行事。

这里列出的任何软件包都会在我们的软件包被安装之前被卸载。

这与 depends 的语法相同。

license

这定义了你的程序所采用的 软件许可证。如果你需要帮助你选择一个许可证,Arch 维基 提供了一些信息。如果你不知道该怎么设置,将其设置为 custom 也可以。

这与 archdepends 的语法相同:

license=("custom")

source

这就是 makepkg 如何知道要用什么文件来构建我们的软件包。它可以包含各种不同类型的源,包括本地文件和 URL。

在添加本地文件时,要输入相对于 PKGBUILD 文件的文件路径,比如以下目录布局:

PKGBUILD
file.txt
src/file.sh

如果你想在我们的 PKGBUILD 中包括 file.sh,你需要输入 src/file.sh 作为其名称。

当输入 URL 时,你只需输入完整的 URL,即 https://mirrors.creativecommons.org/presskit/logos/cc.logo.large.png

你的这个软件包只需要 hello-world.sh 文件,由于它和 PKGBUILD 在同一个目录中,你只需输入它的名字作为 source 的值。

这个变量也使用与 archdepends 相同的语法:

source=("hello-world.sh")

sha512sums

这是用来验证 source 中的文件没有被修改或下载错误。如何获得这个值的信息可以在 Arch 维基关于 PKGBUILD 的文章 中找到。

如果你宁愿不设置这个(或者你只是不需要,例如对于本地文件),你可以为 source 变量中的每个文件输入 SKIP

sha512sums=("SKIP")

package()

这是最后一个,也是实际制作我们的包的最重要的部分。在处理这个问题时,知道两个变量很重要。

  • ${srcdir}:这是 makepkg 放置 source 变量中文件的地方。在这个目录中,你可以与这些文件进行交互,并对文件进行任何其他需要的修改。
  • ${pkgdir}:这是我们放置将被安装在系统中的文件的地方。 ${pkgdir} 的文件夹结构是按照实际系统中的情况设置的(例如,使用 pacman 安装时,${pkgdir}/usr/bin/hello-world 会创建文件 /usr/bin/hello-world)。

package() 包含一个用于创建软件包的命令列表。

因此,如果(假设)你需要有个在 /usr/share/motto.txt 写着 “Linux is superior to Windows ”的文件,你会运行这样的东西:

package() {
  mkdir -p "${pkgdir}/usr/share"
  echo "Linux is superior to Windows" | tee "${pkgdir}/usr/share/motto.txt"
}

关于上述命令的一些说明:

  • ${pkgdir} 里面最初是 不包含 目录的。如果你跳过了 mkdir 命令tee 会输出一个错误,说这个目录不存在。
  • 在指定目录时,总是 在它们前面加上 ${pkgdir}${srcdir} 变量。如果输入 /usr/share/motto.txt,就会按照字面意义指向你当前运行的系统中的 /usr/share/motto.txt

对于你的 PKGBUILD,你将把 hello-world.sh 文件放在目标系统的 /usr/bin/hello-world 中。你还将使该文件在运行时说 “Hello to you!”。

要做到这一点,请在 PKGBUILD 中输入以下内容:

package() {
  echo 'Hello to you!' > "${srcdir}/hello-world.sh"
  mkdir -p "${pkgdir}/usr/bin"
  cp "${srcdir}/hello-world.sh" "${pkgdir}/usr/bin/hello-world"
  chmod +x "${pkgdir}/usr/bin/hello-world"
}

然后就完成了!用 makepkg -si 构建和安装软件包,然后在终端运行 hello-world,查看其输出。

总结

就这样,你已经制作了你的第一个 PKGBUILD!你走在了为自己甚至是为 AUR 制作实际的软件包的路上。

有什么问题,或者有什么地方不对吗?请随时在下面的评论区发表。


via: https://itsfoss.com/create-pkgbuild/

作者:Hunter Wittenborn 选题:lujun9972 译者:wxy 校对:wxy

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