曩者,余瀏覽 Ubuntu 22.04 之應用抽屜,忽見一應用,不識也。未嘗知其何時所裝,若曾裝之,久已忘矣。無妨,余思,吾但去之即可。然,如何去之?
此乃何物?apt套件乎?Snap 乎?Flatpak 乎?欲自終端去之,首當辨明其名。 之器置之,乃忆其正确之命。GNOME Software,乃建于商店之侧,发现而安装之,几乎无视非其所管理之源。对于一未知之应用,已存于吾之磁盘,此觉甚费侦探之功。
乃寻一简易之图形应用,但示吾 诸事。 装于吾机,任吾去其不欲,无论其何由至。吾未得一物能净除之。故于暇时,吾始自制之。
此乃展示之所在。
一处容所有装之应用
Linux之应用,由数门而入。有系统之包(apt/dpkg者,Flatpak也,Snap也,复有独立之AppImage。各有所法,列之去之,异趣殊途。展示之术,兼采众流,凡形画之属,悉纳一格,标其本源。
自此以往,可:
- 索、筛、序之。即索即筛,可按源(并具实时计数)或类,亦可按名、量、新近安装而序之。
- 察之无碍。点一应用,则得详版,具其徽、本、量、日、出者、类、包号,并详述之。
-
去之无惑。一击认证,依常例密码提示。展示告君复得磁盘空间几何。其前也汝若提交,则当警示于移除之际。
apt包将携其依从者同沉,独拒移除要务系统包或根本Snaps。 -
时时刻刻更新。 随地检视一应用之更新,或遍扫诸应用,逐一或毕其更新,皆循其本源之机制。
依系统明暗之主题,且各源并行查询,一源迟滞或阙如(如不使用Snap),不滞其余。
略述其运作之道
Showcase乃本机桌面应用,以之构建泰瑞 v2,故有 Rust 核心配以 斯维特基特(斯维特 5) 前端。二进制文件得以精简,且其感若真 GTK 之应用,非浏览器标签伪饰之貌。
至趣之问,乃“何谓真应用”,而答乃卑之。.desktop之文件。此乃汝应用程序菜单中所显之条目,故 Showcase 视其为真实之源,继而各以所属包管理器之元数据丰之。
吾初时重二事:
- 其永不以 root 运行。唯卸载一事升权,独此一行,经标准 polkit 提示。
- 无壳字符串构建之术。软件名以参数数组传递,未尝拼入壳命令,故无可注入之物。 ### 值得一提之陷阱
“全部更新”之钮,初看似已毕功,然复审方觉其window.confirm() 默然无动。 藏于 Tauri/WebKitGTK 之網頁視窗中(wry 未曾接引 script-dialog 之信號)。故此按鈕幾乎無用。確認之回應為 false,然後萬籟俱寂。其解法乃棄用瀏覽器對話,改用應用內確認之�件。若君欲於 Linux 上構建 Tauri,勿求 alert / confirm / prompt。彼等之行止,非若瀏覽器中然。
诚言于事
余闲时为之,配以Claude Code。先定其规,次谋其略,复行其验,凡解析之术、逻辑之理,皆隐于微渺之令行"隙"中,故可逐验于固件,而非扰于实系。此乃偏业终成之由也180 Rust 测试与 150+ 前端测试,皆由 CI 约束。此亦为上引评审所察之谬,幸而快径测试未尝见之。
分发亦受同制:每度发布,皆于 CI 中构建,附以构建溯源之证,供验SHA256SUMS,且亦自GPG 签名之 APT 仓库中供之。 俾尔得正apt所辖之更新。
試之
Showcase 运于Ubuntu 22.04+ (amd64)及其支系。自Releases 页面取预制之包,而施之:
# download the .deb from the latest release, then (use apt, it resolves deps):
sudo apt install ./Showcase_*_amd64.deb
欲便携之物乎?有之。AppImage(应用镜像)于同一次发布。惟chmod +x行之。或一添已签之APT仓库,如他包般得更新(详尽之指在README中)。
指也代码,下载,及文档:GitHub.com(rabbitislam-xyz)之showcase
此乃MIT之许可,且为开源。若君心有所契,一星实助其广为人知。次乃安装之应用,非徒管理既存之物,亦在路线图之次序,而问题/PR甚为欢迎。
若君尝凝眸于不识之应用,而思如何除之,此即Showcase所解之痒也。













