Skip to content
WenAnrongPublic

About

带软件推荐的 apt 增强封装器

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

aptx

带软件推荐的 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 会自动安装。

1. 安装

直接克隆本仓库,然后运行安装脚本:

git clone https://github.com/WenAnrong/aptx.git
cd aptx

方式一:安装脚本(推荐)

sudo ./install.sh

卸载时使用 uninstall.sh:

sudo ./uninstall.sh

方式二:源码直接运行(无需安装)

./aptx --help        # 系统需装有 python3-apt

2. 第一次使用:更新并重建缓存

sudo aptx update

3. 日常使用

sudo aptx install vim      # 安装 vim,装完推荐 3 款同类编辑器
sudo aptx remove vim       # 卸载 vim,卸完推荐 2 款同类编辑器

aptx search editor         # 原样透传给 apt
aptx show vim

4. 推荐交互说明

装完/卸完软件后,aptx 会逐个列出推荐软件(名称 + 简介),并询问:

推荐 1/3: nano
  简介: 小巧易用的文本编辑器
是否额外安装 nano? [y/N]
  • 输入 y(或 yes)→ 加入待安装列表,全部确认后统一安装
  • 直接回车 → 跳过(默认不装,大写 N 表示默认值)
  • 在脚本/管道等非交互终端中会自动跳过推荐,不会卡住

5. 常见问题

问题 说明
提示需要 root? 安装/卸载/更新都需要 root,请用 sudo 运行
想跳过安装确认? 与 apt 一致支持选项:aptx install -y <包>;模拟用 aptx install -s <包>,模拟不触发推荐
首次必须 update? 未运行过 sudo aptx update 时,install/remove 会被拒绝,请先运行
缓存超过 7 天? 只提示刷新、不强制,install/remove 仍可正常执行
推荐不准? install.sh 已自动安装 debtags 启用标签匹配,推荐更精准
界面语言不对? 由 LANG 环境变量决定,zh* 中文,其他英文

面向开发者

工作原理

  1. aptx update 执行 apt update,随后遍历 apt.Cache(),把 名称 / 短简介 / 长简介 / section / 是否已装 / priority / 是否 essential 写入 /var/lib/aptx/cache.db(SQLite)。
  2. 推荐前检查缓存年龄,缺失或超过 7 天会提示先运行 aptx update。
  3. install/remove 后,从缓存取同 section 候选,按 debtags 标签重叠度排序 (无 debtags 时按简介关键词优先、再按 priority),排除已安装与 essential 包。
  4. 候选逐个 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

About

带软件推荐的 apt 增强封装器

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages