Fedora Silverblue 上怎样丝滑地使用 IDE

95 天前
 wzwtt
Silverblue 中,通常将 GUI 程序安装在 Flatpak 中,CLI 程序安装在 Toolbox 中,但是对于 IDE 而言,安装在 Flatpak 中的 IDE 无法直接访问到 Toolbox 中的开发环境。
网上有几种解决方法:

1. IDE 和开发环境一起安装在 Toolbox 中,然后复制 `.desktop` 文件到主机

2. 使用 Distrobox 替代 Toolbox 安装开发环境,然后 `distrobox-export` 到主机,但是对于 Flatpak 中的 IDE 来说还是要一通非常麻烦的设置才能访问到主机中 Distrobox 导出的开发工具

3. IDE 和开发环境一起安装在 Flatpak 中

4. 对于 VSCode ,可以使用 [toolbox-vscode]( https://github.com/owtaylor/toolbox-vscode) 工具,但也仅限于 VSCode

我认为 1 和 3 虽然能用,但是很别扭,都不太符合 Silverblue 的原则,而 2 感觉非常麻烦。
有什么更好的方法吗
2207 次点击
所在节点    Linux
9 条回复
joh
95 天前
2 ,把 IDE 也装进 distrobox 呢?
wlingxiao
95 天前
把 tar.gz,rpm,deb 解压到用户目录,然后启动就完事了。

Fedora 不可变系统推荐使用 https://github.com/ublue-os 这个发行版,自带显卡驱动,一系列开发工具和集成环境。
capgrey
95 天前
我当时也用过这个不可变系统,后来还是放弃了,转回 Workstation
yanqiyu
95 天前
混沌邪恶:仿照 https://pagure.io/workstation-ostree-config 的配置文件来 compose 自己的 Fedora Silverblue-like 的 OCI 镜像 https://coreos.github.io/rpm-ostree/container/,然后从这个 oci 镜像部署系统
KamenReborn
95 天前
远程开发
vscode 装 Remote - Containers
jetbrains 用 gateway
cnt2ex
95 天前
我觉得不要太纠结原则这个东西。哪个方案能解决问题就用哪个方案,都能解决就选择最方便自己的。
如果通过 layering 更方便,就选择 layering ,没必要为了原则就非得避免更加方便的做法。

曾经我也想避免所有 layering ,全利用 distrobox 解决问题。
比如把 git 、zsh 、tmux 之类的包全装 distrobox 里,使所有开发环境能共享工具链,结果发现 tcpdump 、nvtop 之类的包需要装在 rootful 的容器下才能用。
等全部迁移到 rootrul 容器里之后,又发现启动容器得输入密码才能打开。
于是又同时使用两个容器:rootful 容器和非 root 的,只把必要的工具装 rootful 容器里,其他装非 root 的容器。

后来一通折腾下来发现,我还得想办法把带 systemd-service 的包也给迁移出来。
结果最终发现,与其为了一些原则而避免 layering ,反而带来更多麻烦。所以我现在如果 layering 方便就直接 layering 了。

layering 的缺点也有,比如安装后需要重启(虽然可以通过 apply-alive 缓解这个问题)。在安装新的包时,所有 layering 的包都会再被重新安装一遍,因此 layering 越多,每次安装速度也会越慢。

目前也有人提出利用 sysext 来安装一些包,从而避免每次更新都得重启: https://travier.github.io/fedora-sysexts/

我个人觉得 atomic desktop 还在发展中。包括 rpm-ostree 也在向 bootc 方向迁移。
因此各种方案都有,也不一定成熟。
最终会在哪种方案上稳定下来也还不确定,所以别纠结太多哪种方案了,选择自己方便的来吧。
wzwtt
94 天前
谢谢各位,我研究一下大家的方案。
wniming
94 天前
我是把 ide 和编译项目所需要的依赖库都装到 Distrobox 里,不过对于有些在本机运行的 gui 程序可能会因为 Distrobox 里的包和发行版默认安装的包不完全一样就无法在本机跑起来(这里说的不一样并不仅仅是包的版本,也包括有些包本机有但是容器里没有的情况,比如都是用 fedora 42 ,fedora plasma desktop 的默认安装会包含比较多的 rpm 包,而 Distrobox 使用的 fedora 容器默认包含比较少的 rpm 包),我遇到的比较典型的就是 Looking Glass ,这个软件只能自己编译源码使用,在容器里可以编译通过但是放到本机上运行直接报错退出,而且报的错不是那种直接让你知道是缺少什么库导致的错,这种软件就只能在本机上编译才能在本机上运行。
james122333
94 天前
答案是不要用这些乱七八糟的东西自己整或...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1139309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX