Skip to content
This repository has been archived by the owner on Mar 31, 2023. It is now read-only.

talwat/indiepkg

Repository files navigation

IndiePKG

Go Report Card Total alerts GitHub Action GitHub stars GitHub watchers GitHub forks GitHub license GitHub last commit GitHub contributors GitHub issues GitHub closed pull requests

A package manager written in Go for small CLI programs. It is available on GNU/Linux and macOS.

Notice

IndiePKG is now almost ready for use.

It would be extremely helpful if you could try using IndiePKG and file bug reports or make PR's.

Table of contents

What is IndiePKG?

IndiePKG is mainly for small simple CLI and TUI programs. Most of them are just for fun, such as cmatrix, while others have a bit more utility such as btop.

IndiePKG uses git to install packages, and everything is compiled from source. This means that while there aren't any versions, it does mean that you get the absolute latest software.

It's also much simpler than your standard package manager, and if a package installation goes wrong you don't have to worry about all your packages failing, because you can super easily remove it.

Pros

  • Easy to use with simple commands.
  • Explains what it's doing at every step.
  • Simple compared to other package managers, and easy to repair if something goes wrong.
  • Clones directly from the package's git repository, giving you the latest version with no manual intervention by a maintainer.
  • Easy to submit to, with no notability requirements.
  • Installs everything locally, not interfering with any system components and not requiring root privileges.

Cons

  • Doesn't install & manage dependencies.
  • Slower than other package managers due to needing to compile source code.

Installation

Dependencies

Install script

Dependencies for install script

To install using the install script, run:

bash <(curl -s https://raw.githubusercontent.com/talwat/indiepkg/testing/scripts/install.sh) # To use bash
zsh <(curl -s https://raw.githubusercontent.com/talwat/indiepkg/testing/scripts/install.sh) # Or if you only have zsh installed

Manual install

If the install script doesn't work for you, you can manually install the following:

git clone -b testing https://github.com/talwat/indiepkg.git
cd indiepkg
make
make install

Uninstallation

Currently, there is no uninstallation script, but you can super easily uninstall IndiePKG by running these commands.

rm -rf ~/.indiepkg
rm ~/.local/bin/indiepkg

Making & submitting packages

If you want to make a package, you should look at PACKAGES.md

Basic usage

You can run indiepkg install <packages> to install a package.

If you want to uninstall a package, you can run indiepkg uninstall <packages>.

indiepkg upgrade [packages] will pull the latest changes and recompile packages. If you don't specify any packages, it will upgrade all packages.

indiepkg update [packages] will update the information for your installed packages. This command doesn't need to be ran frequently at all, but it's best to run it every now and then.

Supported operating systems

IndiePKG officially works on GNU/Linux and macOS.

It will work on any other unix-like operating system but many packages won't compile properly. If you are interested in supporting a new operating system, please open an issue and we can discuss making a new third party repository.

IndiePKG is completely broken on Windows. IndiePKG is overall not meant to run on Windows.

List of operating systems

Darwin Linux Other
Darwin arm64 Linux amd64 BSDs
Darwin amd64 Linux arm64 Other unix-like
Linux other Windows
  • Full Support - All packages & binary packages in the official repo are guaranteed to work. This excludes linux-only
  • Great Support - All source packages and most binary packages are supposed to work.
  • Partial Support - Some packages will work, but not all.
  • Borked - IndiePKG itself will not function properly.

Branches

IndiePKG has 3 branches to install from, testing (recommended), stable, and main.

The testing branch is a good balance of new and stable, and is updated whenever all Github actions pass.

The stable branch is only updated whenever a release is made, and is not recommended for use yet because it will sometimes not work due to changes in the package files.

The main branch is the default git branch, and contains the newest code. This is not recommended for use because it has a higher chance of being broken.

Libraries used

A huge thank you to the following libraries:

  • go-toml - For parsing the configuration file.
  • progressbar - For making progressbar's during downloads.
  • tracerr - For displaying source error logs.

FAQ

So it's like the AUR?

Kind of. For one packages are checked, and there is also an official package manager unlike the AUR which is commonly paired with an AUR helper.

It also obviously works on other operating systems besides just Arch Linux.

Help! When I try to run IndiePKG, it returns 'command not found'

This is most likely due to you not having ~/.local/bin in your PATH.

To fix it, run:

~/.local/bin/indiepkg env-add

Which will add it to PATH.

Note

This will only work if you are using zsh, bash or ksh.

This is because it only appends to .zshrc, .bashrc, .kshrc, .profile, and .zprofile.

Why?

IndiePKG is meant for small developers to be able to add their packages easily, for people to discover small open source programs.

IndiePKG also compiles things from source so that you can use the latest code, without having to manually look at the instructions and copy the commands.