Skip to the content.

🌍 Web Page | πŸ’» Source Code | πŸš€ Releases

πŸ“¦ ipm - Integrated Package Manager

A cross-platform tool that unifies CLI for various package managers, simplifies installation, updates, and removal of packages by standardizing commands.

project banner

πŸ“š Table of Contents

☝️

πŸ“Œ About

ipm - Integrated Package Manager is a powerful, cross-platform tool designed to unify the command-line interface (CLI) commands for various package managers. It acts as a universal frontend, working on top of other package managers to provide a seamless and consistent experience for managing software packages across different operating systems.

In today’s diverse development environments, developers, software engineers, and system engineers often face the challenge of dealing with multiple package managers, each with its own set of commands and interfaces. This can lead to inefficiencies, errors, and a steep learning curve, especially when switching between different platforms.

ipm aims to solve these issues by offering a single, unified CLI that abstracts away the complexities of individual package managers. Whether you’re working on Windows, Linux, or macOS, ipm provides a consistent and intuitive interface for installing, updating, and removing software packages. By standardizing package management commands, ipm simplifies the workflow, reduces the potential for errors, and enhances productivity.

$ ipm
Usage:
  ipm [command]

Available Commands:
  manager     Manage package manager configurations
  info        Execute info command for apt
  install     Execute install command for apt
  list        Execute list command for apt
  search      Execute search command for apt
  uninstall   Execute uninstall command for apt
  update      Execute update command for apt
  upgrade     Execute upgrade command for apt
  upgrade-all Execute upgrade-all command for apt
  apk         Run apk commands
  apt         Run apt commands
  brew        Run brew commands
  choco       Run choco commands
  dnf         Run dnf commands
  emerge      Run emerge commands
  eopkg       Run eopkg commands
  npm         Run npm commands
  pip         Run pip commands
  pip3        Run pip3 commands
  winget      Run winget commands
  yum         Run yum commands
  zypper      Run zypper commands

Flags:
  -h, --help   help for ipm

Use "ipm [command] --help" for more information about a command.

☝️

✨ Key Features

☝️

πŸ“¦ Supported Package Managers

Package Manager Enabled (default) Disabled (default)
apk βœ… ❌
apt βœ… ❌
brew βœ… ❌
cards ❌ βœ…
choco βœ… ❌
dnf βœ… ❌
emerge βœ… ❌
eopkg βœ… ❌
flatpak ❌ βœ…
guix ❌ βœ…
nala ❌ βœ…
nix-env ❌ βœ…
npm βœ… ❌
opkg ❌ βœ…
pacman ❌ βœ…
pip βœ… ❌
pip3 βœ… ❌
scoop ❌ βœ…
slackpkg ❌ βœ…
snap ❌ βœ…
winget βœ… ❌
xbps ❌ βœ…
yum βœ… ❌
zypper βœ… ❌

☝️

πŸ› οΈ Installation

πŸ“¦ Pre-built Binaries

Pre-built binaries for various platforms are available in the releases section. Download the appropriate binary for your platform and add it to your system’s PATH.

⬇️ Download the Binary

Navigate to the releases page and download the binary for your operating system.

πŸš‚ Move the Binary to a Directory

Move the downloaded binary to a directory of your choice.

🫡 Add the Binary to PATH

Add the directory containing the binary to your system’s PATH. This allows you to run ipm from any terminal session.

🐧 Linux
# Add the directory to your PATH
echo 'export PATH=$PATH:/path/to/ipm' >> ~/.bashrc
source ~/.bashrc
🍏 macOS
# Add the directory to your PATH
echo 'export PATH=$PATH:/path/to/ipm' >> ~/.bashrc
source ~/.bashrc
πŸͺŸ Windows
# Add the directory to your PATH
[System.Environment]::SetEnvironmentVariable(
  "Path",
  $env:Path + ";path\to\ipm",
  [System.EnvironmentVariableTarget]::Machine
)

πŸ—οΈ Building from Source

To build ipm from source, you need to have Go installed on your system.

πŸŒ€ Clone the Repository

git clone https://github.com/your-repo/ipm.git
cd ipm

πŸ”¨ Make Build

To build ipm, you can use the provided build scripts.

🐧 Linux (Shell Script)
🍏 macOS (Shell Script)
πŸͺŸ Windows (PowerShell Script)

These scripts will build the binaries for the multiple platforms and create archives (ZIP for Windows and TAR.GZ for other platforms) in the dist/release directory.

🐳 Dockerfiles

Dockerfiles are provided to build Docker images for ipm. These Dockerfiles are located in the dockerfiles directory.

πŸ—οΈ Building Docker Images

To build a Docker image for ipm, run the following command from project root:

docker build -t ipm-<package-manager-name>:latest -f dockerfiles/<package-manager-name>/Dockerfile .

πŸš€ Running Docker Container

To run ipm Docker container:

docker run --rm -it ipm-<package-manager-name>:latest /bin/sh

☝️

πŸ“‹ Usage

πŸ” Default Package Manager (auto-detected)

πŸ“ Basic Commands

πŸ“ƒ List Installed Packages
ipm list
πŸ”Ž Search for a Package
ipm search <package-name>
πŸ“– Check Information about a Package
ipm info <package-name>
πŸ“₯ Install a Package
ipm install <package-name>
πŸ”„ Update Index of the Package Manager
ipm update
⬆️ Upgrade a Package
ipm upgrade <package-name>
⬆️ Upgrade all Packages
ipm upgrade-all
πŸ—‘οΈ Remove a package
ipm uninstall <package-name>

πŸ’‘ Example

To install the jq package:

ipm install jq

πŸ› οΈ Custom Package Manager

πŸ“ Basic Commands

πŸ“ƒ List Installed Packages
ipm <package-manager> list
πŸ”Ž Search for a Package
ipm <package-manager> search <package-name>
πŸ“– Check Information about a Package
ipm <package-manager> info <package-name>
πŸ“₯ Install a Package
ipm <package-manager> install <package-name>
πŸ”„ Update Index of the Package Manager
ipm <package-manager> update
⬆️ Upgrade a Package
ipm <package-manager> upgrade <package-name>
⬆️ Upgrade all Packages
ipm <package-manager> upgrade-all
πŸ—‘οΈ Remove a package
ipm <package-manager> uninstall <package-name>

πŸ’‘ Example

To install the fast-json-stringify package using npm:

ipm npm install fast-json-stringify

☝️

βš™οΈ Configuration

ipm uses a JSON configuration file to define custom commands and settings for different package managers. The configuration file is located in the config directory.

πŸͺž Example Configuration

{
  "enabled": true,
  "commands": {
    "info": "apt-cache show ",
    "install": "apt-get install -y ",
    "list": "dpkg --list",
    "search": "apt-cache search ",
    "uninstall": "apt-get remove -y ",
    "update": "apt-get update",
    "upgrade": "apt-get install --only-upgrade ",
    "upgrade-all": "apt-get upgrade"
  }
}

☝️

πŸ“„ Important Documents

☝️

πŸ™ Acknowledgements

I would like to extend my heartfelt thanks to all the developers and contributors whose work has made this project possible. Your dedication and contributions to the open-source community are invaluable, and I am grateful for the tools, libraries, and frameworks that you have created and maintained.

🌟 Special Thanks

I would like to specifically acknowledge the developers of the following tools, frameworks and dependencies which are used in this project:

Your hard work and commitment to excellence have made it possible for me to build ipm and provide a unified package management experience for developers across different platforms. Thank you for your contributions to the open-source ecosystem.

☝️

πŸ“œ License

This project is licensed under the MIT License, allowing anyone to use, modify, and distribute it freely for personal or commercial purposes.

☝️