Portal:Kalpa

跳转到:导航搜索

Kalpa

Icon-warning.png

Kalpa 仍处于Alpha阶段,请记住这一点!


项目主页:https://kalpadesktop.org/

Matrix 聊天:https://matrix.to/#/#kalpa:opensuse.org


Kalpa 适用于哪些用户?

它并不适合所有人。您高度可定制的 Tumbleweed 和 Leap 桌面是安全的,并且将仍然是那些希望调整其桌面的人的最佳选择。

它应该非常适合那些不再想摆弄桌面,只想“完成工作”的懒惰开发者,特别是如果他们在容器周围进行开发。

它也应该吸引与现在更习惯于 iOS、Chromebook 或 Android 类似的体验的受众,在这种体验中,操作系统是静态的、自动化的和可靠的,而应用程序是用户关心的主要内容。

要深入了解 Kalpa 的起源和原因,请查看以下研讨会

https://www.youtube.com/watch?v=jcl_4Vh6qP4


设计目标

Kalpa 应该像 MicroOS 一样可靠、可预测和不可变。

Kalpa 的可定制性应该低于常规的 Tumbleweed/Leap。

Kalpa 应该小巧,但不能以牺牲功能为代价。打印、游戏、媒体制作等等都应该可以正常工作。

Kalpa 应该开箱即用,无需额外的配置即可获得软件安装和网页浏览等关键功能。默认提供的所有功能都应该可以正常工作 - 不起作用的功能不应该提供/可见/可供用户使用。


如何下载和安装

  1. 此处 下载 openSUSE MicroOS 基本 ISO 镜像
  2. 将 ISO 写入 USB 驱动器并启动安装过程。
  3. 在安装程序的选择屏幕中选择 Kalpa

安装应用程序的方式(按优先级排序)

现在您已经安装了 Kalpa,您可能想要安装软件。

由于它仅提供一个包含桌面环境的最小基本系统,因此默认情况下它仅设计为带有基本的配置工具。

因此,所有应用程序、浏览器、特定应用程序所需的编解码器等都由 Flathub 的 flatpak 提供。

为了使这个过程对用户来说更加容易,Discover 集成了所有可用 flatpak 的 Flathub 仓库。 这样,您可以简单地搜索并找到您最喜欢的应用程序,以无缝集成的方式。

虽然还有其他安装软件的方法,但请记住,强烈建议按照以下优先级顺序安装软件

  1. 来自您选择的软件中心或 Flathub 的 Flatpak
  2. 用户 distrobox 中的 RPM distrobox-enter
  3. root distrobox 中的 RPM distrobox-enter -r
  4. 通过 transactional-update 进行 RPM - 用于驱动程序、内核模块、严格来说您需要用于您的宿主机操作系统才能正常工作的。

重申一下:所有内容都应该通过 flatpak 完成,或者如果某个软件包作为 flatpak 不可用,则安装在 distrobox 中。 使用 transactional-update 仅限于您需要用于您的宿主机操作系统才能正常工作的(特殊的驱动程序、专门的 VPN 服务)。

注意:distrobox 默认随 Kalpa 附带。 它允许用户在您的终端内安装任何 Linux 发行版。 对于那些希望通过 distrobox 启动 GUI 应用程序的人,可以使用特殊的导出命令,以便应用程序感觉更原生并与系统集成。 请查看 [distrobox 部分] 以了解更多关于这种方便的启动基于 distrobox 应用程序的方式的信息。

事务更新简介

openSUSE Kalpa 像 openSUSE Tumbleweed 或 openSUSE Leap 那样使用 zypper 安装 RPM 包并直接使用它们。 openSUSE Kalpa 使用 transactional-update,zypper 在其底层。

大多数情况下,您不需要以交互方式使用这些命令,因为 Kalpa 通过 transactional-update.service systemd 服务进行自动系统更新。

事务更新 - 示例命令

事务更新的命令如下。 注意:命令完成后,请务必重新启动才能看到更改!

  • sudo transactional-update pkg install package_name 安装 rpm 包
  • sudo transactional-update pkg remove package_name 卸载 rpm 包
  • sudo transactional-update dup 执行系统升级到下一个版本
  • sudo transactional-update shell 打开下一个快照的 shell(您可以在那里使用 zypper 命令)。 这仅应用于调试目的。 只能通过使用 transactional-update shell 复制的任何错误报告几乎肯定会被关闭为 WONTFIX。
  • sudo transactional-update rollback snapshot_number 将系统回滚到编号的快照。 使用 'last' 代替快照编号以回滚到最后一个工作快照。 不要使用 snapper 进行回滚。

事务更新 - 自动更新

注意:禁用自动更新可能会导致 Kalpa 系统处于不受支持的状态,请自行承担风险禁用它们

默认情况下,transactional-update.timer 处理自动系统更新。 这设置为 daily,这意味着该任务每天在 00:00:00 执行。

如果此时计算机已关闭,由于计时器设置为 Persistent=true,则更新将在它能够时进行。

可能无法触发更新的一些原因包括

  • 计算机已关闭
  • 互联网连接在计划执行时中断。

避免自动重新启动

请查看故障排除部分 意外重新启动

这不应该引起问题,因为 transactional-update 的工作方式是新包安装在一个新的快照上,要生效必须重新启动。

要跟踪 transactional-update 是否能够升级并正确运行,您可以使用 journalctl

 $ sudo journalctl -u transactional-update.service 

您还可以使用 journalctl-f 标志来实时跟踪日志。

事务更新 - 关于快照和启动行为的最终说明

默认情况下,每个 transactional-update 命令都会生成一个单独的、自包含的快照,其中包含 transactional-update 命令请求的更改。

此快照是基于上次已知良好/已启动的快照。 多个 transactional-update 命令生成的最后一个快照在重新启动时生效。

换句话说,sudo transactional-update pkg install $pkg1 之后,sudo transactional-update pkg install $pkg2 然后重新启动,结果是一个安装了 $pkg2 的系统,但没有安装 $pkg1。

这是预期的、明智的默认行为 - Kalpa 始终希望从上次已知良好的/已启动的快照移动到其新状态,以尽可能最小、最不破坏性的方式。

当您考虑默认/预期行为是 Kalpa 自动更新,并且大多数用户不应以交互方式使用 transactional-update 时,这一点尤其重要。 随着 transactional-update dup 在后台定期自动发生,Kalpa 希望确保它仅更新到最新的干净系统更新状态,而不是一些奇怪的混合了以前未启动、未知是否良好的、未经检查的中间 transactional-update dup,从未启动过。

但是,忽略此最佳实践并以交互方式使用 transactional-update 时,有时您可能希望针对现有的未启动的、未知是否良好的快照运行 transactional-update

为此,请使用 transactional-update --continue

示例

sudo transactional-update pkg install $pkg1 之后,sudo transactional-update --continue pkg install $pkg2 将在包含 $pkg1 的同一快照中安装 $pkg1,然后 $pkg2,将该组合快照标记为下一个启动目标。

但是,如果出现问题,则无需担心弄清楚是 $pkg1 还是 $pkg2 导致了任何问题,因为用户需要回滚到 $pkg1 安装之前的快照才能返回到上次已知良好的状态。


KDE Discover + Flathub 集成

  • 在 Discover 中,Flathub 仓库在首次登录时启用,并且默认安装了一些 flatpak(Mozilla Firefox 和 kCalc),kate(文本编辑器)仍然通过 RPM 提供在基本镜像中(目前尚未完全通过 flatpak 可操作)。
  • 注意:对于主题,正常的全局主题安装在 KDE Plasma 中不起作用,但是您可以直接通过 discover 安装组件。

添加其他仓库

注意:添加仓库并通过 transactional-update 安装 rpm 可能会导致 Kalpa 系统的配置不受支持,请自行承担风险,因添加仓库而提交的错误将被关闭为 WONTFIX

要添加仓库,请像往常一样运行 zypper

   # sudo zypper ar -g -r <REPO-URL>

然后使用以下命令刷新:

   # sudo transactional-update

软件包现在将从 `transactional-update` 中可用。

Distrobox

Distrobox 可以像 toolbox 一样使用(toolbox 默认包含在 MicroOS 的服务器版本中),但对于桌面使用具有一些其他优势。 请参阅 https://github.com/89luca89/distrobox 以获取所有选项。

有关更多文档,请参阅 Distrobox 页面


故障排除

本节描述了 openSUSE Kalpa 上已知的发行问题及其解决方案。

设置主机名

使用以下命令设置您的主机名

  # sudo hostnamectl set-hostname <new name>

重新启动,主机名更改将生效。

调整 transactional-update.timer

根据您的日常使用情况,即使 persistent=true,计时器也可能无法成功触发自动更新过程,因为它在每次启动时都会添加一个随机延迟,即 RandomizedDelaySec=

如果您希望自动每日更新您的系统,您可能会发现需要调整上述延迟。

编辑 transactional-update.timer(创建 override.conf)

  # sudo systemctl edit transactional-update.timer

编辑 [Timer] 部分下的行 -

  RandomizedDelaySec=5m

上面的示例是最大 5 分钟的随机延迟。(默认值为 2h)

根据您的使用情况更改时间。 您可以使用 此作为参考

Steam Proton, Bottles, WINE, Lutris, 从 flatpak 运行失败

如果您在使用 WINE 和基于 WINE 的程序时遇到问题,则可能是由于 SELinux 问题,可以通过运行以下命令进行检查

  # sudo getsebool selinuxuser_execmod

如果返回 'selinuxuser_execmod --> disabled',您需要启用它。 这可以暂时完成(下次启动时重置)使用

  # sudo setsebool selinuxuser_execmod 1

或者可以设置为持久性使用

  # sudo setsebool -P selinuxuser_execmod 1

openSUSE 安全团队正在审查此默认策略,您正在自行承担风险启用它。 请参阅 https://bugzilla.opensuse.org/show_bug.cgi?id=1206292 以获取更多信息。

Team Fortress 2 缺少音频

如果您在 Team Fortress 2 中遇到音频问题,则可能是由于 SELinux 问题,可以通过运行以下命令进行检查

  # sudo getsebool selinuxuser_execheap

如果返回 'selinuxuser_execheap --> disabled',您需要启用它。 这可以暂时完成(下次启动时重置)使用

  # sudo setsebool selinuxuser_execheap 1

或者可以设置为持久性使用

  # sudo setsebool -P selinuxuser_execheap 1

Android Studio 模拟器从 flatpak 运行失败

如果您在使用 Android Studio 模拟器时遇到问题,则可能是由于 SELinux 问题,可以通过运行以下命令进行检查

  # sudo getsebool selinuxuser_execstack

如果返回 'selinuxuser_execstack --> disabled',您需要启用它。 这可以暂时完成(下次启动时重置)使用

  # sudo setsebool selinuxuser_execstack 1

或者可以设置为持久性使用

  # sudo setsebool -P selinuxuser_execstack 1

openSUSE 安全团队正在审查此默认策略,您正在自行承担风险启用它。 请参阅 https://bugzilla.opensuse.org/show_bug.cgi?id=1206789 以获取更多信息。



提问地点

有关 Kalpa 开发的“官方”最新消息