man-pages/man1/opam-init.1.html
2021-03-31 01:06:50 +01:00

488 lines
27 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of OPAM-INIT</TITLE>
</HEAD><BODY>
<H1>OPAM-INIT</H1>
Section: Opam Manual (1)<BR>Updated: <BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
<P>
opam&#45;init &#45; Initialize opam state, or set init options&#46;
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<P>
<B>opam init</B> [<I>OPTION</I>]&#46;&#46;&#46; [<I>NAME</I>] [<I>ADDRESS</I>]
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<P>
Initialise the opam state, or update opam init options
<P>
The <B>init</B> command initialises a local &quot;opam root&quot; (by default, <I>~/&#46;opam/</I>) that holds opam&#39;s data and packages&#46; This is a necessary step for normal operation of opam&#46; The initial software repositories are fetched, and an initial &#39;switch&#39; can also be installed, according to the configuration and options&#46; These can be afterwards configured using <B>opam switch</B> and <B>opam repository</B>&#46;
<P>
The initial repository and defaults can be set through a configuration file found at <I>~/&#46;opamrc</I> or <I>/etc/opamrc</I>&#46;
<P>
Additionally, this command allows one to customise some aspects of opam&#39;s shell integration, when run initially (avoiding the interactive dialog), but also at any later time&#46;
<A NAME="lbAE">&nbsp;</A>
<H2>ARGUMENTS</H2>
<DL COMPACT>
<DT id="1"><I>ADDRESS</I><DD>
Address of the initial package repository, when creating a new opam root&#46;
<DT id="2"><I>NAME</I> (absent=default)<DD>
Name of the initial repository, when creating a new opam root&#46;
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>OPTIONS</H2>
<DL COMPACT>
<DT id="3"><B>&#45;a</B>, <B>&#45;&#45;auto&#45;setup</B><DD>
Automatically do a full setup, including adding a line to your shell init files&#46;
<DT id="4"><B>&#45;&#45;bare</B><DD>
Initialise the opam state, but don&#39;t setup any compiler switch yet&#46;
<DT id="5"><B>&#45;&#45;bypass&#45;checks</B><DD>
Skip checks on required or recommended tools, and assume everything is fine
<DT id="6"><B>&#45;c</B> <I>PACKAGE</I>, <B>&#45;&#45;compiler</B>=<I>PACKAGE</I><DD>
Set the compiler to install (when creating an initial switch)
<DT id="7"><B>&#45;&#45;config</B>=<I>FILE</I><DD>
Use the given init config file&#46; If repeated, latest has the highest priority (<B>i&#46;e&#46;</B> each field gets its value from where it was defined last)&#46; Specifying a URL pointing to a config file instead is allowed&#46;
<DT id="8"><B>&#45;&#45;disable&#45;completion</B><DD>
Disable shell completion in opam init scripts&#46;
<DT id="9"><B>&#45;&#45;disable&#45;sandboxing</B><DD>
Use a default configuration with sandboxing disabled (note that this may be overridden by `opamrc&#39; if <B>&#45;&#45;no&#45;opamrc</B> is not specified or <B>&#45;&#45;config</B> is used)&#46; Use this at your own risk, without sandboxing it is possible for a broken package script to delete all your files&#46;
<DT id="10"><B>&#45;&#45;disable&#45;shell&#45;hook</B><DD>
Disable registration of a shell hook in opam init scripts&#46;
<DT id="11"><B>&#45;&#45;dot&#45;profile</B>=<I>FILENAME</I><DD>
Name of the configuration file to update instead of <I>~/&#46;profile</I> or <I>~/&#46;zshrc</I> based on shell detection&#46;
<DT id="12"><B>&#45;&#45;enable&#45;completion</B><DD>
Setup shell completion in opam init scripts, for supported shells&#46;
<DT id="13"><B>&#45;&#45;enable&#45;shell&#45;hook</B><DD>
Setup opam init scripts to register a shell hook that will automatically keep the shell environment up&#45;to&#45;date at every prompt&#46;
<DT id="14"><B>&#45;i</B>, <B>&#45;&#45;interactive</B><DD>
Run the setup interactively (this is the default for an initial run, or when no more specific options are specified)
<DT id="15"><B>&#45;j</B> <I>JOBS</I>, <B>&#45;&#45;jobs</B>=<I>JOBS</I><DD>
Set the maximal number of concurrent jobs to use&#46; The default value is calculated from the number of cores&#46; You can also set it using the <B>$OPAMJOBS</B> environment variable&#46;
<DT id="16"><B>&#45;k</B> <I>KIND</I>, <B>&#45;&#45;kind</B>=<I>KIND</I><DD>
Specify the kind of the repository to be used (one of `http&#39;, `local&#39;, `git&#39;, `darcs&#39; or `hg&#39;)&#46;
<DT id="17"><B>&#45;n</B>, <B>&#45;&#45;no&#45;setup</B><DD>
Do not update the user shell configuration to setup opam&#46; Also implies <B>&#45;&#45;disable&#45;shell&#45;hook</B>, unless <B>&#45;&#45;interactive</B> or specified otherwise
<DT id="18"><B>&#45;&#45;no&#45;opamrc</B><DD>
Don&#39;t read `/etc/opamrc&#39; or `~/&#46;opamrc&#39;: use the default settings and the files specified through <B>&#45;&#45;config</B> only
<DT id="19"><B>&#45;&#45;reinit</B><DD>
Re&#45;run the initial checks and setup, according to opamrc, even if this is not a new opam root
<DT id="20"><B>&#45;&#45;shell</B>=<I>SHELL</I><DD>
Sets the configuration mode for opam environment appropriate for <I>SHELL</I>&#46; One of one of `bash&#39;, `sh&#39;, `csh&#39;, `zsh&#39; or `fish&#39;&#46; Guessed from the parent processes and the $SHELL variable by default&#46;
<DT id="21"><B>&#45;&#45;shell&#45;setup</B><DD>
Automatically setup the user shell configuration for opam, e&#46;g&#46; adding a line to the `~/&#46;profile&#39; file&#46;
<DT id="22"><B>&#45;&#45;show&#45;default&#45;opamrc</B><DD>
Print the built&#45;in default configuration to stdout and exit
</DL>
<A NAME="lbAG">&nbsp;</A>
<H2>CONFIGURATION FILE</H2>
<P>
Any field from the built&#45;in initial configuration can be overridden through <I>~/&#46;opamrc</I>, <I>/etc/opamrc</I>, or a file supplied with <I>&#45;&#45;config</I>&#46; The default configuration for this version of opam can be obtained using <B>&#45;&#45;show&#45;default&#45;opamrc</B>&#46;
<A NAME="lbAH">&nbsp;</A>
<H2>PACKAGE BUILD OPTIONS</H2>
<DL COMPACT>
<DT id="23"><B>&#45;b</B>, <B>&#45;&#45;keep&#45;build&#45;dir</B><DD>
Keep the build directories after compiling packages&#46; This is equivalent to setting <B>$OPAMKEEPBUILDDIR</B> to &quot;true&quot;&#46;
<DT id="24"><B>&#45;d</B>, <B>&#45;&#45;with&#45;doc</B>, <B>&#45;&#45;build&#45;doc</B><DD>
Build the package documentation&#46; This only affects packages listed on the command&#45;line&#46; The <B>&#45;&#45;build&#45;doc</B> form is deprecated as this does also installation&#46; This is equivalent to setting <B>$OPAMWITHDOC</B> (or the deprecated <B>$OPAMBUILDDOC</B>) to &quot;true&quot;&#46;
<DT id="25"><B>&#45;&#45;dry&#45;run</B><DD>
Simulate the command, but don&#39;t actually perform any changes&#46; This also can be set with environment variable <B>$OPAMDEBUG</B>&#46;
<DT id="26"><B>&#45;&#45;fake</B><DD>
This option registers the actions into the opam database, without actually performing them&#46; WARNING: This option is dangerous and likely to break your opam environment&#46; You probably want `&#45;&#45;dry&#45;run&#39;&#46; You&#39;ve been <I>warned</I>&#46;
<DT id="27"><B>&#45;&#45;ignore&#45;constraints&#45;on</B>[=<I>PACKAGES</I>] (default=)<DD>
Forces opam to ignore version constraints on all dependencies to the listed packages&#46; This can be used to test compatibility, but expect builds to break when using this&#46; Note that version constraints on optional dependencies and conflicts are unaffected&#46; This is equivalent to setting <B>$OPAMIGNORECONSTRAINTS</B>&#46;
<DT id="28"><B>&#45;&#45;inplace&#45;build</B><DD>
When compiling a package which has its source bound to a local directory, process the build and install actions directly in that directory, rather than in a clean copy handled by opam&#46; This only affects packages that are explicitly listed on the command&#45;line&#46; This is equivalent to setting <B>$OPAMINPLACEBUILD</B> to &quot;true&quot;&#46;
<DT id="29"><B>&#45;&#45;locked</B>[=<I>SUFFIX</I>] (default=locked)<DD>
In commands that use opam files found from pinned sources, if a variant of the file with an added &#46;<I>SUFFIX</I> extension is found (e&#46;g&#46; <B>foo&#46;opam&#46;locked</B> besides <B>foo&#46;opam</B>), that will be used instead&#46; This is typically useful to offer a more specific set of dependencies and reproduce similar build contexts, hence the name&#46; The <I>opam lock</I> plugin can be used to generate such files, based on the versions of the dependencies currently installed on the host&#46; This is equivalent to setting the <B>$OPAMLOCKED</B> environment variable&#46; Note that this option doesn&#39;t generally affect already pinned packages&#46;
<DT id="30"><B>&#45;m</B> <I>MAKE</I>, <B>&#45;&#45;make</B>=<I>MAKE</I><DD>
Use <I>MAKE</I> as the default &#39;make&#39; command&#46; Deprecated: use <B>opam config set[&#45;global] make MAKE</B> instead&#46; Has no effect if the <I>make</I> variable is defined&#46;
<DT id="31"><B>&#45;&#45;no&#45;checksums</B><DD>
Do not verify the checksum of downloaded archives&#46;This is equivalent to setting <B>$OPAMNOCHECKSUMS</B> to &quot;true&quot;&#46;
<DT id="32"><B>&#45;&#45;require&#45;checksums</B><DD>
Reject the installation of packages that don&#39;t provide a checksum for the upstream archives&#46; This is equivalent to setting <B>$OPAMREQUIRECHECKSUMS</B> to &quot;true&quot;&#46;
<DT id="33"><B>&#45;&#45;reuse&#45;build&#45;dir</B><DD>
Reuse existing build directories (kept by using <B>&#45;&#45;keep&#45;build&#45;dir</B>), instead of compiling from a fresh clone of the source&#46; This can be faster, but also lead to failures if the build systems of the packages don&#39;t handle upgrades of dependencies well&#46; This is equivalent to setting <B>$OPAMREUSEBUILDDIR</B> to &quot;true&quot;&#46;
<DT id="34"><B>&#45;&#45;show&#45;actions</B><DD>
Call the solver and display the actions&#46; Don&#39;t perform any changes&#46; This is equivalent to setting <B>$OPAMSHOW</B>&#46;
<DT id="35"><B>&#45;&#45;skip&#45;updates</B><DD>
When running an install, upgrade or reinstall on source&#45;pinned packages, they are normally updated from their origin first&#46; This flag disables that behaviour and will keep them to their version in cache&#46; This is equivalent to setting <B>$OPAMSKIPUPDATE</B>&#46;
<DT id="36"><B>&#45;t</B>, <B>&#45;&#45;with&#45;test</B>, <B>&#45;&#45;build&#45;test</B><DD>
Build and <B>run</B> the package unit&#45;tests&#46; This only affects packages listed on the command&#45;line&#46; The <B>&#45;&#45;build&#45;test</B> form is deprecated as this also affects installation&#46; This is equivalent to setting <B>$OPAMWITHTEST</B> (or the deprecated <B>$OPAMBUILDTEST</B>) to &quot;true&quot;&#46;
<DT id="37"><B>&#45;&#45;unlock&#45;base</B><DD>
Allow changes to the packages set as switch base (typically, the main compiler)&#46; Use with caution&#46; This is equivalent to setting the <B>$OPAMUNLOCKBASE</B> environment variable
</DL>
<A NAME="lbAI">&nbsp;</A>
<H2>COMMON OPTIONS</H2>
<P>
These options are common to all commands&#46;
<DL COMPACT>
<DT id="38"><B>&#45;&#45;best&#45;effort</B><DD>
Don&#39;t fail if all requested packages can&#39;t be installed: try to install as many as possible&#46; Note that not all external solvers may support this option (recent versions of <I>aspcud</I> or <I>mccs</I> should)&#46; This is equivalent to setting <B>$OPAMBESTEFFORT</B> environment variable&#46;
<DT id="39"><B>&#45;&#45;color</B>=<I>WHEN</I><DD>
Colorize the output&#46; <I>WHEN</I> must be one of `always&#39;, `never&#39; or `auto&#39;&#46;
<DT id="40"><B>&#45;&#45;criteria</B>=<I>CRITERIA</I><DD>
Specify user <I>preferences</I> for dependency solving for this run&#46; Overrides both <B>$OPAMCRITERIA</B> and <B>$OPAMUPGRADECRITERIA</B>&#46; For details on the supported language, and the external solvers available, see <I> <A HREF="http://opam">http://opam</A>&#46;ocaml&#46;org/doc/External_solvers&#46;html</I>&#46; A general guide to using solver preferences can be found at <I> <A HREF="http://www">http://www</A>&#46;dicosmo&#46;org/Articles/usercriteria&#46;pdf</I>&#46;
<DT id="41"><B>&#45;&#45;cudf</B>=<I>FILENAME</I><DD>
Debug option: Save the CUDF requests sent to the solver to <I>FILENAME</I>&#45;&lt;n&gt;&#46;cudf&#46;
<DT id="42"><B>&#45;&#45;debug</B><DD>
Print debug message to stderr&#46; This is equivalent to setting <B>$OPAMDEBUG</B> to &quot;true&quot;&#46;
<DT id="43"><B>&#45;&#45;debug&#45;level</B>=<I>LEVEL</I><DD>
Like <B>&#45;&#45;debug</B>, but allows specifying the debug level (<B>&#45;&#45;debug</B> sets it to 1)&#46; Equivalent to setting <B>$OPAMDEBUG</B> to a positive integer&#46;
<DT id="44"><B>&#45;&#45;git&#45;version</B><DD>
Print the git version of opam, if set (i&#46;e&#46; you are using a development version), and exit&#46;
<DT id="45"><B>&#45;&#45;help</B>[=<I>FMT</I>] (default=auto)<DD>
Show this help in format <I>FMT</I>&#46; The value <I>FMT</I> must be one of `auto&#39;, `pager&#39;, `groff&#39; or `plain&#39;&#46; With `auto&#39;, the format is `pager` or `plain&#39; whenever the <B>TERM</B> env var is `dumb&#39; or undefined&#46;
<DT id="46"><B>&#45;&#45;ignore&#45;pin&#45;depends</B><DD>
Ignore extra pins required by packages that get pinned, either manually through <I>opam pin</I> or through <I>opam install DIR</I>&#46; This is equivalent to setting <B>IGNOREPINDEPENDS=true</B>&#46;
<DT id="47"><B>&#45;&#45;json</B>=<I>FILENAME</I><DD>
Save the results of the opam run in a computer&#45;readable file&#46; If the filename contains the character `%&#39;, it will be replaced by an index that doesn&#39;t overwrite an existing file&#46; Similar to setting the <B>$OPAMJSON</B> variable&#46;
<DT id="48"><B>&#45;&#45;no&#45;aspcud</B><DD>
Deprecated&#46;
<DT id="49"><B>&#45;&#45;no&#45;auto&#45;upgrade</B><DD>
When configuring or updating a repository that is written for an earlier opam version (1&#46;2), opam internally converts it to the current format&#46; This disables this behaviour&#46; Note that repositories should define their format version in a &#39;repo&#39; file at their root, or they will be assumed to be in the older format&#46; It is, in any case, preferable to upgrade the repositories manually using <I>opam admin upgrade [&#45;&#45;mirror URL]</I> when possible&#46;
<DT id="50"><B>&#45;&#45;no&#45;self&#45;upgrade</B><DD>
Opam will replace itself with a newer binary found at <B>OPAMROOT/opam</B> if present&#46; This disables this behaviour&#46;
<DT id="51"><B>&#45;q</B>, <B>&#45;&#45;quiet</B><DD>
Disables <B>&#45;&#45;verbose</B>&#46;
<DT id="52"><B>&#45;&#45;root</B>=<I>ROOT</I><DD>
Use <I>ROOT</I> as the current root path&#46; This is equivalent to setting <B>$OPAMROOT</B> to <I>ROOT</I>&#46;
<DT id="53"><B>&#45;&#45;safe</B>, <B>&#45;&#45;readonly</B><DD>
Make sure nothing will be automatically updated or rewritten&#46; Useful for calling from completion scripts, for example&#46; Will fail whenever such an operation is needed ; also avoids waiting for locks, skips interactive questions and overrides the <B>$OPAMDEBUG</B> variable&#46; This is equivalent to set environment variable <B>$OPAMSAFE</B>&#46;
<DT id="54"><B>&#45;&#45;solver</B>=<I>CMD</I><DD>
Specify the CUDF solver to use for resolving package installation problems&#46; This is either a predefined solver (this version of opam supports builtin&#45;mccs+lp(), builtin&#45;mccs+glpk, aspcud, mccs, aspcud&#45;old, packup), or a custom command that should contain the variables %{input}%, %{output}%, %{criteria}%, and optionally %{timeout}%&#46; This is equivalent to setting <B>$OPAMEXTERNALSOLVER</B>&#46;
<DT id="55"><B>&#45;&#45;strict</B><DD>
Fail whenever an error is found in a package definition or a configuration file&#46; The default is to continue silently if possible&#46;
<DT id="56"><B>&#45;&#45;switch</B>=<I>SWITCH</I><DD>
Use <I>SWITCH</I> as the current compiler switch&#46; This is equivalent to setting <B>$OPAMSWITCH</B> to <I>SWITCH</I>&#46;
<DT id="57"><B>&#45;&#45;use&#45;internal&#45;solver</B><DD>
Disable any external solver, and use the built&#45;in one (this requires that opam has been compiled with a built&#45;in solver)&#46; This is equivalent to setting <B>$OPAMNOASPCUD</B> or <B>$OPAMUSEINTERNALSOLVER</B>&#46;
<DT id="58"><B>&#45;v</B>, <B>&#45;&#45;verbose</B><DD>
Be more verbose&#46; One <B>&#45;v</B> shows all package commands, repeat to also display commands called internally (e&#46;g&#46; <I>tar</I>, <I>curl</I>, <I>patch</I> etc&#46;) Repeating <I>n</I> times is equivalent to setting <B>$OPAMVERBOSE</B> to &quot;<I>n</I>&quot;&#46;
<DT id="59"><B>&#45;&#45;version</B><DD>
Show version information&#46;
<DT id="60"><B>&#45;w</B>, <B>&#45;&#45;working&#45;dir</B><DD>
Whenever updating packages that are bound to a local, version&#45;controlled directory, update to the current working state of their source instead of the last committed state, or the ref they are pointing to&#46; This only affects packages explicitly listed on the command&#45;line&#46;It can also be set with <B>$OPAMWORKINGDIR</B>&#46;
<DT id="61"><B>&#45;y</B>, <B>&#45;&#45;yes</B><DD>
Answer yes to all yes/no questions without prompting&#46; This is equivalent to setting <B>$OPAMYES</B> to &quot;true&quot;&#46;
</DL>
<A NAME="lbAJ">&nbsp;</A>
<H2>ENVIRONMENT VARIABLES</H2>
<P>
Opam makes use of the environment variables listed here&#46; Boolean variables should be set to &quot;0&quot;, &quot;no&quot;, &quot;false&quot; or the empty string to disable, &quot;1&quot;, &quot;yes&quot; or &quot;true&quot; to enable&#46;
<P>
<I>OPAMALLPARENS</I> surround all filters with parenthesis
<P>
<I>OPAMAUTOREMOVE</I> see remove option `&#45;&#45;auto&#45;remove`
<P>
<I>OPAMBESTEFFORT</I> see option `&#45;&#45;best&#45;effort`
<P>
<I>OPAMBESTEFFORTPREFIXCRITERIA</I> sets the string that must be prepended to the criteria when the `&#45;&#45;best&#45;effort` option is set, and is expected to maximise the `opam&#45;query` property in the solution
<P>
<I>OPAMCOLOR</I>, when set to <I>always</I> or <I>never</I>, sets a default value for the &#45;&#45;color option&#46;
<P>
<I>OPAMCRITERIA</I> specifies user <I>preferences</I> for dependency solving&#46; The default value depends on the solver version, use `config report` to know the current setting&#46; See also option &#45;&#45;criteria
<P>
<I>OPAMCUDFFILE file</I> save the cudf graph to <I>file</I>&#45;actions&#45;explicit&#46;dot
<P>
<I>OPAMCURL</I> can be used to select a given &#39;curl&#39; program&#46; See <I>OPAMFETCH</I> for more options&#46;
<P>
<I>OPAMDEBUG</I> see options `&#45;&#45;debug&#39; and `&#45;&#45;debug&#45;level&#39;&#46;
<P>
<I>OPAMDOWNLOADJOBS</I> sets the maximum number of simultaneous downloads&#46;
<P>
<I>OPAMDRYRUN</I> see option `&#45;&#45;dry&#45;run`
<P>
<I>OPAMEDITOR</I> sets the editor to use for opam file editing, overrides <I>$EDITOR</I> and <I>$VISUAL</I>
<P>
<I>OPAMERRLOGLEN</I> sets the number of log lines printed when a sub&#45;process fails&#46; 0 to print all&#46;
<P>
<I>OPAMEXTERNALSOLVER</I> see option `&#45;&#45;solver&#39;&#46;
<P>
<I>OPAMFAKE</I> see option `&#45;&#45;fake`
<P>
<I>OPAMFETCH</I> specifies how to download files: either `wget&#39;, `curl&#39; or a custom command where variables <B>%{url}%</B>, <B>%{out}%</B>, <B>%{retry}%</B>, <B>%{compress}%</B> and <B>%{checksum}%</B> will be replaced&#46; Overrides the &#39;download&#45;command&#39; value from the main config file&#46;
<P>
<I>OPAMFIXUPCRITERIA</I> same as <I>OPAMUPGRADECRITERIA</I>, but specific to fixup
<P>
<I>OPAMIGNORECONSTRAINTS</I> see install option `&#45;&#45;ignore&#45;constraints&#45;on`
<P>
<I>OPAMIGNOREPINDEPENDS</I> see option `&#45;&#45;ignore&#45;pin&#45;depends`
<P>
<I>OPAMJOBS</I> sets the maximum number of parallel workers to run&#46;
<P>
<I>OPAMJSON</I> log json output to the given file (use character `%&#39; to index the files)
<P>
<I>OPAMLOCKED</I> see install option `&#45;&#45;locked`
<P>
<I>OPAMLOGS logdir</I> sets log directory, default is a temporary directory in /tmp
<P>
<I>OPAMMAKECMD</I> set the system make command to use
<P>
<I>OPAMNOAUTOUPGRADE</I> disables automatic internal upgrade of repositories in an earlier format to the current one, on &#39;update&#39; or &#39;init&#39;&#46;
<P>
<I>OPAMKEEPLOGS</I> tells opam to not remove some temporary command logs and some backups&#46; This skips some finalisers and may also help to get more reliable backtraces
<P>
<I>OPAMLOCKRETRIES</I> sets the number of tries after which opam gives up acquiring its lock and fails&#46; &lt;= 0 means infinite wait&#46;
<P>
<I>OPAMMERGEOUT</I> merge process outputs, stderr on stdout
<P>
<I>OPAMNO</I> answer no to any question asked&#46;
<P>
<I>OPAMNOASPCUD</I> Deprecated&#46;
<P>
<I>OPAMNOCHECKSUMS</I> enables option &#45;&#45;no&#45;checksums when available&#46;
<P>
<I>OPAMNOSELFUPGRADE</I> see option `&#45;&#45;no&#45;self&#45;upgrade&#39;&#46;
<P>
<I>OPAMPINKINDAUTO</I> sets whether version control systems should be detected when pinning to a local path&#46; Enabled by default since 1&#46;3&#46;0&#46;
<P>
<I>OPAMPRECISETRACKING</I> fine grain tracking of directories
<P>
<I>OPAMREQUIRECHECKSUMS</I> Enables option `&#45;&#45;require&#45;checksums&#39; when available (e&#46;g&#46; for `opam install`)&#46;
<P>
<I>OPAMRETRES</I> sets the number of tries before failing downloads&#46;
<P>
<I>OPAMROOT</I> see option `&#45;&#45;root&#39;&#46; This is automatically set by `opam env &#45;&#45;root=DIR &#45;&#45;set&#45;root&#39;&#46;
<P>
<I>OPAMROOTISOK</I> don&#39;t complain when running as root&#46;
<P>
<I>OPAMSAFE</I> see option `&#45;&#45;safe&#39;
<P>
<I>OPAMSHOW</I> see option `&#45;&#45;show`
<P>
<I>OPAMSKIPUPDATE</I> see option `&#45;&#45;skip&#45;updates`
<P>
<I>OPAMSKIPVERSIONCHECKS</I> bypasses some version checks&#46; Unsafe, for compatibility testing only&#46;
<P>
<I>OPAMSOLVERTIMEOUT</I> change the time allowance of the solver&#46; Default is 60&#46;0, set to 0 for unlimited&#46; Note that all solvers may not support this option&#46;
<P>
<I>OPAMSTATUSLINE</I> display a dynamic status line showing what&#39;s currently going on on the terminal&#46; (one of one of `always&#39;, `never&#39; or `auto&#39;)
<P>
<I>OPAMSTATS</I> display stats at the end of command
<P>
<I>OPAMSTRICT</I> fail on inconsistencies (file reading, switch import, etc&#46;)
<P>
<I>OPAMSWITCH</I> see option `&#45;&#45;switch&#39;&#46; Automatically set by `opam env &#45;&#45;switch=SWITCH &#45;&#45;set&#45;switch&#39;&#46;
<P>
<I>OPAMUNLOCKBASE</I> see install option `&#45;&#45;unlock&#45;base`
<P>
<I>OPAMUPGRADECRITERIA</I> specifies user <I>preferences</I> for dependency solving when performing an upgrade&#46; Overrides <I>OPAMCRITERIA</I> in upgrades if both are set&#46; See also option &#45;&#45;criteria
<P>
<I>OPAMUSEINTERNALSOLVER</I> see option `&#45;&#45;use&#45;internal&#45;solver&#39;&#46;
<P>
<I>OPAMUSEOPENSSL</I> force openssl use for hash computing
<P>
<I>OPAMUTF8</I> use UTF8 characters in output (one of one of `always&#39;, `never&#39; or `auto&#39;)&#46; By default `auto&#39;, which is determined from the locale)&#46;
<P>
<I>OPAMUTF8MSGS</I> use extended UTF8 characters (camels) in opam messages&#46; Implies <I>OPAMUTF8</I>&#46; This is set by default on OSX only&#46;
<P>
<I>OPAMVALIDATIONHOOK hook</I> if set, uses the `%{hook%}` command to validate an opam repository update
<P>
<I>OPAMVAR_var</I> overrides the contents of the variable <I>var</I> when substituting `%{var}%` strings in `opam` files&#46;
<P>
<I>OPAMVAR_package_var</I> overrides the contents of the variable <I>package:var</I> when substituting `%{package:var}%` strings in `opam` files&#46;
<P>
<I>OPAMVERBOSE</I> see option `&#45;&#45;verbose&#39;&#46;
<P>
<I>OPAMWORKINGDIR</I> see option `&#45;&#45;working&#45;dir`
<P>
<I>OPAMYES</I> see option `&#45;&#45;yes&#39;&#46;
<A NAME="lbAK">&nbsp;</A>
<H2>EXIT STATUS</H2>
<P>
As an exception to the following, the `exec&#39; command returns 127 if the command was not found or couldn&#39;t be executed, and the command&#39;s exit value otherwise&#46;
<DL COMPACT>
<DT id="62">0<DD>
Success, or true for boolean queries&#46;
<DT id="63">1<DD>
False&#46; Returned when a boolean return value is expected, e&#46;g&#46; when running with <B>&#45;&#45;check</B>, or for queries like <B>opam lint</B>&#46;
<DT id="64">2<DD>
Bad command&#45;line arguments, or command&#45;line arguments pointing to an invalid context (e&#46;g&#46; file not following the expected format)&#46;
<DT id="65">5<DD>
Not found&#46; You requested something (package, version, repository, etc&#46;) that couldn&#39;t be found&#46;
<DT id="66">10<DD>
Aborted&#46; The operation required confirmation, which wasn&#39;t given&#46;
<DT id="67">15<DD>
Could not acquire the locks required for the operation&#46;
<DT id="68">20<DD>
There is no solution to the user request&#46; This can be caused by asking to install two incompatible packages, for example&#46;
<DT id="69">30<DD>
Error in package definition, or other metadata files&#46; Using <B>&#45;&#45;strict</B> raises this error more often&#46;
<DT id="70">31<DD>
Package script error&#46; Some package operations were unsuccessful&#46; This may be an error in the packages or an incompatibility with your system&#46; This can be a partial error&#46;
<DT id="71">40<DD>
Sync error&#46; Could not fetch some remotes from the network&#46; This can be a partial error&#46;
<DT id="72">50<DD>
Configuration error&#46; Opam or system configuration doesn&#39;t allow operation, and needs fixing&#46;
<DT id="73">60<DD>
Solver failure&#46; The solver failed to return a sound answer&#46; It can be due to a broken external solver, or an error in solver configuration&#46;
<DT id="74">99<DD>
Internal error&#46; Something went wrong, likely due to a bug in opam itself&#46;
<DT id="75">130<DD>
User interrupt&#46; SIGINT was received, generally due to the user pressing Ctrl&#45;C&#46;
</DL>
<A NAME="lbAL">&nbsp;</A>
<H2>FURTHER DOCUMENTATION</H2>
<P>
See <A HREF="https://opam">https://opam</A>&#46;ocaml&#46;org/doc&#46;
<A NAME="lbAM">&nbsp;</A>
<H2>AUTHORS</H2>
<P>
Vincent Bernardoff &lt;<A HREF="mailto:vb@luminar">vb@luminar</A>&#46;eu&#46;org&gt;
<P>
<P>
Raja Boujbel &lt;raja&#46;<A HREF="mailto:boujbel@ocamlpro">boujbel@ocamlpro</A>&#46;com&gt;
<P>
<P>
Roberto Di Cosmo &lt;<A HREF="mailto:roberto@dicosmo">roberto@dicosmo</A>&#46;org&gt;
<P>
<P>
Thomas Gazagnaire &lt;<A HREF="mailto:thomas@gazagnaire">thomas@gazagnaire</A>&#46;org&gt;
<P>
<P>
Louis Gesbert &lt;louis&#46;<A HREF="mailto:gesbert@ocamlpro">gesbert@ocamlpro</A>&#46;com&gt;
<P>
<P>
Fabrice Le Fessant &lt;Fabrice&#46;<A HREF="mailto:Le_fessant@inria">Le_fessant@inria</A>&#46;fr&gt;
<P>
<P>
Anil Madhavapeddy &lt;<A HREF="mailto:anil@recoil">anil@recoil</A>&#46;org&gt;
<P>
<P>
Guillem Rieu &lt;guillem&#46;<A HREF="mailto:rieu@ocamlpro">rieu@ocamlpro</A>&#46;com&gt;
<P>
<P>
Ralf Treinen &lt;ralf&#46;treinen@pps&#46;jussieu&#46;fr&gt;
<P>
<P>
Frederic Tuong &lt;<A HREF="mailto:tuong@users">tuong@users</A>&#46;gforge&#46;inria&#46;fr&gt;
<A NAME="lbAN">&nbsp;</A>
<H2>BUGS</H2>
<P>
Check bug reports at <A HREF="https://github">https://github</A>&#46;com/ocaml/opam/issues&#46;
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="76"><A HREF="#lbAB">NAME</A><DD>
<DT id="77"><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT id="78"><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT id="79"><A HREF="#lbAE">ARGUMENTS</A><DD>
<DT id="80"><A HREF="#lbAF">OPTIONS</A><DD>
<DT id="81"><A HREF="#lbAG">CONFIGURATION FILE</A><DD>
<DT id="82"><A HREF="#lbAH">PACKAGE BUILD OPTIONS</A><DD>
<DT id="83"><A HREF="#lbAI">COMMON OPTIONS</A><DD>
<DT id="84"><A HREF="#lbAJ">ENVIRONMENT VARIABLES</A><DD>
<DT id="85"><A HREF="#lbAK">EXIT STATUS</A><DD>
<DT id="86"><A HREF="#lbAL">FURTHER DOCUMENTATION</A><DD>
<DT id="87"><A HREF="#lbAM">AUTHORS</A><DD>
<DT id="88"><A HREF="#lbAN">BUGS</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:20 GMT, March 31, 2021
</BODY>
</HTML>