Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Home Package Manager
C++ Shell
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
LICENSE_BSD
LICENSE_GPL2
Makefile
README.rst
hpm
hpmwatch
hpmwatch.cpp

README.rst

HPM

Rationale

Sometimes you want to install a package by hand, you may want the git version or you may want to compile it with different flags than your distro. What you do in such cases is something like:

./configure --prefix=$HOME/.local
make
make install

But then later, you don't want the package anymore because your distro is more up to date or because the dependencies are now broken. If you have deleted the sources directory, you are screwed. If your package didn't implement (or badly implemented) some make uninstall command, then again you're screwed.

What is it?

HPM (for Home Package Manager) is a small tool I wrote to have a (very simple) package manager managing the packages you install by hand. It keeps track of all the files a package installed (in a specific prefix) and allow you to remove all of them in one command.

Installation

You can install HPM through HPM itself with:

make
./hpm install hpm "make install PREFIX=$HOME/.local"

And uninstall it later with:

hpm uninstall hpm

Usage

There are only two commands:

hpm install <packagename> <command>
hpm uninstall <packagename>

packagename is yours to decide and command is the install command to monitor for installed files.

Example

Let's say you want to install the last git version of LLVM in your home, you would do something like:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local -DCMAKE_BUILD_TYPE=Release
make
hpm install llvm 'make install'

And then later, if you want to delete it:

hpm uninstall llvm

And that's all!

Licensing

HPM is based on installwatch which is licensed under the GPL2 license provided in LICENSE_GPL2. The hpm shell script is licensed under the FreeBSD license provided in LICENSE_BSD.

Something went wrong with that request. Please try again.