Skip to content

Repository files navigation

ViewDeb

一个现代化、简洁的 Debian 软件包解析工具,基于 Tauri 框架构建的桌面应用,支持快速查看 .deb 包的内容信息。

ViewDeb React TypeScript MIT License

功能特性

  • 🚀 快速解析 - 秒级解析大型 deb 包
  • 📄 完整文件列表 - 列出包内所有包含的文件
  • 🔍 文件搜索 - 支持按路径搜索文件
  • 📂 智能筛选 - 按文件类型筛选(全部/ELF/Desktop/其他)
  • 📊 统计信息 - 显示包大小、文件数量等统计
  • 📦 依赖关系 - 查看包的依赖、推荐、建议、冲突
  • 📜 脚本查看 - 查看 preinst、postinst 等安装/卸载脚本
  • 🔧 控制文件 - 查看 control、md5sums、conffiles
  • 🔬 ELF 分析 - 识别和分析二进制文件的详细信息
  • 🖥️ Desktop 文件 - 查看桌面应用配置信息
  • 🌍 多语言支持 - 支持中文和英文界面切换
  • 🌓 主题切换 - 支持浅色、深色、跟随系统三种主题
  • 💻 桌面应用 - 原生桌面体验,无需浏览器

技术架构

前端

  • 框架: React 19
  • 构建工具: Vite 6
  • 语言: TypeScript
  • 样式: Tailwind CSS
  • 图标库: Lucide React

桌面框架

  • 框架: Tauri 2
  • 后端语言: Rust
  • 包管理: Cargo

包解析

  • 工具: dpkg-deb
  • ELF 分析: readelf

系统依赖

构建和运行项目需要系统安装以下工具:

命令 用途
dpkg Debian 包管理器,用于解压和提取 .deb 文件
dpkg-deb dpkg 的子命令,用于处理 .deb 包文件操作
readelf ELF 文件分析工具,用于解析二进制文件信息
cargo Rust 包管理器(Tauri 构建需要)

安装系统依赖

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install -y dpkg binutils cargo

CentOS/RHEL/Fedora:

sudo yum install -y dpkg binutils cargo
#
sudo dnf install -y dpkg binutils cargo

快速开始

环境要求

  • Node.js 18 或更高版本
  • npm 或 yarn 或 pnpm
  • Rust 和 Cargo(Tauri 需要)
  • Linux 系统(需要 dpkg 和 binutils)

安装依赖

npm install

启动开发环境

Web 开发模式(使用 Vite):

npm run dev

Tauri 桌面应用开发模式:

npm run tauri:dev

构建生产版本

构建 Web 版本:

npm run build
npm run preview

构建 Tauri 桌面应用:

npm run tauri:build

构建完成后,桌面应用位于 src-tauri/target/release/bundle/ 目录。

使用说明

  1. 上传文件: 拖拽 .deb.udeb 文件到页面上传区域,或点击选择文件
  2. 查看解析结果: 解析完成后,可查看以下信息:
    • 概览: 包的基本信息、统计数据、依赖关系
    • 文件列表: 目录树结构,支持展开/折叠、搜索、筛选
    • 脚本: 查看 preinst、postinst、prerm、postrm 等脚本内容
    • 控制文件: 查看 control、md5sums、conffiles
  3. 点击文件: 点击文件树中的文件可查看详细信息(ELF 文件和 Desktop 文件支持详细显示)
  4. 切换语言: 点击右上角语言图标切换中文/English
  5. 切换主题: 点击右上角主题图标切换浅色/深色/跟随系统

项目结构

viewdeb/
├── src/
│   ├── components/
│   │   ├── FileUpload.tsx        # 文件上传组件
│   │   ├── PackageView.tsx       # 包信息展示组件
│   │   ├── ThemeToggle.tsx       # 主题切换组件
│   │   └── LanguageSelector.tsx  # 语言选择器
│   ├── lib/
│   │   ├── i18n/                 # 国际化配置
│   │   │   ├── index.ts
│   │   │   └── messages/
│   │   │       ├── zh.json
│   │   │       └── en.json
│   │   ├── platform/             # 平台相关功能
│   │   └── theme/                # 主题管理
│   ├── App.tsx                   # 应用入口
│   └── main.tsx                  # React 入口
├── src-tauri/
│   ├── src/                      # Rust 后端代码
│   ├── capabilities/             # Tauri 权限配置
│   ├── icons/                    # 应用图标
│   ├── tauri.conf.json           # Tauri 配置
│   └── Cargo.toml                # Rust 依赖配置
├── index.html                    # HTML 模板
├── vite.config.ts                # Vite 配置
├── package.json
├── tsconfig.json
└── tailwind.config.ts

安全与隐私

  • ✅ 文件仅在本地处理,不上传到任何服务器
  • ✅ 使用官方 dpkg 工具解析,确保提取完整性
  • ✅ 支持校验和验证
  • ✅ 开源代码,可自行审计

开发路线图

  • 支持更多包格式(rpm、flatpak 等)
  • 添加文件预览功能
  • 支持批量上传
  • 添加更多 ELF 分析细节
  • 支持直接安装 deb 包
  • 添加包对比功能

架构变更记录

v0.2.0 - 架构重构

  • 从 Next.js 迁移到 Vite + React
  • 添加 Tauri 桌面应用支持
  • 从服务端渲染改为纯客户端应用
  • 移除对运行时服务器的依赖

贡献

欢迎提交 Issue 和 Pull Request!

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

致谢

本项目使用以下优秀的开源项目:


Made with ❤️ by the open source community

About

一个现代化、简洁的 Debian 软件包在线解析工具,支持快速查看 .deb 包的内容信息。A modern, clean online Debian package parser tool for quickly viewing the contents of .deb packages.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages