An open API service indexing awesome lists of open source software.

https://github.com/mincrmatt12/irk

A package manager for package managers
https://github.com/mincrmatt12/irk

linux package-management python3

Last synced: 3 months ago
JSON representation

A package manager for package managers

Awesome Lists containing this project

README

        

# irk

---
> A package manager for package managers
---

`irk` is a tool which installs packages. It accomplishes this primarily by using other package managers, although it ~does~ will
include its own packaging systems.

## Usage

Using irk is as simple as installing it and running `sudo irk update` to get started. The `/etc/irk/sources.list.d` directory
will be created.

To use irk, you must create files in this directory corresponding to different sources for packages. These files simply contain lists of urls, as
well as comments starting with `#`.

These URLs point to files called "source descriptors", explained below.

## Source Descriptors

Source descriptors consist of three parts, the type, config and data. They are layed out like this:

```

CONFIGLINE

```

The meanings of these sections depends on the ``, explained below (section title = ``).

### `APT`
The `` section for an `APT` entry contains two lines like this:
```

```

The `` is a name given to this source.
The `` is the path to `apt-get` on the system.

The `` section is empty.

### `PIP`
The `` section for an `PIP` entry contains one line. This line is simply the name of the source. As with the `APT` source
type the `data` section is empty.

### `CREGX`
The `CREGX` type (stands for "custom with regular expressions) allows you to define a custom script to interface with another package management
system.

The `` section looks like this:

```

```

The `` refers to a regular expression that defines what packages this script _may_ match. The script can reject packages afterwards if it wants.
The `` section contains the entire script. It should return 0 if the install was successful, return 101 if the package does not exist or any other code for failure.

An example can be seen in `sources/rosk.source`, useful if you have a ros kinetic source installation at "~/ros_kinetic" and want to install packages to it.