aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 9c30fec1a1de155da1453810f1d5f2417d5679bf (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
BRANCH: experiment/lazyload
This branch was an experiment for lazy loading the package library. It generated
function autoloads from the cpt-* files on the lib/ directory and loaded the
libraries of the functions when they were called. I tested this out, because I
assumed that the result would be an increase of speed, but it turned out that
the answer was quite the contrary.

I have compared the speed by running `cpt l` 2000 times on my system which has
429 packages:

- Using the master branch (757d256), it takes 33 seconds.
- Using this branch, it takes 37 seconds.

Even though, this currently slows the operation, I would love to revisit this
branch someday if I come up with a better idea for lazyloading functions. At the
current stage, this branch doesn't improve speed at all.

  ____ ____ _____
 / ___|  _ \_   _|
| |   | |_) || |
| |___|  __/ | |
 \____|_|    |_|

Carbs Packaging Tools
--------------------------------------------------------------------------------

Package management toolset for Carbs Linux. Forked from [KISS]. All usage
information can be obtained from the manual page. For changes please refer to
the `CHANGELOG.md` file.

[KISS]: https://github.com/kisslinux/kiss


Dependencies
--------------------------------------------------------------------------------

To build and use cpt, you need the following software.

RUNTIME DEPENDS
- rsync
- curl
- POSIX base utilities [coreutils, busybox, sbase, etc.]
- tar [GNU tar, busybox, toybox, libarchive, etc.]

MAKE DEPENDS
- redo (optional, the repository contains tools/do)


Directory Structure
--------------------------------------------------------------------------------

    /         -- README, LICENSE, CHANGELOG
    contrib/  -- for Shell scripts that wrap around cpt.
    docs/     -- for documentation.
    man/      -- for manual pages.
    src/      -- for the tools that make up the package manager.


Defining Base
--------------------------------------------------------------------------------

Tools such as cpt-orphans and cpt-reset define the base from the file
'/etc/cpt-base'. An example cpt-base file can be found from the root directory
of the repository, which is the default base for Carbs Linux. A user can modify
this file to fit their needs and redefine their base for the system. For
example, a user can decide that they want 'sbase' instead of 'busybox' for their
base, so if they reset their system, busybox will be removed instead of sbase.

This file is used to ship a predefined base, while leaving the base to a user's
choice. However, it isn't installed by the Makefile so that the packagers may
define their own base, or so that a user can install cpt without using it as
their main package manager.