You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Auto merge of #11030 - ehuss:update-installation-requirements, r=epage
Update compiling requirements.
This updates the requirements for building cargo itself. It adds a little more clarification on exactly what is needed, and what some of the options are.
This may be a little bit too much detail, as usually I suspect most users will just run `cargo build` and follow the error message instructions on what to install next.
Copy file name to clipboardExpand all lines: README.md
+35-5Lines changed: 35 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,14 +22,44 @@ locally you probably also have `cargo` installed locally.
22
22
23
23
## Compiling from Source
24
24
25
+
### Requirements
26
+
25
27
Cargo requires the following tools and packages to build:
26
28
27
-
*`git`
28
-
*`curl` (on Unix)
29
-
*`pkg-config` (on Unix, used to figure out the `libssl` headers/libraries)
30
-
* OpenSSL headers (only for Unix, this is the `libssl-dev` package on ubuntu)
31
-
* A C compiler [for your platform](https://github.com/rust-lang/cc-rs#compile-time-requirements)
32
29
*`cargo` and `rustc`
30
+
* A C compiler [for your platform](https://github.com/rust-lang/cc-rs#compile-time-requirements)
31
+
*`git` (to clone this repository)
32
+
33
+
**Other requirements:**
34
+
35
+
The following are optional based on your platform and needs.
36
+
37
+
*`pkg-config` — This is used to help locate system packages, such as `libssl` headers/libraries. This may not be required in all cases, such as using vendored OpenSSL, or on Windows.
38
+
* OpenSSL — Only needed on Unix-like systems and only if the `vendored-openssl` Cargo feature is not used.
39
+
40
+
This requires the development headers, which can be obtained from the `libssl-dev` package on Ubuntu or `openssl-devel` with apk or yum or the `openssl` package from Homebrew on macOS.
41
+
42
+
If using the `vendored-openssl` Cargo feature, then a static copy of OpenSSL will be built from source instead of using the system OpenSSL.
43
+
This may require additional tools such as `perl` and `make`.
44
+
45
+
On macOS, common installation directories from Homebrew, MacPorts, or pkgsrc will be checked. Otherwise it will fall back to `pkg-config`.
46
+
47
+
On Windows, the system-provided Schannel will be used instead.
48
+
49
+
LibreSSL is also supported.
50
+
51
+
**Optional system libraries:**
52
+
53
+
The build will automatically use vendored versions of the following libraries. However, if they are provided by the system and can be found with `pkg-config`, then the system libraries will be used instead:
54
+
55
+
*[`libcurl`](https://curl.se/libcurl/) — Used for network transfers.
56
+
*[`libgit2`](https://libgit2.org/) — Used for fetching git dependencies.
57
+
*[`libssh2`](https://www.libssh2.org/) — Used for SSH access to git repositories.
58
+
*[`libz`](https://zlib.net/) (aka zlib) — Used for data compression.
59
+
60
+
It is recommended to use the vendored versions as they are the versions that are tested to work with Cargo.
0 commit comments