Skip to content
This repository has been archived by the owner on Feb 7, 2021. It is now read-only.
/ packages Public archive

Installation script for tools I use regularly

Notifications You must be signed in to change notification settings

nicholasdille/packages

Repository files navigation

packages

This project is discontinued in favor of homebrew and my own tap.

Installer for tools I use regularly on Linux

Why

I am many tools which are either not included in my favourite Linux distribution or which are not updated fast enough. These tools are also used in my talks and workshops where I need to install them in environments provided to participants.

For a few years, I have maintained a list of commands to download and install these tools. But I ended up with outdated versions and duplicate instructions.

So, I started working on an installer for these tools.

Yes, this project seems to be competing with other tools:

  • bin by marcosnils - I wanted to be able to cover projects which are not publishing precompiled binaries
  • homebrew - This felt too complex for my use case

Features

  • Install a tool with dependencies
  • Automatically track latest version

Non-Goals

  • Configure and start daemons
  • Track installed tools and versions

Prerequisites

Most functionality is available with bash, curl and jq

The subcommands list and search also require column for formatting the output

Several packages require Docker and/or Git to compile the binaries from source

Some packages require some logic to install which is based on envsubst, make, xz, bzip2 and unzip

Usage

Install the package manager:

curl --silent https://pkg.dille.io/pkgctl | bash -s bootstrap

Download or update the package definitions:

pkgctl update

List available packages:

pkgctl list

Search packages:

pkgctl search docker
pkgctl search --tags docker

Install a package:

pkgctl install kind

Install a specific version of a package:

pkgctl install kind@v0.9.0

Install a package that is already installed:

pkgctl install --force kind

Install multiple packages:

pkgctl install kind kubectl

Install multiple packages from a file:

$ cat packages.txt
kind
kubectl
$ pkgctl install --file packages.txt

Completion

pkgctl includes completion:

source scripts/completion.sh