Skip to content

shamash970405/LPM

Repository files navigation

📦 LPM (Linux Package Manager)

終端機老手的極速瑞士刀,Linux 新手的通靈守護神。 一款主打 「零指令(Zero-CLI)」「AI 通靈輔助」「高速批次多通路還原」 的現代化 Linux 全通路套件管理終端工具(TUI)。

LPM 的核心哲學是將 Linux 系統中繁雜、分散的套件管理通路(APT, Snap, Flatpak, Pacman 等)收攏進同一個優雅的終端機互動面板。透過現代化的 TUI 介面、高併發平行掃描技術與 Gemini AI 深度整合,讓你在不需要死記任何 CLI 指令的狀況下,一目了然地管理系統,輕鬆剔除不需要的臃腫軟體!


🚀 核心殺手級特色 (Core Features)

🔮 1. 多 AI 智慧搜尋(須自行加上token)

  • 不再盲目刪除:游標移到任何套件上,AI會自動搜尋,用最白話的繁體中文解釋該套件的真實用途與核心特點。
  • 輕鬆斷捨離:一眼看出哪些是系統核心、哪些是當初亂裝的垃圾,幫你的 Linux 系統來場完美的斷捨離。

⚡ 2. 跨通路多線程批次處理中心

  • 告別龜速輸入:支援同時輸入多個套件(以英文逗號分隔),一次發射,自動跨 APT、Snap、Flatpak 等渠道平行檢索。
  • 雙軌狀態樹狀報告:搜尋完畢後,自動分類為 ✅ 已解析成功⏳ 未解析/尋找逾時,提供極具科技感的視覺化樹狀圖勾選確認,杜絕傳統套件工具安裝時的盲目感。

📥 3. 智慧反序列化:套件生態圈匯入/匯出

  • 0 秒快保送通道:換電腦時再也不用重新重灌!LPM 支援將套件列表匯出為美觀的「資料結構樹狀文字檔」。匯入時自動辨識來源標籤,開啟 VIP 快速通道直接保送,免去重複檢索的系統效能浪費。
  • 即時預覽與資安防禦:輸入路徑時即時動態解析檔案內容,並內建高強度「資安警告標語」,主動防禦外部惡意清單綁架你的系統。

🧹 4. 系統級智慧維護與保養

  • 全系統大升級:一鍵同時觸發全通路核心升級(APT Update & Upgrade, Snap Refresh, Flatpak Update),並自動執行 autoremove 垃圾回收機制,釋放被孤兒依賴套件霸佔的硬碟空間。
  • 個別精準套件升級:將系統已安裝套件分類,允許使用者在精美的視覺樹狀圖中隨意勾選,進行精準的單一或批次軟體更新。

🛠️ 技術亮點與架構優化 (Technical Highlights)

這部分展現了本專案在非同步程式設計與使用者體驗(UX)上的硬核實力:

  1. 防爆孿生進程控制 (Concurrency Semaphore) 針對大量匯入(如 2000+ 筆套件索引)的極端場景,LPM 內建了 asyncio.Semaphore(15) 紅綠燈控制機制。嚴格限制同時間向 Linux 核心申請的 Subprocess 數量,完美解決了高併發導致的 FD (File Descriptor) 爆滿與 CPU 卡死問題(拒絕自我 DDoS / Fork Bomb)。
  2. 10 秒非同步中斷與遞迴解析 (Recursive Reparse) 背景多線程搜尋時,LPM 提供 🏳️‍⚧️ MTF 像素旗幟動畫安撫使用者焦慮。若網路卡死,10秒後自動觸發「略過按鈕」,允許強制切斷未完成的背景進程,並將被切斷的套件留存於 未解析清單。使用者可手動勾選,進行「遞迴式二次重新解析」,將控制權 100% 還給使用者。
  3. 智慧分流環境對應引擎 (Context-Aware Terminal) LPM 具備環境感知能力。當使用者在普通案頭環境下操作時,更新與解除安裝會自動呼叫系統原生圖形終端機(如 Konsole, GNOME Terminal),並透過 /tmp 訊號檔案死守監聽行程,關閉時主畫面即時秒同步。當偵測到 SSH 遠端模式時,會自動切換為內建的 sudo -S 互動管線,完美突破遠端無法彈窗的物理限制。
  4. 鍵盤特權局部降級 (Binding Priority Scope Isolation) 為了解決 DataTable 元件天生吃掉鍵盤 Enter 鍵的框架限制,專案捨棄了霸道的高優先權全域綁定,改為客製化擴充 PackageTable(DataTable),將 priority=True 完美鎖死在表格元件內部。當游標移出表格、打開系統選單(ESC)或進入對話框時,Enter 鍵會自動退回原始確認意圖,打通了 TUI 介面的流暢任督二脈。

⌨️ 終端機極速快捷鍵導航 (Key Bindings)

快捷鍵 動作 功能說明
Q 系統離開 快速安全的退出 LPM 主程式(輸入框對焦時除外)
F1 Focus 搜尋 快速複製目前選中套件名稱至 AI 搜尋框並自動對焦
ESC 系統選單 呼叫核心控制選單:包含系統設定、匯入、匯出、系統升級
Space 多選標記 在表格中將多個套件打上標記,底部狀態列將常駐顯示準備名單
Enter 確認刪除 智慧自動分流:單選時觸發單一解除 purge;多選時啟動大規摸批次連鎖解除
Z 批量處理中心 召喚彈出式控制中心,輸入多個想安裝的關鍵字,啟動跨渠道搜尋

🚨 資安重要聲明 (Security Notice)

⚠️ 系統安全,人人有責 LPM 在匯入功能中提供了極高的自由度,但請務必謹記:「絕對不要輕信、匯入任何來源不明、未經審查的他人套件列表檔案(.txt)!」 惡意清單可能包含具備資安風險的綁架軟體、後門或挖礦程式。請在點擊 LPM 的 [解析並匯入 🚀] 前,透過介面內建的 巨大的即時預覽框 仔細核對每一項套件名稱!


專案結構

.
├── manager.py         # 🎬 主程式核心:負責主介面佈局 (TUI Layout)、事件監聽與按鍵分流
├── modals.py          # 🏳️‍⚧️ 彈窗動畫中心:包含 MTF 旗幟動畫、百萬級防爆搜尋引擎與樹狀報告
├── morefunction.py    # ⚙️ 系統設定、SSH專用互動終端機、智慧導入解碼、導出編碼器
├── sys_info.py        # 🐧 底層系統探針:全自動硬體環境偵測、OS識別、硬碟進度條計算
├── search.py          # 🔍 搜尋列核心:專職處理 Input 欄位的非同步高效防抖 (Debounce)
└── theme.py           # 🎨 佈景主題管理:負責全自動 CSS Fallback 機制與全域色彩矩陣管理

🛠️ 安裝與依賴環境

本專案採用 Python 3.10+ 開發,且已完整測試過最新環境相容性。請在專案目錄下依序執行以下指令來初始化環境:

# 1. 下載此專案
git clone https://github.com/shamash970405/LPM.git

# 2. 切換進專案資料夾
cd ~/LPM

# 3. 建立並啟用 Python 虛擬環境
./install.sh

我知道有點麻煩ww再忍耐一下就好,之後會變成apt

About

一個基於Textual的Linux 套件管理工具

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors