diff --git a/README.md b/README.md index 09d7b99..804fe90 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,22 @@ -# archpkg-helper +# archpkg-helper 🧰 +*A universal package helper for Linux distributions* -A cross-distro command-line utility that helps you search for packages and generate install commands for native package managers (pacman, AUR, apt, dnf, flatpak, snap). It aims to make discovering and installing software on Linux simpler, regardless of your distribution. +--- -## Table of Contents +**archpkg-helper** is a cross-distro command-line utility that helps you **search for packages** and **generate install/remove commands** for native Linux package managers such as: + +- `pacman` (Arch) +- `AUR` +- `apt` (Debian/Ubuntu) +- `dnf` (Fedora) +- `flatpak` +- `snap` + +It aims to simplify software discovery and installation, regardless of which Linux distribution you use. + +--- + +## πŸ“š Table of Contents - [About](#about) - [Features](#features) @@ -14,130 +28,149 @@ A cross-distro command-line utility that helps you search for packages and gener - [Contributing](#contributing) - [License](#license) -## About +--- + +## πŸ” About + +**archpkg-helper** is designed to work across Linux distributions. While originally inspired by Arch Linux, it automatically detects your system and generates the appropriate commands for the package manager available. + +It’s suitable for: + +- πŸ§‘β€πŸ’» Newcomers who aren’t familiar with Linux package managers +- πŸ’‘ Developers who work across multiple distros +- 🧠 Experienced users looking for a more unified workflow -archpkg-helper is designed to work across Linux distributions. While originally inspired by Arch Linux, it detects your system and generates appropriate install commands for common package managers. It’s suitable for both newcomers and experienced users who want a simpler way to search and install packages. +--- -## Features +## ✨ Features -- Search for packages and generate install commands for: - - pacman (Arch), AUR, apt (Debian/Ubuntu), dnf (Fedora), flatpak, snap -- Cross-distro support (not limited to Arch) -- Clear, readable output and errors -- One-command setup via `install.sh` +βœ… Search for packages and generate install commands for: -## Quick Start (install.sh) +- `pacman` (Arch) +- `AUR` (via AUR helpers) +- `apt` (Debian/Ubuntu) +- `dnf` (Fedora) +- `flatpak` +- `snap` -Install directly using the provided installer script. +βœ… Cross-distro support (not limited to Arch) +βœ… Clear, readable output and helpful error messages +βœ… One-command setup via `install.sh` -From a cloned repository: -```sh +--- + +## ⚑ Quick Start (install.sh) + +Install `archpkg-helper` using the one-line installer script: + +### From a cloned repository + +```bash git clone https://github.com/AdmGenSameer/archpkg-helper.git cd archpkg-helper bash install.sh -``` - -Or run directly from the web: -```sh +Or run directly from the web +bash +Copy code curl -fsSL https://raw.githubusercontent.com/AdmGenSameer/archpkg-helper/main/install.sh | bash # or wget -qO- https://raw.githubusercontent.com/AdmGenSameer/archpkg-helper/main/install.sh | bash -``` - Notes: -- The installer ensures Python, pip, and pipx are available and installs the CLI via pipx. -- You may be prompted for sudo to install prerequisites on your distro. - -## Installation (Recommended: pipx) - -On Arch and many other distros, system Python may be β€œexternally managed” (PEP 668), which prevents global pip installs. pipx installs Python CLIs into isolated environments and puts their executables on your PATHβ€”this is the easiest, safest method. - -1) Install pipx -- Arch Linux: - ```sh - sudo pacman -S pipx - pipx ensurepath - ``` -- Debian/Ubuntu: - ```sh - sudo apt update - sudo apt install pipx - pipx ensurepath - ``` -- Fedora: - ```sh - sudo dnf install pipx - pipx ensurepath - ``` - -2) Install archpkg-helper with pipx -- Directly from GitHub: - ```sh - pipx install git+https://github.com/AdmGenSameer/archpkg-helper.git - ``` -- From a local clone: - ```sh - git clone https://github.com/AdmGenSameer/archpkg-helper.git - cd archpkg-helper - pipx install . - ``` - -Upgrade later with: -```sh -pipx upgrade archpkg-helper -``` -Ensure your shell session has pipx’s bin path in PATH (pipx prints instructions after `pipx ensurepath`, typically `~/.local/bin`). - -## Alternative Installation (pip) - -If you prefer pip, install in user scope to avoid system conflicts: +The installer ensures that Python, pip, and pipx are available. + +You may be prompted for sudo to install missing dependencies. + +πŸ“¦ Installation (Recommended: pipx) +Modern Linux distros often protect system Python (via PEP 668), which makes pipx the preferred method for installing CLI tools. + +πŸ› οΈ Step 1: Install pipx +
πŸ“¦ Arch Linux +bash +Copy code +sudo pacman -S pipx +pipx ensurepath +
πŸ“¦ Debian / Ubuntu +bash +Copy code +sudo apt update +sudo apt install pipx +pipx ensurepath +
πŸ“¦ Fedora +bash +Copy code +sudo dnf install pipx +pipx ensurepath +
+🧰 Step 2: Install archpkg-helper +From GitHub: + +bash +Copy code +pipx install git+https://github.com/AdmGenSameer/archpkg-helper.git +From a local clone: + +bash +Copy code +git clone https://github.com/AdmGenSameer/archpkg-helper.git +cd archpkg-helper +pipx install . +πŸ”„ To upgrade later: +bash +Copy code +pipx upgrade archpkg-helper +πŸ“Œ After running pipx ensurepath, ensure your shell has ~/.local/bin in your PATH. -- From a local clone: - ```sh - git clone https://github.com/AdmGenSameer/archpkg-helper.git - cd archpkg-helper - python3 -m pip install --user . - ``` -- Directly from GitHub: - ```sh - python3 -m pip install --user git+https://github.com/AdmGenSameer/archpkg-helper.git - ``` +🐍 Alternative Installation (pip) +Use this only if pipx is not available. Install the tool in user scope to avoid system conflicts: -If your distro enforces PEP 668 protections for global installs, you may see errors. You can bypass with: -```sh +From a local clone: +bash +Copy code +git clone https://github.com/AdmGenSameer/archpkg-helper.git +cd archpkg-helper +python3 -m pip install --user . +Or directly from GitHub: +bash +Copy code +python3 -m pip install --user git+https://github.com/AdmGenSameer/archpkg-helper.git +⚠️ If your system enforces PEP 668 protections, you might see errors. To override: + +bash +Copy code python3 -m pip install --break-system-packages . -``` -However, using pipx is strongly recommended instead of breaking system protections. - -## Usage - -After installation, the CLI is available as `archpkg`. - -Examples: -```sh -# Search for a package across supported sources +However, using pipx is strongly recommended instead of bypassing system protections. + +πŸš€ Usage +After installation, the CLI will be available as: + +bash +Copy code +archpkg +Common examples: +bash +Copy code +# πŸ” Search for a package archpkg search -# Generate install command(s) for a package +# πŸ“¦ Get install command(s) archpkg install -# Generate removal command(s) for a package +# ❌ Get uninstall command(s) archpkg remove -``` +You can also run: -Additional: -```sh +bash +Copy code archpkg --help archpkg --version -``` - -Replace `` with the package you want to manage. +Replace with the software you want (e.g. vlc, neofetch, etc.). -## File Structure +πŸ“ File Structure +Project layout overview: -Top-level layout of this repository: -``` +bash +Copy code archpkg-helper/ β”œβ”€β”€ archpkg/ # Core Python package code (CLI and logic) β”œβ”€β”€ install.sh # One-command installer script (uses pipx) @@ -149,21 +182,30 @@ archpkg-helper/ β”œβ”€β”€ __pycache__/ # Python bytecode cache (auto-generated) β”œβ”€β”€ archpkg_helper.egg-info/ # Packaging metadata (auto-generated) └── archpy.egg-info/ # Packaging metadata (auto-generated) -``` +πŸ“ Some build folders appear only after running packaging/install commands. + +🀝 Contributing +We welcome contributions from everyone! To contribute: + +Fork the repository + +Create a branch -Some metadata/build directories are generated during packaging and may not be present in fresh clones. +bash +Copy code +git checkout -b feature/my-feature +Make your changes -## Contributing +Commit with a clear message -Contributions are welcome! Please: -1. Fork the repository -2. Create a feature branch: `git checkout -b feature-branch` -3. Make your changes and commit: `git commit -m "Describe your changes"` -4. Push to your fork: `git push origin feature-branch` -5. Open a Pull Request +bash +Copy code +git commit -m "Add: my new feature" +Push to your fork -Report bugs or request features via the [issue tracker](https://github.com/AdmGenSameer/archpkg-helper/issues). +Open a Pull Request -## License +You can also open issues for bugs or feature suggestions. -This project is licensed under the [Apache License 2.0](./LICENSE). +πŸ“„ License +This project is licensed under the Apache License 2.0. \ No newline at end of file