1bpkg(1) General Commands Manual bpkg(1)
2
3
4
6 bpkg - package dependency manager
7
9 bpkg --help
10 bpkg --version
11 bpkg help [command | topic]
12 bpkg [common-options] command [command-options] command-args
13
15 The build2 package dependency manager is used to manipulate build con‐
16 figurations, packages, and repositories using a set of commands that
17 are summarized below.
18
19 For a detailed description of any command or help topic, use the help
20 command or see the corresponding man page (the man pages have the bpkg-
21 prefix, for example bpkg-help(1)). Note also that command-options and
22 command-args can be specified in any order and common-options can be
23 specified as part of command-options.
24
25 A bpkg build configuration is a directory that contains packages built
26 with similar settings. For example, a configuration can be for a spe‐
27 cific target (i686, x86_64), compiler (clang, gcc) compile options
28 (-O3, -g), and so on. Configurations are relatively cheap and can be
29 created and thrown away as needed. Configurations can be moved and
30 copied by simply moving and copying the directories. Note, however,
31 that a move or copy may render some packages out-of-date. In the build2
32 build system terms a bpkg build configuration is an amalgamation that
33 contains packages as subprojects (see bpkg-cfg-create(1) for details).
34
35 A bpkg package is an archive or directory (potentially in a version
36 control system) that contains a build2 project plus the package mani‐
37 fest file. bpkg can either use package archives/directories directly
38 from the filesystem or it can fetch them from repositories.
39
40 A bpkg repository is a collection of packages as well as information
41 about prerequisite and complement repositories. Archive, directory and
42 version control-based repositories are supported. A repository is iden‐
43 tified by its location which can be a local filesystem path or a URL.
44 See bpkg-repository-types(1) for details on the repository structures
45 and URL formats.
46
47 If the same version of a package is available from multiple reposito‐
48 ries, then they are assumed to contain identical package content. In
49 such cases bpkg prefers local repositories over remote and among local
50 repositories it prefers the ones with external packages (see bpkg-pkg-
51 unpack(1) for details on external packages).
52
53 A typical bpkg workflow would consist of the following steps.
54
55 Create Configuration
56 bpkg create cc \
57 config.cxx=clang++ \
58 config.cc.coptions=-O3 \
59 config.install.root=/usr/local \
60 config.install.sudo=sudo
61
62 Add Source Repositories
63 bpkg add https://pkg.cppget.org/1/stable
64 bpkg add https://example.org/foo.git
65
66 Repeat this command to add more repositories.
67
68 Fetch Available Packages List
69 bpkg fetch
70
71 Fetch and Build Packages
72 bpkg build foo bar
73
74 Drop Package
75 If some packages are no longer needed, we can remove them from
76 the configuration.
77
78 bpkg drop foo
79
80 Refresh Available Packages List
81 bpkg fetch
82
83 Upgrade Packages
84 bpkg build bar
85
86 Install Packages
87 bpkg install bar
88
90 help [topic]
91 bpkg-help(1) – show help for a command or help topic
92
93 cfg-create|create
94 bpkg-cfg-create(1) – create configuration
95
96 rep-info
97 bpkg-rep-info(1) – print repository information
98
99 rep-add|add
100 bpkg-rep-add(1) – add repository to configuration
101
102 rep-remove|remove
103 bpkg-rep-remove(1) – remove repository from configuration
104
105 rep-list|list
106 bpkg-rep-list(1) – list repositories in configuration
107
108 rep-fetch|fetch
109 bpkg-rep-fetch(1) – fetch list of available packages
110
111 rep-create
112 bpkg-rep-create(1) – create repository
113
114 pkg-status|status
115 bpkg-pkg-status(1) – print package status
116
117 pkg-build|build
118 bpkg-pkg-build(1) – build package
119
120 pkg-drop|drop
121 bpkg-pkg-drop(1) – drop package
122
123 pkg-install|install
124 bpkg-pkg-install(1) – install package
125
126 pkg-uninstall|uninstall
127 bpkg-pkg-uninstall(1) – uninstall package
128
129 pkg-update|update
130 bpkg-pkg-update(1) – update package
131
132 pkg-test|test
133 bpkg-pkg-test(1) – test package
134
135 pkg-clean|clean
136 bpkg-pkg-clean(1) – clean package
137
138 pkg-verify
139 bpkg-pkg-verify(1) – verify package archive
140
141 pkg-fetch
142 bpkg-pkg-fetch(1) – fetch package archive
143
144 pkg-unpack
145 bpkg-pkg-unpack(1) – unpack package archive
146
147 pkg-checkout
148 bpkg-pkg-checkout(1) – check out package version
149
150 pkg-configure
151 bpkg-pkg-configure(1) – configure package
152
153 pkg-disfigure
154 bpkg-pkg-disfigure(1) – disfigure package
155
156 pkg-purge
157 bpkg-pkg-purge(1) – purge package
158
160 common-options
161 bpkg-common-options(1) – details on common options
162
163 default-options-files
164 bpkg-default-options-files(1) – specifying default options
165
166 repository-types
167 bpkg-repository-types(1) – repository types, structure, and URLs
168
169 repository-signing
170 bpkg-repository-signing(1) – how to sign repository
171
172 argument-grouping
173 bpkg-argument-grouping(1) – argument grouping facility
174
176 The common options are summarized below with a more detailed descrip‐
177 tion available in bpkg-common-options(1).
178
179 -v Print essential underlying commands being executed.
180
181 -V Print all underlying commands being executed.
182
183 --quiet|-q
184 Run quietly, only printing error messages.
185
186 --verbose level
187 Set the diagnostics verbosity to level between 0 and 6.
188
189 --jobs|-j num
190 Number of jobs to perform in parallel.
191
192 --no-result
193 Don't print informational messages about the outcome of perform‐
194 ing a command.
195
196 --no-progress
197 Suppress progress indicators for long-lasting operations, such
198 as network transfers, building, etc.
199
200 --build path
201 The build program to be used to build packages.
202
203 --build-option opt
204 Additional option to be passed to the build program.
205
206 --fetch path
207 The fetch program to be used to download resources.
208
209 --fetch-option opt
210 Additional option to be passed to the fetch program.
211
212 --fetch-timeout sec
213 The fetch and fetch-like (for example, git) program timeout.
214
215 --git path
216 The git program to be used to fetch git repositories.
217
218 --git-option opt
219 Additional common option to be passed to the git program.
220
221 --sha256 path
222 The sha256 program to be used to calculate SHA256 sums.
223
224 --sha256-option opt
225 Additional option to be passed to the sha256 program.
226
227 --tar path
228 The tar program to be used to extract package archives.
229
230 --tar-option opt
231 Additional option to be passed to the tar program.
232
233 --openssl path
234 The openssl program to be used for crypto operations.
235
236 --openssl-option opt
237 Additional option to be passed to the openssl program.
238
239 --auth type
240 Types of repositories to authenticate.
241
242 --trust fingerprint
243 Trust repository certificate with a SHA256 fingerprint.
244
245 --trust-yes
246 Assume the answer to all authentication prompts is yes.
247
248 --trust-no
249 Assume the answer to all authentication prompts is no.
250
251 --pager path
252 The pager program to be used to show long text.
253
254 --pager-option opt
255 Additional option to be passed to the pager program.
256
257 --options-file file
258 Read additional options from file.
259
260 --default-options dir
261 The directory to load additional default options files from.
262
263 --no-default-options
264 Don't load default options files.
265
267 Commands executed by bpkg while the build configuration database is
268 open will have the BPKG_OPEN_CONFIG environment variable set to the
269 absolute and normalized configuration directory path. This can be used
270 by build system hooks and/or programs that they execute.
271
273 Non-zero exit status is returned in case of an error.
274
276 Send bug reports to the users@build2.org mailing list.
277
279 Copyright (c) 2014-2019 Code Synthesis Ltd
280
281 Permission is granted to copy, distribute and/or modify this document
282 under the terms of the MIT License.
283
284
285
286bpkg 0.12.0 November 2019 bpkg(1)