Movatterモバイル変換


[0]ホーム

URL:


packageopam-core

  1. Overview
  2. Docs

You can search for identifiers within the package.

in-package search v0.2.0

Core library for opam 2.3

Install

Dune Dependency

Authors

Maintainers

Sources

2.3.0.tar.gz
md5=3a99d6d8c0394185f168fa0f085f6bb9
sha512=596d7b28f0cf9613dc7637aaeac45cc45f411a13286fea1cc81aeb0630c4f8a6dc2095d50db73229a255a3da3d9a08fe0993355a7fc64d3b16fd712789ff5f6e

Description

Small standard library extensions, and generic system interaction modules used by opam.

Published:14 Nov 2024

README

opam - A Package Manager for OCaml

master2.02.1
GH actions2.0 GH actions2.1 GH actions

Opam is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.

Opam was created and is maintained byOCamlPro.

To get started, checkout theInstall andUsage guides.

Compiling This Repo

Either from an existing opam installation, useopam pin add . if you cloned locally the repository,opam pin add git+https://github.com/ocaml/opam otherwise, or:

  • Make sure you have the required dependencies installed:

    • GNU make

    • OCaml >= 4.08 (or seebelow)

    • A C++ compiler (unless building without a solver, see./configure --without-mccs)

  • Run./configure. If you don't have the dependencies installed, this will locally take care of all OCaml dependencies for you (downloading them, unless you used the inclusive archive we provide for each release).

  • Runmake

  • Runmake install

This is all you need for installing and using opam, but if you want to use theopam-lib (to work on opam-related tools), you need to link it to installed libraries. It's easier to already have a working opam installation in this case, so you can do it as a second step.

  • Make sure to haveocamlfind,ocamlgraph,cmdliner >= 1.0.0,cudf >= 0.7,dose3 >= 6.1,re >= 1.9.0,opam-file-format installed. Or runopam install . --deps-only if you already have a working instance. Re-run./configure once done

  • Runmake libinstall at the end

Note: If you install on your system (without changing the prefix), you will need to install as root (sudo). Assudo does not propagate environment variables, there will be some errors. You can usesudo -E "PATH=$PATH" in order to ensure you have a good environment for install.

Developer Mode

If you are developing opam, you may enable developer features by including the--enable-developer-mode parameter with./configure.

Compiling on Native Windows

Cygwin (https://www.cygwin.com/setup-x86_64.exe) is always required to build opam on Windows.

The following Cygwin packages are required:

  • From Devel -make

  • From Devel -patch (not required if OCaml and all required packages are pre-installed)

  • From Devel -autoconf

  • From Devel -curl

  • From Devel -mingw64-i686-gcc-g++ &mingw64-x86_64-gcc-g++ (not required if building with MSVC)

Alternatively, having downloaded Cygwin's setup program, Cygwin can be installed using the following command line:

setup-x86_64 --root=C:\cygwin64 --quiet-mode --no-desktop --no-startmenu --packages=make,mingw64-i686-gcc-g++,mingw64-x86_64-gcc-g++,patch,autoconf,curl

The--no-desktop and--no-startmenu switches may be omitted in order to create shortcuts on the Desktop and Start Menu, respectively. Executed this way, setup will still be interactive, but the packages will have been preselected. To make setup fully unattended, choose a mirror URL from https://cygwin.com/mirrors.lst and add the--site switch to the command line (e.g.,--site=https://www.mirrorservice.org/sites/sourceware.org/pub/cygwin/).

It is recommended that you set theCYGWIN environment variable tonodosfilewarning winsymlinks:native.

Cygwin is started either from a shortcut or by running:

C:\cygwin64\bin\mintty -

We recommended you build opam outside Cygwin's root (so in/cygdrive/c/...). From an elevated Cygwin shell, edit/etc/fstab and ensure that the file's content is exactly:

none /cygdrive cygdrive noacl,binary,posix=0,user 0 0

The change is the addition of thenoacl option to the mount instructions for/cygdrive and this stops from Cygwin from attempting to emulate POSIX permissions over NTFS (which can result in strange and unnecessary permissions showing up in Windows Explorer). It is necessary to close and restart all Cygwin terminal windows after changing/etc/fstab.

Opam is able to be builtwithout a preinstalled OCaml compiler. For the MSVC ports of OCaml, the Microsoft Windows SDK 7 or later or Microsoft Visual Studio is required (https://www.microsoft.com/en-gb/download/details.aspx?id=8442 - either x86 or x64 may be installed, as appropriate to your system). It is not necessary to modify PATH, INCLUDE, or LIB. Opam's build system will automatically detect the required changes.

If OCaml is not preinstalled, run:

make compiler [OCAML_PORT=mingw64|mingw|msvc64|msvc|auto]

TheOCAML_PORT variable determines which flavour of Windows OCaml is compiled;auto will attempt to guess. As long as GCC isnot installed in Cygwin (i.e., the native C compilerfor Cygwin),OCAML_PORT does not need to be specified andauto will be assumed. Once the compiler is built, you may run:

./configure --with-vendored-deps

and build opam as above.

Compiling Without OCaml

make cold is provided as a facility to compile OCaml, then bootstrap opam. You don't need to run./configure in that case, but you may specifyCONFIGURE_ARGS if needed. E.g.,:

make cold CONFIGURE_ARGS="--prefix ~/local"make cold-install

NOTE: You'll still need GNU make.

Bug Tracker

Have a bug or a feature request? Please open an issue onour bug-tracker. Please search for existing issues before posting and include the output ofopam config report and any details that may help track down the issue.

Documentation

User Manual

The main documentation entry point to opam is the user manual, available usingopam --help. To get help for a specific command, useopam <command> --help.

Guides and Tutorials

A collection of guides and tutorials is availableonline. They are generated from the files indoc/pages.

API, Code Documentation, and Developer Manual

A more thorough technical document describing opam and specifying the package description format is available in thedeveloper manual.make doc will otherwise make the API documentation available underdoc/.

Community

Keep track of development and community news.

  • Have a question that's not a feature request or bug report?Ask on the mailing list.

  • Chat with fellow opamers on IRC. On theirc.libera.chat server, in the#ocaml or the#opam channel.

Contributing

We welcome contributions! Please use GitHub's pull-request mechanism against the master branch of theopam repository. If that's not an option for you, you can usegit format-patch and email us.

Versioning

The release cycle of the opam binary respectsSemantic Versioning. Note however that the version ordering used for user packages managed by opam follows the Debian definition (more details inthis section of the user manual).

Related Repositories

  • ocaml/opam-repository is the official repository for opam packages and compilers. A number of unofficial repositories are also available on the interwebs, for instance onGithub.

  • opam2web generates a collection of browsable HTML files for a given repository. It is used to generate http://opam.ocaml.org.

  • opam-rt is the regression framework for opam.

  • opam-publish is a tool to facilitate the creation, update, and publication of opam packages.

Copyright and license

The version comparison function insrc/core/opamVersionCompare.ml is part of the Dose library and Copyright 2011 Ralf Treinen.

All other code is:

Copyright 2012-2020 OCamlPro Copyright 2012 INRIA

All rights reserved. Opam is distributed under the terms of the GNU Lesser General Public License version 2.1, with the special exception on linking described in the file LICENSE.

Opam is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

Dependencies (15)

  1. conf-msvc64os = "win32" & os-distribution != "cygwinports"
  2. conf-msvc32os = "win32" & os-distribution != "cygwinports"
  3. host-system-msvcos = "win32" & os-distribution != "cygwinports"
  4. conf-mingw-w64-gcc-x86_64os = "win32" & os-distribution != "cygwinports"
  5. conf-mingw-w64-gcc-i686os = "win32" & os-distribution != "cygwinports"
  6. host-system-mingwos = "win32" & os-distribution != "cygwinports"
  7. uutf
  8. swhid_core
  9. jsonm
  10. sha>= "1.13"
  11. dune>= "2.8.0"
  12. re>= "1.9.0"
  13. ocamlgraph
  14. base-unix
  15. ocaml>= "4.08.0"

Dev Dependencies

None

Used by (7)

  1. builder-web
  2. dune-release>= "1.2.0" & != "1.4.0"
  3. odep>= "0.2.0"
  4. opam-format>= "2.3.0"
  5. opam-graph
  6. opam-publish>= "2.3.1"
  7. orb

Conflicts (1)

  1. extlib-compat

[8]ページ先頭

©2009-2025 Movatter.jp