aboutsummaryrefslogtreecommitdiffhomepage
path: root/notes/package_manager.txt
blob: e34fe6ec43bab0aa5e03ce60f7a291341513eeaa (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
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

Package manager
===============
How the command line interface might look like:


<no options>
    Builds, and prints error messages if any module interface packages
    are missing. The URLs and distribution package names are printed.
    Note that there can never be any transitive build dependencies with
    SLUL (but runtime dependencies can be transitive).
--dep-install=dist,bundled,hashed,download,unsigned
    Install any necessary dependencies for building or running.
    The parameter controls the order of preference for installation.
    * dist     = from distribution (e.g. Debian)
    * bundled  = bundled inside source tree
    * hashed   = downloads that have a secure hash, and are locked to a tested version.
                 this includes bundled also, with higher priority.
    * download = downloads that are signed (or hashed).
                 this includes hashed,bundled also, with lower priority.
    * unsigned = any downloads. includes bundled,hashed,download.
    Will print errors for packages that are not available or are too old
    (this is only applicable for the dist option).
    
    The destination for installation is affected by --env, --user and --system,
    but distribution packages will typically be installed system-wide anyway.
    For that reason, if run without root access, it will typically not be
    able to install distribution packages.
    
    If implicitly included options are also specified in the parameter,
    then the preference order from the parameter takes precedence.
--builddep-install=dist,bundled,hashed,download,unsigned
    Install build dependencies only. Note that distribution packages
    may have dependencies on other packages, so --builddep-install=dist is
    generally equivalent to --dep-install=dist
--install-this
    Installs this module. It must have been built first.
--auto
    Automatically downloads and installs signed and hashed dependencies (if
    not already available), builds the module and install it. Implies --user,
    unless --system or --env is specified.
    
    In --system mode, it prefers distribution packages, when they exist
    and satisfy the minimum version.

    If there are unmet runtime dependencies, it will prompt for confirmation.
--download[=dist,hashed,download,unsigned]
    Downloads all unavailable dependencies, recursively. The default is to
    download signed and hashed dependencies only.
--env=PATH
    Sets the environment path. This is used as the installation target path,
    but is also used for searching for existing modules, in addition to the
    default paths.
    
    Linux distributors will usually want to set this to /usr
--env-only
    Do not search for modules outside of the environment path.
--user
    Sets the environment to ~/.local (i.e. install for the current user)
--system
    Sets the environment to /usr/local (i.e. install for all users).
    This is the default.
--target-destdir=PATH
    Installs the targets into the given path. They probably have to be copied
    into the correct location before they will work.  Implies --system,
    unless --user or --env is specified
--prompts=[yes|no|stop]
    What to do if a there is a prompt.
--query-trust[=SERVER-API-URL|local]
    Shows which keys have signed the package and the dependencies
    (or previous versions).

    Shows which keys the public keys has been signed with
    (both dependencies and the package itself).

    Specify "local" as the SERVER-API-URL to only query locally.


Uncommon options:

--dist=X,Y
    Sets the distributions (e.g. debian) in order of preference.
    Specify --dist= to disable all distributions.
    Specify --dist=list to list supported distributions.
--static
    Builds static executables/libraries. When building a static executable,
    then static builds of dependencies and recursive dependencies are needed,
    so this could be quite slow.


Uncommon options, that might not be needed:
(The user can download dependencies manually)

--broken-tls=expired,cert,cipher,version
    Ignore TLS errors for signed and hashed downloads.
    * expired = ignore expired certificate errors
    * cert    = ignore all certificate errors
    * cipher  = allow insecure ciphers
    * version = allow old TLS versions
--dangerous-tls=expired,cert,cipher,version
    Ignore certificate errors for all downloads.
    Requires --INSECURE to unlock.
--no-signature-check
    Do not check signatures. Requires --INSECURE to unlock.
--no-hash-check
    Do not check hashes. Requires --INSECURE to unlock.
--INSECURE
    Unlocks totally insecure options.
--proxy[=URL]
    Use a proxy:
    * socks4://HOSTNAME:PORT
    * socks5://HOSTNAME:PORT
    * http://HOSTNAME:PORT
    * https://HOSTNAME:PORT

In the early versions of the "slul" implementated in SLUL,  it will
probably not support compilation, and instead call "cslul" for that.