Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wzwtt
V2EX  ›  Linux

Fedora Silverblue 上怎样丝滑地使用 IDE

  •  
  •   wzwtt · Jun 18, 2025 · 2983 views
    This topic created in 329 days ago, the information mentioned may be changed or developed.
    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 感觉非常麻烦。
    有什么更好的方法吗
    9 replies    2025-06-19 05:53:29 +08:00
    joh
        1
    joh  
       Jun 18, 2025 via Android
    2 ,把 IDE 也装进 distrobox 呢?
    wlingxiao
        2
    wlingxiao  
       Jun 18, 2025 via Android
    把 tar.gz,rpm,deb 解压到用户目录,然后启动就完事了。

    Fedora 不可变系统推荐使用 https://github.com/ublue-os 这个发行版,自带显卡驱动,一系列开发工具和集成环境。
    capgrey
        3
    capgrey  
       Jun 18, 2025
    我当时也用过这个不可变系统,后来还是放弃了,转回 Workstation
    yanqiyu
        4
    yanqiyu  
       Jun 18, 2025
    混沌邪恶:仿照 https://pagure.io/workstation-ostree-config 的配置文件来 compose 自己的 Fedora Silverblue-like 的 OCI 镜像 https://coreos.github.io/rpm-ostree/container/,然后从这个 oci 镜像部署系统
    KamenReborn
        5
    KamenReborn  
       Jun 18, 2025
    远程开发
    vscode 装 Remote - Containers
    jetbrains 用 gateway
    cnt2ex
        6
    cnt2ex  
       Jun 18, 2025   ❤️ 2
    我觉得不要太纠结原则这个东西。哪个方案能解决问题就用哪个方案,都能解决就选择最方便自己的。
    如果通过 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
        7
    wzwtt  
    OP
       Jun 18, 2025 via iPhone
    谢谢各位,我研究一下大家的方案。
    wniming
        8
    wniming  
       Jun 18, 2025
    我是把 ide 和编译项目所需要的依赖库都装到 Distrobox 里,不过对于有些在本机运行的 gui 程序可能会因为 Distrobox 里的包和发行版默认安装的包不完全一样就无法在本机跑起来(这里说的不一样并不仅仅是包的版本,也包括有些包本机有但是容器里没有的情况,比如都是用 fedora 42 ,fedora plasma desktop 的默认安装会包含比较多的 rpm 包,而 Distrobox 使用的 fedora 容器默认包含比较少的 rpm 包),我遇到的比较典型的就是 Looking Glass ,这个软件只能自己编译源码使用,在容器里可以编译通过但是放到本机上运行直接报错退出,而且报的错不是那种直接让你知道是缺少什么库导致的错,这种软件就只能在本机上编译才能在本机上运行。
    james122333
        9
    james122333  
       Jun 19, 2025 via Android
    答案是不要用这些乱七八糟的东西自己整或...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4139 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 05:20 · PVG 13:20 · LAX 22:20 · JFK 01:20
    ♥ Do have faith in what you're doing.