-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
123 lines (103 loc) · 5.3 KB
/
README
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
_ _
_ __ __ _ ___| | _____(_)____
| '_ \ / _` |/ __| |/ / __| |_ /
| |_) | (_| | (__| <\__ \ |/ /
| .__/ \__,_|\___|_|\_\___/_/___|
|_|
Overview
========
packsiz is a tiny, lightweight, hackable and permissively-licensed package
manager for Linux (https://www.kernel.org/) distributions.
packsiz is a re-implementation of packlim (https://github.com/dimkr/packlim) in
szl (https://github.com/dimkr/szl) rather than Tcl
(https://github.com/msteveb/jimtcl/).
Features
========
Recursive dependencies resolution
# packsiz install mutt ||
[12/02 20:21:07]<info>: verifying the package list \/
[12/02 20:21:07]<info>: building the package installation queue
[12/02 20:21:07]<warn>: iana-etc is already installed (!)
[12/02 20:21:07]<warn>: linux-libre-headers is already installed (!)
[12/02 20:21:07]<warn>: musl is already installed (!)
[12/02 20:21:07]<warn>: ncurses is already installed (!)
[12/02 20:21:07]<warn>: zlib is already installed (!)
[12/02 20:21:07]<warn>: ca-certificates is already installed (!)
[12/02 20:21:07]<warn>: libressl is already installed (!)
[12/02 20:21:07]<info>: downloading fetchmail, msmtp and mutt
[12/02 20:21:07]<debug>: (reading fetchmail-6.3.26.pkg) /\
[12/02 20:21:07]<info>: verifying fetchmail-6.3.26.pkg ||
[12/02 20:21:07]<info>: registering fetchmail ||
[12/02 20:21:07]<info>: extracting fetchmail-6.3.26.pkg ||
[12/02 20:21:07]<debug>: (reading msmtp-1.6.2.pkg) ||
[12/02 20:21:07]<info>: verifying msmtp-1.6.2.pkg Parallel download
[12/02 20:21:07]<info>: registering msmtp of all packages
[12/02 20:21:07]<info>: extracting msmtp-1.6.2.pkg in a dependency
[12/02 20:21:07]<debug>: (reading mutt-1.5.23.pkg) chain, before it
/> [12/02 20:21:07]<info>: verifying mutt-1.5.23.pkg gets installed
|| [12/02 20:21:07]<info>: registering mutt
|| [12/02 20:21:08]<info>: extracting mutt-1.5.23.pkg
|| /\
Digitally-signed packages ||
||
Support for multiple compression algorithms
Automatic removal
# packsiz autoremove mutt /==== of unneeded packages
[12/02 20:24:53]<info>: removing mutt \/
[12/02 20:24:53]<info>: looking for unneeded packages
[12/02 20:24:53]<debug>: (libpcap cannot be removed; needed by tcpdump)
[12/02 20:24:53]<info>: removing fetchmail
[12/02 20:24:53]<info>: removing msmtp
[12/02 20:24:53]<debug>: (zlib cannot be removed; needed by libressl)
[12/02 20:24:53]<debug>: (ncurses cannot be removed; needed by nano)
[12/02 20:24:53]<debug>: (linux-libre-headers cannot be removed; needed by musl)
[12/02 20:24:53]<debug>: (tinyalsa cannot be removed; needed by mpg123)
[12/02 20:24:53]<debug>: (libressl cannot be removed; needed by fetchmail)
[12/02 20:24:53]<debug>: (musl cannot be removed; needed by libpcap)
[12/02 20:24:53]<debug>: (ca-certificates cannot be removed; needed by libressl)
[12/02 20:24:53]<debug>: (iana-etc cannot be removed; needed by musl)
[12/02 20:24:53]<debug>: (looking for more unneeded packages)
[12/02 20:24:53]<debug>: (libpcap cannot be removed; needed by tcpdump)
[12/02 20:24:53]<debug>: (zlib cannot be removed; needed by libressl)
[12/02 20:24:53]<debug>: (ncurses cannot be removed; needed by nano)
[12/02 20:24:53]<debug>: (linux-libre-headers cannot be removed; needed by musl)
[12/02 20:24:53]<debug>: (tinyalsa cannot be removed; needed by mpg123)
[12/02 20:24:53]<debug>: (libressl cannot be removed; needed by tcpdump)
[12/02 20:24:53]<debug>: (musl cannot be removed; needed by libpcap)
[12/02 20:24:53]<debug>: (ca-certificates cannot be removed; needed by libressl)
[12/02 20:24:53]<debug>: (iana-etc cannot be removed; needed by musl)
In addition, packsiz:
- Supports installation of packages to a prefix other than /
- Has a scripting interface
Scripting Interface
===================
packsiz allows complex package management tasks through an interactive scripting
shell or scripts, using a szl API in the "packsiz" namespace.
For example:
1) To list the packages available in a repository:
$packsiz.available http://repository {}
2) To remove a package:
$packsiz.remove ca-certificates [$packsiz.installed]
3) To remove all unneeded dependency packages:
$packsiz.cleanup
packsiz uses all API internally as well; see its implementation for more usage
examples.
Missing Features
================
- Support for multiple repositories - packsiz is designed for small
distributions with one repository per architecture
- Support for multiple architectures in one repository
Building
========
# git clone --recursive https://github.com/dimkr/packsiz
# cd packsiz
# meson build
# cd build
# ninja
# ninja install
Credits and Legal Information
=============================
packsiz is free and unencumbered software released under the terms of the MIT
license; see COPYING for the license text. For a list of its authors and
contributors, see AUTHORS.
The ASCII art logo at the top was made using FIGlet (http://www.figlet.org/).