aboutsummaryrefslogtreecommitdiffsponsor
path: root/README.md
blob: 8a047a615119b0d047aae4c1be925629c2694883 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Slackware Package Tools Alternative

An alternative set of Slackware's core package management tools.

Planned improvements and known issues are listed on the project's [issue tracker](https://todo.sr.ht/~slack-coder/pkgtools-go).  You can help improve this project through [funding](https://funding.server.ky/project/pkgtools-go).

## Benefits

 - Clear modifiable source code

    These programs are written in a simple and easy to understand programming
    language called Golang.  Slackware's official tools are written in a
    programming language (bash) which is harder to understand and customize.

 - Stable

    Ever mess up an update on Slackware?  This project will allow you to
    (somewhat) install or remove packages even on a broken system, making it
    easier to recover the system.

    Slackware's package tools like 'installpkg' contain dependencies on
    commands like 'tar' and 'tar's library dependencies.  These alternatives
    have no runtime dependencies, except when running a package's
    install/uninstall scripts, or ldconfig.

## Install

The recommended way to build these tools is to call this command from within
the directory.  The additional parameters are recommended to minimize external
dependencies.

You likely want to set the GOBIN environment variable to your preferred install
location.

```
  go install \
    -ldflags="-linkmode external -extldflags -static" \
    -a ./cmd/...
```

## Whats included?

The commands 'installpkg' and 'removepkg' are included.

These tools are planned to be included:

 - explodepkg
 - upgradepkg

These tools will likely not be included:

 - makepkg
 - pkgdiff
 - pkgtool