# Linux 软件批量管理工具 **Repository Path**: deepin20/LSBM ## Basic Information - **Project Name**: Linux 软件批量管理工具 - **Description**: Linux 软件批量管理工具 (LSBM)是一款图形化的 Linux 软件批量管理工具,支持从系统源、Deb 包、AppImage、Flatpak、Snap 及自定义脚本等多种来源一键安装、卸载和更新软件。专为 Deepin 25 不可变系统优化,同时兼容 Debian/Ubuntu/Fedora 等主流发行版。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-08 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux 软件批量管理工具 (LSBM) [![版本](https://img.shields.io/badge/版本-2.0.0-blue.svg)](https://github.com/your-repo/lsbm) [![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://python.org) [![许可](https://img.shields.io/badge/许可-MIT-yellow.svg)](LICENSE) **LSBM** 是一款图形化的 Linux 软件批量管理工具,支持从系统源、Deb 包、AppImage、Flatpak、Snap 及自定义脚本等多种来源一键安装、卸载和更新软件。专为 Deepin 25 不可变系统优化,同时兼容 Debian/Ubuntu/Fedora 等主流发行版。 ![界面预览](screenshot.png) --- ## ✨ 特性 - 🎯 **批量操作**:按分类(办公、开发、多媒体等)一键勾选,或精细到单个软件,实现批量安装/卸载/更新。 - 📦 **多格式支持**:系统源包、`.deb`、AppImage、Flatpak、Snap、自定义脚本,一网打尽。 - 🌐 **离线模式**:预先下载安装包,离线安装无压力。 - ⚙️ **软件源管理**:图形化增删改查软件条目,无需手动编辑 JSON。 - 🔄 **更新管理**:检查并一键更新所有已安装软件(系统源包)。 - 💾 **配置导入导出**:将勾选状态保存为 `.lsbm` 文件,方便迁移和分享。 - 🧩 **一键组合**:内置“开发环境”、“办公环境”等组合,快速配置。 - 🖥️ **现代化界面**:清晰分区、实时进度、状态栏反馈,操作直观。 - 🔒 **sudo 非交互**:所有命令使用 `sudo -n`,配合安装时配置的免密规则,全程无密码输入。 --- ## 📋 系统要求 - **操作系统**:Deepin 25 / Debian 11+ / Ubuntu 22.04+ / Fedora 38+ - **Python**:3.8 或更高版本 - **依赖**:`python3-tk`, `wget`, `dpkg`, `apt`, `sudo`(其他依赖在安装时自动处理) --- ## 🚀 安装方法 ### 方法一:通过 DEB 包(推荐) 1. 下载最新的 `.deb` 包(或自行构建,见下文“开发者指南”)。 2. 安装: ```bash sudo dpkg -i lsbm_*.deb sudo apt install -f # 修复依赖(如有缺失) ``` 3. 安装过程中会自动: - 将程序复制到 `/opt/lsbm` - 创建 `/usr/local/bin/lsbm` 启动命令 - 添加桌面快捷方式 - 配置 sudo 免密规则(`/etc/sudoers.d/lsbm`) ### 方法二:源码运行(开发/调试) ```bash git clone https://github.com/your-repo/lsbm.git cd lsbm pip install -r requirements.txt # 若存在 python main.py ``` > 注意:源码运行需手动配置 sudo 免密(执行 `sudo visudo -f /etc/sudoers.d/lsbm` 添加 `ALL ALL=(ALL) NOPASSWD: ALL`),否则部分功能可能提示输入密码。 --- ## 🖱️ 使用指南 ### 启动 - 从应用菜单点击 **Linux Software Batch Manager** 图标,或 - 在终端输入 `lsbm` 启动。 ### 主界面 - **左侧面板**:软件选择区 - **批量分类**:勾选整个分类(如“办公软件”) - **单件精细选择**:单独勾选分类下的某个软件(优先级更高) - **一键组合**:下拉选择“开发环境”等组合,点击“应用”自动勾选 - **计数显示**:实时显示已选分类数和单件数 - **右侧面板**:操作区 - **安装选中**:执行安装 - **卸载选中**:执行卸载(会清除配置) - **更新选中**:仅更新已勾选且可更新的软件 - **进度条**:显示任务进度 - **实时日志**:滚动显示命令输出 ### 管理软件源 - **菜单 → 工具 → 管理软件源**:打开管理窗口 - 可添加、编辑、删除软件条目,支持指定安装类型(系统源/deb/AppImage/Flatpak/Snap/脚本) - 所有修改立即生效,无需重启 ### 导出/导入配置 - **文件 → 导出配置**:将当前勾选状态保存为 `.lsbm` 文件 - **文件 → 导入配置**:从 `.lsbm` 文件恢复勾选状态 ### 离线安装 - 勾选所需软件后,通过 **文件 → 导出离线脚本** 生成 `export_offline.sh` - 在有网络的机器上运行该脚本,下载所有安装包至 `offline_packages/` - 将整个 `offline_packages` 目录复制到目标机器,开启界面中的“离线模式”,执行安装即可。 --- ## 🧩 自定义与扩展 ### 软件数据文件 - 位置:`data/app_data.json`(DEB 安装后位于 `/opt/lsbm/data/app_data.json`) - 格式:JSON 数组,每个条目包含 `name`, `pkg`, `file`, `url`, `md5`, `install_type` 等字段。 - 可通过“管理软件源”图形化编辑,也可手动编辑 JSON。 ### 添加自定义组合 - 编辑 `config.py` 中的 `COMBO_SETS` 字典,按格式添加新组合即可。 --- ## 🛠️ 开发者指南 ### 构建 DEB 包 项目根目录已包含 `build_deb.sh`,运行即可一键生成 `.deb`: ```bash chmod +x build_deb.sh ./build_deb.sh ``` 构建依赖:`rsync`, `dpkg-dev`, `imagemagick`(可选,用于生成图标)。 ### 项目结构 ``` lsbm/ ├── main.py # 入口 ├── config.py # 配置与常量 ├── system_detector.py # 系统检测 ├── installer_core.py # 安装/卸载核心 ├── gui/ # GUI 模块 │ ├── gui_app.py # 主窗口 │ ├── gui_dialogs.py # 管理对话框 │ └── gui_updates.py # 更新管理 ├── data/ # 数据文件 │ └── app_data.json ├── runtime/ # 运行时目录(日志、临时文件等) └── build_deb.sh # DEB 构建脚本 ``` ### 贡献指南 欢迎提交 Issue 和 Pull Request。请确保代码符合 PEP 8 规范,并添加适当的注释。如有新增功能,请同步更新本文档。 --- ## 📄 许可证 本项目采用 [MIT 许可证](LICENSE),欢迎自由使用和修改。 --- ## 📞 联系方式 如有问题或建议,请提交 Issue 或联系 [lsbm@example.com](mailto:lsbm@example.com)。 --- *Happy Linuxing!* 🐧