1OPAM-REMOVE(1) Opam Manual OPAM-REMOVE(1)
2
3
4
6 opam-remove - Remove a list of packages.
7
9 opam remove [OPTION]... [PACKAGES]...
10
12 This command uninstalls one or more packages currently installed in the
13 currently selected compiler switch. To remove packages installed in
14 another compiler, you need to switch compilers using opam switch or use
15 the --switch flag. This command is the inverse of opam-install.
16
17 If a directory name is specified as package, packages pinned to that
18 directory are both unpinned and removed.
19
21 PACKAGES
22 List of package names, with an optional version or constraint, e.g
23 `pkg', `pkg.1.0' or `pkg>=0.5' ; or directory names containing
24 package description, with explicit directory (e.g. `./srcdir' or
25 `.')
26
28 -a, --auto-remove
29 Remove all the packages which have not been explicitly installed
30 and which are not necessary anymore. It is possible to prevent the
31 removal of an already-installed package by running opam install
32 <pkg> --set-root. This flag can also be set using the
33 $OPAMAUTOREMOVE configuration variable.
34
35 --destdir=DIR
36 Instead of uninstalling the packages, reverts the action of opam
37 install --destdir: remove files corresponding to what the listed
38 packages installed to the current switch from the given DIR. Note
39 that the package needs to still be installed to the same version
40 that was used for install --destdir for this to work reliably. The
41 packages are not removed from the current opam switch when this is
42 specified.
43
44 --force
45 Execute the remove commands of given packages directly, even if
46 they are not considered installed by opam.
47
48 -j JOBS, --jobs=JOBS
49 Set the maximal number of concurrent jobs to use. The default value
50 is calculated from the number of cores. You can also set it using
51 the $OPAMJOBS environment variable.
52
54 -b, --keep-build-dir
55 Keep the build directories after compiling packages. This is
56 equivalent to setting $OPAMKEEPBUILDDIR to "true".
57
58 -d, --with-doc, --build-doc
59 Build the package documentation. This only affects packages listed
60 on the command-line. The --build-doc form is deprecated as this
61 does also installation. This is equivalent to setting $OPAMWITHDOC
62 (or the deprecated $OPAMBUILDDOC) to "true".
63
64 --dry-run
65 Simulate the command, but don't actually perform any changes. This
66 also can be set with environment variable $OPAMDEBUG.
67
68 --fake
69 This option registers the actions into the opam database, without
70 actually performing them. WARNING: This option is dangerous and
71 likely to break your opam environment. You probably want
72 `--dry-run'. You've been warned.
73
74 --ignore-constraints-on[=PACKAGES] (default=)
75 Forces opam to ignore version constraints on all dependencies to
76 the listed packages. This can be used to test compatibility, but
77 expect builds to break when using this. Note that version
78 constraints on optional dependencies and conflicts are unaffected.
79 This is equivalent to setting $OPAMIGNORECONSTRAINTS.
80
81 --inplace-build
82 When compiling a package which has its source bound to a local
83 directory, process the build and install actions directly in that
84 directory, rather than in a clean copy handled by opam. This only
85 affects packages that are explicitly listed on the command-line.
86 This is equivalent to setting $OPAMINPLACEBUILD to "true".
87
88 --locked[=SUFFIX] (default=locked)
89 In commands that use opam files found from pinned sources, if a
90 variant of the file with an added .SUFFIX extension is found (e.g.
91 foo.opam.locked besides foo.opam), that will be used instead. This
92 is typically useful to offer a more specific set of dependencies
93 and reproduce similar build contexts, hence the name. The opam lock
94 plugin can be used to generate such files, based on the versions of
95 the dependencies currently installed on the host. This is
96 equivalent to setting the $OPAMLOCKED environment variable. Note
97 that this option doesn't generally affect already pinned packages.
98
99 -m MAKE, --make=MAKE
100 Use MAKE as the default 'make' command. Deprecated: use opam config
101 set[-global] make MAKE instead. Has no effect if the make variable
102 is defined.
103
104 --no-checksums
105 Do not verify the checksum of downloaded archives.This is
106 equivalent to setting $OPAMNOCHECKSUMS to "true".
107
108 --require-checksums
109 Reject the installation of packages that don't provide a checksum
110 for the upstream archives. This is equivalent to setting
111 $OPAMREQUIRECHECKSUMS to "true".
112
113 --reuse-build-dir
114 Reuse existing build directories (kept by using --keep-build-dir),
115 instead of compiling from a fresh clone of the source. This can be
116 faster, but also lead to failures if the build systems of the
117 packages don't handle upgrades of dependencies well. This is
118 equivalent to setting $OPAMREUSEBUILDDIR to "true".
119
120 --show-actions
121 Call the solver and display the actions. Don't perform any changes.
122 This is equivalent to setting $OPAMSHOW.
123
124 --skip-updates
125 When running an install, upgrade or reinstall on source-pinned
126 packages, they are normally updated from their origin first. This
127 flag disables that behaviour and will keep them to their version in
128 cache. This is equivalent to setting $OPAMSKIPUPDATE.
129
130 -t, --with-test, --build-test
131 Build and run the package unit-tests. This only affects packages
132 listed on the command-line. The --build-test form is deprecated as
133 this also affects installation. This is equivalent to setting
134 $OPAMWITHTEST (or the deprecated $OPAMBUILDTEST) to "true".
135
136 --unlock-base
137 Allow changes to the packages set as switch base (typically, the
138 main compiler). Use with caution. This is equivalent to setting the
139 $OPAMUNLOCKBASE environment variable
140
142 These options are common to all commands.
143
144 --best-effort
145 Don't fail if all requested packages can't be installed: try to
146 install as many as possible. Note that not all external solvers may
147 support this option (recent versions of aspcud or mccs should).
148 This is equivalent to setting $OPAMBESTEFFORT environment variable.
149
150 --color=WHEN
151 Colorize the output. WHEN must be one of `always', `never' or
152 `auto'.
153
154 --criteria=CRITERIA
155 Specify user preferences for dependency solving for this run.
156 Overrides both $OPAMCRITERIA and $OPAMUPGRADECRITERIA. For details
157 on the supported language, and the external solvers available, see
158 http://opam.ocaml.org/doc/External_solvers.html. A general guide to
159 using solver preferences can be found at
160 http://www.dicosmo.org/Articles/usercriteria.pdf.
161
162 --cudf=FILENAME
163 Debug option: Save the CUDF requests sent to the solver to
164 FILENAME-<n>.cudf.
165
166 --debug
167 Print debug message to stderr. This is equivalent to setting
168 $OPAMDEBUG to "true".
169
170 --debug-level=LEVEL
171 Like --debug, but allows specifying the debug level (--debug sets
172 it to 1). Equivalent to setting $OPAMDEBUG to a positive integer.
173
174 --git-version
175 Print the git version of opam, if set (i.e. you are using a
176 development version), and exit.
177
178 --help[=FMT] (default=auto)
179 Show this help in format FMT. The value FMT must be one of `auto',
180 `pager', `groff' or `plain'. With `auto', the format is `pager` or
181 `plain' whenever the TERM env var is `dumb' or undefined.
182
183 --ignore-pin-depends
184 Ignore extra pins required by packages that get pinned, either
185 manually through opam pin or through opam install DIR. This is
186 equivalent to setting IGNOREPINDEPENDS=true.
187
188 --json=FILENAME
189 Save the results of the opam run in a computer-readable file. If
190 the filename contains the character `%', it will be replaced by an
191 index that doesn't overwrite an existing file. Similar to setting
192 the $OPAMJSON variable.
193
194 --no-aspcud
195 Deprecated.
196
197 --no-auto-upgrade
198 When configuring or updating a repository that is written for an
199 earlier opam version (1.2), opam internally converts it to the
200 current format. This disables this behaviour. Note that
201 repositories should define their format version in a 'repo' file at
202 their root, or they will be assumed to be in the older format. It
203 is, in any case, preferable to upgrade the repositories manually
204 using opam admin upgrade [--mirror URL] when possible.
205
206 --no-self-upgrade
207 Opam will replace itself with a newer binary found at OPAMROOT/opam
208 if present. This disables this behaviour.
209
210 -q, --quiet
211 Disables --verbose.
212
213 --root=ROOT
214 Use ROOT as the current root path. This is equivalent to setting
215 $OPAMROOT to ROOT.
216
217 --safe, --readonly
218 Make sure nothing will be automatically updated or rewritten.
219 Useful for calling from completion scripts, for example. Will fail
220 whenever such an operation is needed ; also avoids waiting for
221 locks, skips interactive questions and overrides the $OPAMDEBUG
222 variable. This is equivalent to set environment variable $OPAMSAFE.
223
224 --solver=CMD
225 Specify the CUDF solver to use for resolving package installation
226 problems. This is either a predefined solver (this version of opam
227 supports builtin-mccs+lp(), builtin-mccs+glpk, aspcud, mccs,
228 aspcud-old, packup), or a custom command that should contain the
229 variables %{input}%, %{output}%, %{criteria}%, and optionally
230 %{timeout}%. This is equivalent to setting $OPAMEXTERNALSOLVER.
231
232 --strict
233 Fail whenever an error is found in a package definition or a
234 configuration file. The default is to continue silently if
235 possible.
236
237 --switch=SWITCH
238 Use SWITCH as the current compiler switch. This is equivalent to
239 setting $OPAMSWITCH to SWITCH.
240
241 --use-internal-solver
242 Disable any external solver, and use the built-in one (this
243 requires that opam has been compiled with a built-in solver). This
244 is equivalent to setting $OPAMNOASPCUD or $OPAMUSEINTERNALSOLVER.
245
246 -v, --verbose
247 Be more verbose. One -v shows all package commands, repeat to also
248 display commands called internally (e.g. tar, curl, patch etc.)
249 Repeating n times is equivalent to setting $OPAMVERBOSE to "n".
250
251 --version
252 Show version information.
253
254 -w, --working-dir
255 Whenever updating packages that are bound to a local,
256 version-controlled directory, update to the current working state
257 of their source instead of the last committed state, or the ref
258 they are pointing to. This only affects packages explicitly listed
259 on the command-line.It can also be set with $OPAMWORKINGDIR.
260
261 -y, --yes
262 Answer yes to all yes/no questions without prompting. This is
263 equivalent to setting $OPAMYES to "true".
264
266 Opam makes use of the environment variables listed here. Boolean
267 variables should be set to "0", "no", "false" or the empty string to
268 disable, "1", "yes" or "true" to enable.
269
270 OPAMALLPARENS surround all filters with parenthesis
271
272 OPAMAUTOREMOVE see remove option `--auto-remove`
273
274 OPAMBESTEFFORT see option `--best-effort`
275
276 OPAMBESTEFFORTPREFIXCRITERIA sets the string that must be prepended to
277 the criteria when the `--best-effort` option is set, and is expected to
278 maximise the `opam-query` property in the solution
279
280 OPAMCOLOR, when set to always or never, sets a default value for the
281 --color option.
282
283 OPAMCRITERIA specifies user preferences for dependency solving. The
284 default value depends on the solver version, use `config report` to
285 know the current setting. See also option --criteria
286
287 OPAMCUDFFILE file save the cudf graph to file-actions-explicit.dot
288
289 OPAMCURL can be used to select a given 'curl' program. See OPAMFETCH
290 for more options.
291
292 OPAMDEBUG see options `--debug' and `--debug-level'.
293
294 OPAMDOWNLOADJOBS sets the maximum number of simultaneous downloads.
295
296 OPAMDRYRUN see option `--dry-run`
297
298 OPAMEDITOR sets the editor to use for opam file editing, overrides
299 $EDITOR and $VISUAL
300
301 OPAMERRLOGLEN sets the number of log lines printed when a sub-process
302 fails. 0 to print all.
303
304 OPAMEXTERNALSOLVER see option `--solver'.
305
306 OPAMFAKE see option `--fake`
307
308 OPAMFETCH specifies how to download files: either `wget', `curl' or a
309 custom command where variables %{url}%, %{out}%, %{retry}%,
310 %{compress}% and %{checksum}% will be replaced. Overrides the
311 'download-command' value from the main config file.
312
313 OPAMFIXUPCRITERIA same as OPAMUPGRADECRITERIA, but specific to fixup
314
315 OPAMIGNORECONSTRAINTS see install option `--ignore-constraints-on`
316
317 OPAMIGNOREPINDEPENDS see option `--ignore-pin-depends`
318
319 OPAMJOBS sets the maximum number of parallel workers to run.
320
321 OPAMJSON log json output to the given file (use character `%' to index
322 the files)
323
324 OPAMLOCKED see install option `--locked`
325
326 OPAMLOGS logdir sets log directory, default is a temporary directory in
327 /tmp
328
329 OPAMMAKECMD set the system make command to use
330
331 OPAMNOAUTOUPGRADE disables automatic internal upgrade of repositories
332 in an earlier format to the current one, on 'update' or 'init'.
333
334 OPAMKEEPLOGS tells opam to not remove some temporary command logs and
335 some backups. This skips some finalisers and may also help to get more
336 reliable backtraces
337
338 OPAMLOCKRETRIES sets the number of tries after which opam gives up
339 acquiring its lock and fails. <= 0 means infinite wait.
340
341 OPAMMERGEOUT merge process outputs, stderr on stdout
342
343 OPAMNO answer no to any question asked.
344
345 OPAMNOASPCUD Deprecated.
346
347 OPAMNOCHECKSUMS enables option --no-checksums when available.
348
349 OPAMNOSELFUPGRADE see option `--no-self-upgrade'.
350
351 OPAMPINKINDAUTO sets whether version control systems should be detected
352 when pinning to a local path. Enabled by default since 1.3.0.
353
354 OPAMPRECISETRACKING fine grain tracking of directories
355
356 OPAMREQUIRECHECKSUMS Enables option `--require-checksums' when
357 available (e.g. for `opam install`).
358
359 OPAMRETRES sets the number of tries before failing downloads.
360
361 OPAMROOT see option `--root'. This is automatically set by `opam env
362 --root=DIR --set-root'.
363
364 OPAMROOTISOK don't complain when running as root.
365
366 OPAMSAFE see option `--safe'
367
368 OPAMSHOW see option `--show`
369
370 OPAMSKIPUPDATE see option `--skip-updates`
371
372 OPAMSKIPVERSIONCHECKS bypasses some version checks. Unsafe, for
373 compatibility testing only.
374
375 OPAMSOLVERTIMEOUT change the time allowance of the solver. Default is
376 60.0, set to 0 for unlimited. Note that all solvers may not support
377 this option.
378
379 OPAMSTATUSLINE display a dynamic status line showing what's currently
380 going on on the terminal. (one of one of `always', `never' or `auto')
381
382 OPAMSTATS display stats at the end of command
383
384 OPAMSTRICT fail on inconsistencies (file reading, switch import, etc.)
385
386 OPAMSWITCH see option `--switch'. Automatically set by `opam env
387 --switch=SWITCH --set-switch'.
388
389 OPAMUNLOCKBASE see install option `--unlock-base`
390
391 OPAMUPGRADECRITERIA specifies user preferences for dependency solving
392 when performing an upgrade. Overrides OPAMCRITERIA in upgrades if both
393 are set. See also option --criteria
394
395 OPAMUSEINTERNALSOLVER see option `--use-internal-solver'.
396
397 OPAMUSEOPENSSL force openssl use for hash computing
398
399 OPAMUTF8 use UTF8 characters in output (one of one of `always', `never'
400 or `auto'). By default `auto', which is determined from the locale).
401
402 OPAMUTF8MSGS use extended UTF8 characters (camels) in opam messages.
403 Implies OPAMUTF8. This is set by default on OSX only.
404
405 OPAMVALIDATIONHOOK hook if set, uses the `%{hook%}` command to validate
406 an opam repository update
407
408 OPAMVAR_var overrides the contents of the variable var when
409 substituting `%{var}%` strings in `opam` files.
410
411 OPAMVAR_package_var overrides the contents of the variable package:var
412 when substituting `%{package:var}%` strings in `opam` files.
413
414 OPAMVERBOSE see option `--verbose'.
415
416 OPAMWORKINGDIR see option `--working-dir`
417
418 OPAMYES see option `--yes'.
419
421 As an exception to the following, the `exec' command returns 127 if the
422 command was not found or couldn't be executed, and the command's exit
423 value otherwise.
424
425 0 Success, or true for boolean queries.
426
427 1 False. Returned when a boolean return value is expected, e.g. when
428 running with --check, or for queries like opam lint.
429
430 2 Bad command-line arguments, or command-line arguments pointing to
431 an invalid context (e.g. file not following the expected format).
432
433 5 Not found. You requested something (package, version, repository,
434 etc.) that couldn't be found.
435
436 10 Aborted. The operation required confirmation, which wasn't given.
437
438 15 Could not acquire the locks required for the operation.
439
440 20 There is no solution to the user request. This can be caused by
441 asking to install two incompatible packages, for example.
442
443 30 Error in package definition, or other metadata files. Using
444 --strict raises this error more often.
445
446 31 Package script error. Some package operations were unsuccessful.
447 This may be an error in the packages or an incompatibility with
448 your system. This can be a partial error.
449
450 40 Sync error. Could not fetch some remotes from the network. This can
451 be a partial error.
452
453 50 Configuration error. Opam or system configuration doesn't allow
454 operation, and needs fixing.
455
456 60 Solver failure. The solver failed to return a sound answer. It can
457 be due to a broken external solver, or an error in solver
458 configuration.
459
460 99 Internal error. Something went wrong, likely due to a bug in opam
461 itself.
462
463 130 User interrupt. SIGINT was received, generally due to the user
464 pressing Ctrl-C.
465
467 See https://opam.ocaml.org/doc.
468
470 Vincent Bernardoff <vb@luminar.eu.org>
471 Raja Boujbel <raja.boujbel@ocamlpro.com>
472
473 Roberto Di Cosmo <roberto@dicosmo.org>
474 Thomas Gazagnaire <thomas@gazagnaire.org>
475 Louis Gesbert <louis.gesbert@ocamlpro.com>
476 Fabrice Le Fessant <Fabrice.Le_fessant@inria.fr>
477 Anil Madhavapeddy <anil@recoil.org>
478 Guillem Rieu <guillem.rieu@ocamlpro.com>
479 Ralf Treinen <ralf.treinen@pps.jussieu.fr>
480 Frederic Tuong <tuong@users.gforge.inria.fr>
481
483 Check bug reports at https://github.com/ocaml/opam/issues.
484
485
486
487Opam 2.0.4 OPAM-REMOVE(1)