ipm
- Integrated Package Manager πipm
- Integrated Package Manager π
Integrated Package Manager (ipm
) 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.
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 | β | β |
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.
Navigate to the releases page and download the binary for your operating system.
Move the downloaded binary to a directory of your choice.
Add the directory containing the binary to your systemβs PATH. This allows you to run ipm
from any terminal session.
# Add the directory to your PATH
echo 'export PATH=$PATH:/path/to/ipm' >> ~/.bashrc
source ~/.bashrc
# Add the directory to your PATH
[System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";path\to\ipm", [System.EnvironmentVariableTarget]::Machine)
To build ipm
from source, you need to have Go installed on your system.
git clone https://github.com/your-repo/ipm.git
cd ipm
To build ipm
, you can use the provided build scripts.
./scripts/build/build.sh
.\scripts\build\build.ps1
.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 are provided to build Docker images for ipm
. These Dockerfiles are located in the dockerfiles
directory.
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 .
To run ipm
Docker container:
docker run --rm -it ipm-<package-manager-name>:latest /bin/sh
ipm list
ipm search <package-name>
ipm info <package-name>
ipm install <package-name>
ipm update
ipm upgrade <package-name>
ipm upgrade-all
ipm uninstall <package-name>
To install the jq
package:
ipm install jq
ipm <package-manager> list
ipm <package-manager> search <package-name>
ipm <package-manager> info <package-name>
ipm <package-manager> install <package-name>
ipm <package-manager> update
ipm <package-manager> upgrade <package-name>
ipm <package-manager> upgrade-all
ipm <package-manager> uninstall <package-name>
To install the fast-json-stringify
package using npm
:
ipm npm install fast-json-stringify
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.
{
"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"
}
}
Contributions are welcome! If you have suggestions for improvements, please open an issue or submit a pull request. For major changes, please open an issue first to discuss what you would like to change.
git checkout -b feature-branch
).git commit -am 'Add new feature'
).git push origin feature-branch
).This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
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.
I would like to specifically acknowledge the developers of the following tools, frameworks and dependencies which are used in this project:
ipm
integrates with, including apt
, yum
, brew
, choco
, npm
, pip
, and many others.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.
This project is licensed under the GPL-3.0 license. See the LICENSE file for details.