V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wzwtt
V2EX  ›  Linux

Fedora Silverblue 上怎样丝滑地使用 IDE

  •  
  •   wzwtt · 89 天前 · 2188 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 条回复    2025-06-19 05:53:29 +08:00
    joh
        1
    joh  
       89 天前 via Android
    2 ,把 IDE 也装进 distrobox 呢?
    wlingxiao
        2
    wlingxiao  
       89 天前 via Android
    把 tar.gz,rpm,deb 解压到用户目录,然后启动就完事了。

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