游客发表

linux软件商店

发帖时间:2026-10-17 05:01:26

Linux 没有“软件商店”这件事,其实是个误会。Ubuntu 的 Snap Store、GNOME 的 Software、KDE 的 Discover,打开来长得都挺像那么回事——图标、截图、评分、一键安装。但你要是真拿它当 App Store 用,很快就会撞上墙:搜个微信,没有;搜个 Photoshop,没有;搜个 QQ,出来的可能是十几年前的 pidgin 插件。

问题出在底层逻辑上。Linux 的软件分发从来不是“商店”模式,而是“仓库”模式。apt、dnf、pacman 这些包管理器管的是系统级依赖,一个包能不能装,取决于它依赖的库在仓库里有没有、版本对不对。这跟手机应用商店那种“一个 app 一个沙盒”的思路完全两码事。所以你在 GNOME Software 里点“安装”的时候,它背后跑的其实是 apt 或 dnf,只是套了层 GUI 壳子。

这个壳子有时候还挺坑。我见过有人用 Ubuntu 22.04 的 Software 装 GIMP,进度条卡在 47% 不动了,关掉窗口再打开,发现装了一半。命令行里 sudo apt install gimp 一跑,三秒钟告诉你“依赖关系没配好”。GUI 把错误信息吞了,只给你看个转圈动画。

Snap 和 Flatpak 想解决这个问题。它们把依赖打包进应用里,不再依赖系统仓库。Snap Store 是 Canonical 主推的,Ubuntu 上默认就有。Flatpak 更开放一些,Flathub 上的应用数量也上来了。但代价是体积。一个 Snap 版的 Chromium 能占 1GB 以上,因为里面塞了好几套运行时。Flatpak 也差不多,装个 Spotify 要下 800MB。传统 apt 包呢?几十 MB 搞定。

还有个更根本的矛盾:Linux 用户群体太分散。Debian 用户觉得 apt 够用,Arch 用户觉得 AUR 才是正道,Fedora 用户用 dnf 用得好好的。你做一个“统一软件商店”,得同时对接 apt、dnf、pacman、zypper、portage……每个包管理器的元数据格式、依赖解析逻辑都不一样。GNOME Software 试图做这件事,结果就是经常出现“这个应用在你的发行版上不可用”的提示,点进去一看,其实命令行里能装。

我自己的习惯是:GUI 商店只用来逛,看截图和介绍,决定装什么。真装的时候切到终端。不是因为我多爱命令行,而是因为终端会告诉我到底发生了什么。是缺依赖?是源里没有?是版本冲突?这些信息 GUI 要么不显示,要么显示得含糊其辞。

当然也有做得好的。Manjaro 的 Pamac 就挺顺手,AUR 支持直接集成在里面,搜索、安装、更新一条龙。openSUSE 的 YaST 软件管理虽然长得老气,但功能扎实,依赖解析很少出问题。这些工具的共同点是:它们没有试图隐藏包管理的复杂性,而是把复杂性组织得更有条理。

所以 Linux 软件商店这个东西,本质上是个翻译层。它把包管理器的语言翻译成普通用户能看懂的话。翻译得好,用户觉得方便;翻译得差,用户觉得还不如直接说原话。目前大部分发行版自带的商店,翻译水平大概相当于谷歌翻译刚出那会儿——能用,但别指望太多。

你要是刚从 Windows 或 macOS 过来,别对“商店”这个词抱太大期望。把它当成一个图形化的包管理器入口就行。真正找软件,还是得去 Flathub 网站、AUR 页面、或者直接 apt search。终端里敲几个字母,比在商店里翻半天快多了。

    热门排行

    友情链接