带软件推荐的 apt 增强封装器 —— 在安装/卸载软件后,自动推荐同类软件。
aptx update:更新软件源,同时构建本地推荐缓存(SQLite)aptx install <包>:安装软件,成功后推荐 3 款同类软件aptx remove <包>:卸载软件,完成后推荐 2 款同类软件- 其余
apt命令(show/search/list/upgrade…)原样透传给系统apt - 推荐逐个展示、
y/N确认(回车默认不装);界面按系统语言自动切换中英文(LANG以zh开头即为中文)
| 系统 | 版本 |
|---|---|
| Debian | >= 12 (bookworm) |
| Ubuntu | >= 22.04 LTS (jammy/noble 等) |
安装时依赖 python3-apt 与 debtags,install.sh 会自动安装。
直接克隆本仓库,然后运行安装脚本:
git clone https://github.com/WenAnrong/aptx.git
cd aptx方式一:安装脚本(推荐)
sudo ./install.sh卸载时使用 uninstall.sh:
sudo ./uninstall.sh方式二:源码直接运行(无需安装)
./aptx --help # 系统需装有 python3-aptsudo aptx updatesudo aptx install vim # 安装 vim,装完推荐 3 款同类编辑器
sudo aptx remove vim # 卸载 vim,卸完推荐 2 款同类编辑器
aptx search editor # 原样透传给 apt
aptx show vim装完/卸完软件后,aptx 会逐个列出推荐软件(名称 + 简介),并询问:
推荐 1/3: nano
简介: 小巧易用的文本编辑器
是否额外安装 nano? [y/N]
- 输入
y(或yes)→ 加入待安装列表,全部确认后统一安装 - 直接回车 → 跳过(默认不装,大写 N 表示默认值)
- 在脚本/管道等非交互终端中会自动跳过推荐,不会卡住
| 问题 | 说明 |
|---|---|
| 提示需要 root? | 安装/卸载/更新都需要 root,请用 sudo 运行 |
| 想跳过安装确认? | 与 apt 一致支持选项:aptx install -y <包>;模拟用 aptx install -s <包>,模拟不触发推荐 |
| 首次必须 update? | 未运行过 sudo aptx update 时,install/remove 会被拒绝,请先运行 |
| 缓存超过 7 天? | 只提示刷新、不强制,install/remove 仍可正常执行 |
| 推荐不准? | install.sh 已自动安装 debtags 启用标签匹配,推荐更精准 |
| 界面语言不对? | 由 LANG 环境变量决定,zh* 中文,其他英文 |
aptx update执行apt update,随后遍历apt.Cache(),把名称 / 短简介 / 长简介 / section / 是否已装 / priority / 是否 essential写入/var/lib/aptx/cache.db(SQLite)。- 推荐前检查缓存年龄,缺失或超过 7 天会提示先运行
aptx update。 install/remove后,从缓存取同 section 候选,按 debtags 标签重叠度排序 (无 debtags 时按简介关键词优先、再按 priority),排除已安装与 essential 包。- 候选逐个
y/N确认,选中的包在同一个 apt 事务中一次装完。
python3 -m unittest discover -v # 单元测试(无需 root)
APTX_RUN_INTEGRATION=1 python3 -m unittest tests.test_integration -v # 真机集成测试(需 python3-apt)CI 会在 debian:12、debian:13、ubuntu:22.04、ubuntu:24.04 四个容器中跑单元测试(见 .github/workflows/test.yml)。集成测试可在本地运行:APTX_RUN_INTEGRATION=1 python3 -m unittest tests.test_integration -v。
aptx/ # 源码入口脚本(./aptx 直接运行)
src/aptx/
cli.py # 命令分发:update/install/remove 自实现,其余透传 apt
core.py # python-apt 安装/卸载/更新 + root 检测
cache.py # SQLite 缓存与查询
recommend.py # 推荐算法 + y/N 逐个交互
i18n.py # 系统语言检测与中英文文案
install.sh / uninstall.sh # 安装 / 卸载脚本
tests/ # 单元测试与集成测试
.github/workflows/ # CI 工作流
MIT