Macにcargo-editをインストールする

『実践Rustプログラミング入門』を買ってきたので環境を構築しましたが、MacOS Catalina（10.15.6）だとcargo-editのインストール時にエラーになってしまったので、メモ

carg-editをインストールしようとすると下記のようなエラーが出ます。

```
$ cargo install cargo-edit
```

```
Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the
compilation process.

If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.

    $HOST = x86_64-apple-darwin
    $TARGET = x86_64-apple-darwin
    openssl-sys = 0.9.58

It looks like you're compiling on macOS, where the system contains a version of
OpenSSL 0.9.8. This crate no longer supports OpenSSL 0.9.8.

As a consumer of this crate, you can fix this error by using Homebrew to
install the `openssl` package, or as a maintainer you can use the openssl-sys
0.7 crate for support with OpenSSL 0.9.8.
```

どうもOpenSSLのバージョンが合っていないようです。Homebrewでopensslをインストールしろと書いてあるのでそうします。

```
$ brew update
$ brew install openssl
```
```
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/openssl%401.1-1.1.1g.catalina.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/1926679569c6af5337de812d86f4dad2b21ff883ad3a5d2cd9e8836ac5ac7ffe?re
######################################################################## 100.0%
==> Pouring openssl@1.1-1.1.1g.catalina.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl@1.1/certs

and run
  /usr/local/opt/openssl@1.1/bin/c_rehash

openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.

If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

==> Summary
🍺  /usr/local/Cellar/openssl@1.1/1.1.1g: 8,059 files, 18MB
==> `brew cleanup` has not been run in 30 days, running now...
Pruned 1 symbolic links and 2 directories from /usr/local
```

指示通り、中間証明書をキーチェーンに登録します。
finderで/usr/local/etc/openssl@1.1/を開きます
![finder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49834/df55c4cb-447b-ffac-4666-ac6c897b348b.png)

cert.pemをクリックしてキーチェーンアクセスで証明書を登録します。
![keychain.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49834/086762bc-25d1-30e1-5b7d-8f7832b22e81.png)

指示通り、下記コマンドを実行します。

```
$ /usr/local/opt/openssl@1.1/bin/c_rehash
```

このままだと、MacOSに入っているLibreSSLが使われるので、.zshrcにOpenSSLを使うように指定します。

```
$ echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
```

コンパイラがopenssl@1.1を見つけるには下記の記載が必要とのことなので、下記も追加します。

```
$ vi ~/.zshrc
```
```
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
```

読み込みます。

```
$ source ~/.zshrc
```

これでcargo-editをインストールできるようになりました。

```
$ cargo install cargo-edit
```

```
（省略）
Installed package `cargo-edit v0.6.0` (executables `cargo-add`, `cargo-rm`, `cargo-upgrade`)
```