Portal:Kalpa
Kalpa
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 应该开箱即用,无需额外的配置即可获得软件安装和网页浏览等关键功能。默认提供的所有功能都应该可以正常工作 - 不起作用的功能不应该提供/可见/可供用户使用。
如何下载和安装
- 从 此处 下载 openSUSE MicroOS 基本 ISO 镜像
- 将 ISO 写入 USB 驱动器并启动安装过程。
- 在安装程序的选择屏幕中选择 Kalpa
安装应用程序的方式(按优先级排序)
现在您已经安装了 Kalpa,您可能想要安装软件。
由于它仅提供一个包含桌面环境的最小基本系统,因此默认情况下它仅设计为带有基本的配置工具。
因此,所有应用程序、浏览器、特定应用程序所需的编解码器等都由 Flathub 的 flatpak 提供。
为了使这个过程对用户来说更加容易,Discover 集成了所有可用 flatpak 的 Flathub 仓库。 这样,您可以简单地搜索并找到您最喜欢的应用程序,以无缝集成的方式。
虽然还有其他安装软件的方法,但请记住,强烈建议按照以下优先级顺序安装软件
- 来自您选择的软件中心或 Flathub 的 Flatpak
- 用户 distrobox 中的 RPM distrobox-enter
- root distrobox 中的 RPM distrobox-enter -r
- 通过 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 以获取所有选项。
故障排除
本节描述了 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 以获取更多信息。
提问地点
- openSUSE 论坛:https://forums.opensuse.org/tag/microos-kalpa-plasma
- Matrix:https://matrix.to/#/#kalpa:opensuse.org
有关 Kalpa 开发的“官方”最新消息
- Mastodon:https://fosstodon.org/@kalpa
- Kalpa Pagure:https://code.opensuse.org/Kalpa/Development