Skip to content

mttk2004/arch-manager

Repository files navigation

Arch Package Manager 🚀

Trình quản lý gói tập trung cho Arch Linux và các distro dựa trên Arch, sử dụng zsh với giao diện menu tương tác hiện đại, đầy màu sắc.

Version 2.1.0 - Modular Architecture

📁 Cấu trúc dự án

arch-zsh-manager/
├── bin/              # Executable entry points
│   └── pkgman        # Main application
├── lib/              # Modular libraries
│   ├── core/         # Core modules (colors, UI, detection, utils)
│   ├── package/      # Package management
│   ├── system/       # System maintenance
│   ├── advanced/     # Advanced features
│   ├── font/         # Font management
│   └── devtools/     # Development tools
├── docs/             # Documentation
├── scripts/          # Utility scripts
├── config/           # Configuration (future)
├── README.md
├── CHANGELOG.md
└── LICENSE

✨ Tính năng

🎯 Quản lý gói từ nhiều nguồn

  • pacman - Gói chính thức từ kho Arch
  • AUR - Hỗ trợ yay/paru
  • Flatpak - Ứng dụng sandbox (nếu có cài)

🛠️ Chức năng chính

Hệ thống gói

  • ✅ Cài đặt gói từ nhiều nguồn
  • ✅ Xóa gói (với/không dependencies)
  • ✅ Cập nhật hệ thống (toàn bộ hoặc từng nguồn)
  • ✅ Tìm kiếm gói
  • ✅ Xem thông tin chi tiết gói

Bảo trì hệ thống

  • 🧹 Dọn dẹp cache (pacman, AUR, Flatpak)
  • 🗑️ Xóa gói orphan (không còn cần thiết)
  • 📋 Liệt kê gói đã cài
  • 🔍 Kiểm tra gói bị hỏng

Nâng cao

  • ⬇️ Downgrade gói về phiên bản cũ
  • 📜 Xem log cài đặt/gỡ bỏ gói
  • 🌐 Quản lý mirror (reflector)
  • 🔧 Tự động cài đặt YAY nếu chưa có

🔤 Quản lý Font Chữ - MỚI!

  • Nerd Fonts: FiraCode, JetBrainsMono, Hack, Meslo (cho terminal/code editor)
  • System Fonts: Noto, DejaVu, Liberation, Ubuntu, Roboto
  • Emoji Fonts: Noto Emoji, JoyPixels, Twemoji
  • CJK Fonts: Hỗ trợ tiếng Trung, Nhật, Hàn
  • MS Fonts: Arial, Times New Roman, Verdana (từ AUR)
  • Liệt kê, tìm kiếm, xóa font
  • Cập nhật cache font tự động
  • Test hiển thị font và icons

📖 Xem chi tiết: FONT_MANAGER_GUIDE.md
🚀 Quick Start: FONT_QUICKSTART.md

🛠️ Môi trường phát triển (Development Tools)

  • Web Development: PHP Stack, Laravel, Node.js (npm, yarn, pnpm)
  • Databases: PostgreSQL, MySQL/MariaDB, MongoDB, Redis
  • Programming Languages: Java (JDK), Python (pip, poetry), Go, Rust
  • DevOps Tools: Docker & Docker Compose, Git & GitHub CLI
  • Cài đặt nhanh, tự động cấu hình, kiểm tra version

📖 Xem chi tiết: DEV_TOOLS_GUIDE.md

📦 Yêu cầu

Bắt buộc

  • Arch Linux hoặc distro dựa trên Arch (Manjaro, EndeavourOS, v.v.)
  • zsh - Z shell

Tùy chọn (khuyến nghị)

  • yay hoặc paru - AUR helper (script có thể tự cài yay)
  • flatpak - Nếu muốn quản lý ứng dụng Flatpak
  • reflector - Cho tính năng cập nhật mirror
  • downgrade - Cho tính năng hạ cấp gói
  • pacman-contrib - Cho lệnh paccache

🚀 Cài đặt

Phương pháp 1: Tự động (Khuyến nghị)

# Clone repository
git clone https://github.com/mttk2004/arch-zsh-manager.git
cd arch-zsh-manager

# Chạy script cài đặt (sẽ tự động cài dependencies và setup)
chmod +x scripts/install.sh
./scripts/install.sh

Script cài đặt sẽ:

  • ✅ Kiểm tra hệ thống Arch
  • ✅ Cài đặt zsh nếu chưa có
  • ✅ Cài đặt các gói cần thiết (pacman-contrib, git, base-devel, reflector)
  • ✅ Hỏi cài đặt YAY (AUR helper) nếu muốn
  • ✅ Cài đặt bin/pkgman vào hệ thống

Phương pháp 2: Thủ công

# Clone repository
git clone https://github.com/mttk2004/arch-zsh-manager.git
cd arch-zsh-manager

# Cấp quyền thực thi
chmod +x bin/pkgman

# Chạy trực tiếp
./bin/pkgman

# HOẶC cài vào hệ thống
sudo cp -r bin /usr/local/
sudo cp -r lib /usr/local/share/pkgman/

# HOẶC thêm alias vào ~/.zshrc
echo "alias pkgman='$PWD/bin/pkgman'" >> ~/.zshrc
source ~/.zshrc

Cài đặt dependencies (thủ công)

sudo pacman -S pacman-contrib reflector base-devel git

📖 Hướng dẫn sử dụng

Chạy script

# Nếu đã cài vào hệ thống hoặc tạo alias
pkgman

# Hoặc chạy trực tiếp
./bin/pkgman

Lưu ý: Không cần chạy với sudo. Script sẽ tự yêu cầu quyền root khi cần thiết.

Menu chính

╔═══════════════════════════════════════════════════════════════╗
║          ARCH PACKAGE MANAGER - Quản lý gói tập trung         ║
╚═══════════════════════════════════════════════════════════════╝

═══ HỆ THỐNG GÓI ═══
1.  Cài đặt gói
2.  Xóa gói
3.  Cập nhật hệ thống
4.  Tìm kiếm gói
5.  Xem thông tin gói

═══ BẢO TRÌ HỆ THỐNG ═══
6.  Dọn dẹp cache
7.  Xóa gói orphan (không cần thiết)
8.  Xem danh sách gói đã cài
9.  Kiểm tra gói bị hỏng

═══ NÂNG CAO ═══
10. Downgrade gói
11. Xem log gói
12. Mirror management

═══ FONT CHỮ ═══
13. Quản lý font chữ

═══ PHÁT TRIỂN ═══
14. Môi trường phát triển

0.  Thoát

Ví dụ sử dụng

Cài đặt gói

  1. Chọn 1 - Cài đặt gói
  2. Chọn nguồn: pacman (1), AUR (2), hoặc Flatpak (3)
  3. Nhập tên gói
  4. Xác nhận cài đặt

Quản lý Font

  1. Chọn 13 - Quản lý font chữ
  2. Chọn loại font cần cài:
    • Nerd Fonts (FiraCode, JetBrainsMono, Hack...)
    • System Fonts (Noto, DejaVu, Liberation...)
    • Emoji Fonts
    • CJK Fonts (Chinese, Japanese, Korean)
    • MS Fonts (cần AUR helper)
  3. Liệt kê, tìm kiếm hoặc xóa font đã cài
  4. Test hiển thị để kiểm tra font

Dọn dẹp hệ thống

  1. Chọn 6 - Dọn dẹp cache
  2. Chọn mức độ dọn dẹp:
    • Giữ 3 phiên bản gần nhất
    • Xóa toàn bộ cache
    • Xóa cache AUR

Cập nhật hệ thống

  1. Chọn 3 - Cập nhật hệ thống
  2. Chọn nguồn cập nhật:
    • Chỉ pacman
    • Pacman + AUR
    • Flatpak
    • Tất cả

🏗️ Kiến trúc module

Core Modules

  • colors.zsh - Định nghĩa màu sắc, icons, text styles
  • ui.zsh - UI components (boxes, badges, menus, prompts)
  • detect.zsh - Phát hiện hệ thống, packages, services
  • utils.zsh - Hàm tiện ích (validation, string, file, logging)

Feature Modules

Các module chức năng được tổ chức theo category:

  • lib/package/ - Quản lý gói
  • lib/system/ - Bảo trì hệ thống
  • lib/advanced/ - Tính năng nâng cao
  • lib/font/ - Quản lý font
  • lib/devtools/ - Công cụ phát triển

Xem chi tiết: docs/PROJECT_STRUCTURE.md

🎨 Tính năng nổi bật

🔄 Tự động phát hiện AUR Helper

Script tự động phát hiện và sử dụng yay hoặc paru nếu có cài đặt.

🔤 Quản lý Font tích hợp

  • Cài đặt font từ kho chính thức và AUR
  • Hỗ trợ đầy đủ Nerd Fonts cho developer
  • Tự động cập nhật cache sau khi cài/xóa
  • Test hiển thị trực quan với icons, emoji, ligatures

🎯 Giao diện menu trực quan

  • Sử dụng màu sắc để dễ phân biệt
  • Menu phân cấp rõ ràng
  • Xác nhận trước khi thực hiện thao tác nguy hiểm

🛡️ An toàn

  • Xác nhận trước khi xóa cache toàn bộ
  • Hiển thị danh sách gói orphan trước khi xóa
  • Sao lưu mirrorlist trước khi cập nhật

📱 Đa nguồn

Quản lý gói từ pacman, AUR, và Flatpak trong một giao diện thống nhất.

🔧 Cấu hình nâng cao

Thay đổi số phiên bản cache giữ lại

Mở file pkgman.zsh và tìm dòng:

sudo paccache -r

Thay đổi thành (ví dụ giữ 5 phiên bản):

sudo paccache -rk5

Tùy chỉnh cấu hình reflector

Trong hàm mirror_management(), tìm dòng:

sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

Tùy chỉnh theo nhu cầu:

  • --latest 20: Số mirror mới nhất
  • --protocol https: Giao thức (https, http, rsync)
  • --sort rate: Sắp xếp theo (rate, age, delay)
  • --country 'Vietnam,Singapore': Lọc theo quốc gia

🐛 Xử lý sự cố

Script không chạy được

# Kiểm tra zsh đã cài chưa
which zsh

# Cài đặt zsh nếu chưa có
sudo pacman -S zsh

# Kiểm tra quyền thực thi
ls -l bin/pkgman

# Cấp quyền nếu cần
chmod +x bin/pkgman

Không tìm thấy AUR helper

Script có tùy chọn cài đặt YAY tự động (chọn 13 trong menu chính).

Hoặc cài thủ công:

cd /tmp
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Lệnh paccache không hoạt động

sudo pacman -S pacman-contrib

📝 Lưu ý

  • Cần quyền sudo: Hầu hết các thao tác cần quyền root
  • AUR: Luôn kiểm tra PKGBUILD trước khi cài gói từ AUR
  • Cache: Nên dọn dẹp cache định kỳ để tiết kiệm dung lượng
  • Mirror: Cập nhật mirror định kỳ để tăng tốc độ tải xuống

🤝 Đóng góp

Mọi đóng góp đều được chào đón! Hãy tạo issue hoặc pull request.

Cách đóng góp

  1. Fork repository
  2. Tạo branch mới (git checkout -b feature/AmazingFeature)
  3. Tạo module mới trong lib/ (xem lib/README.md)
  4. Test kỹ lưỡng
  5. Commit thay đổi (git commit -m 'feat: add some amazing feature')
  6. Push lên branch (git push origin feature/AmazingFeature)
  7. Tạo Pull Request

Tạo module mới

Xem hướng dẫn chi tiết trong:

  • lib/README.md - Module structure
  • docs/REFACTORING_PLAN.md - Development plan
  • docs/PROJECT_STRUCTURE.md - Project organization

📄 License

MIT License - Xem file LICENSE để biết thêm chi tiết

👨‍💻 Tác giả

Được phát triển với ❤️ cho cộng đồng Arch Linux

🙏 Lời cảm ơn

  • Arch Linux team
  • Cộng đồng AUR
  • Các nhà phát triển yay, paru, reflector

📞 Liên hệ & Hỗ trợ

  • Issues: Báo lỗi hoặc đề xuất tính năng tại [GitHub Issues]
  • Wiki: Tài liệu chi tiết tại Arch Wiki

⚡ Demo nhanh

Sau khi cài đặt, chỉ cần gõ:

pkgman

Bạn sẽ thấy menu đầy màu sắc:

  • 🟢 Số xanh - Các lựa chọn chính
  • 🟡 Tiêu đề vàng - Phân loại chức năng
  • 🔴 Số đỏ - Thoát chương trình
  • 🔵 Text xanh dương - Nhập liệu

Tất cả thao tác chỉ cần nhập số, không cần gõ lệnh dài!


🔄 Migration Notes

Dự án đã được refactor sang kiến trúc modular. Xem chi tiết:

  • docs/REFACTORING_SUMMARY.md - Tổng kết refactoring
  • docs/REFACTORING_PLAN.md - Kế hoạch chi tiết
  • MIGRATION_NOTES.md - Hướng dẫn migration

Old: ./pkgman.zsh (deprecated)
New: ./bin/pkgman


⚠️ Lưu ý quan trọng

  • ✅ Script này là công cụ hỗ trợ, giúp bạn quản lý gói dễ dàng hơn
  • ✅ Luôn đọc output trước khi xác nhận các thao tác quan trọng
  • ✅ Với gói AUR, nên kiểm tra PKGBUILD trước khi cài
  • ✅ Khuyến khích tìm hiểu pacman/yay để hiểu rõ hơn về hệ thống

Enjoy your Arch experience! 🚀 BTW, I use Arch!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors