どうも、仕事ではGolangばかり書いているメテオです。そろそろRustの本格導入もやっていきたいですね。
さて、今日後輩と話していて、 rustup component add
と cargo install
は同じじゃないのか? と聞かれたので答えると共にここにも残しておきます。
rustup component add
rustup component add
したとき、 https://static.rust-lang.org/dist/channel-rust-[toolchain].toml
から情報を取ってきます
- rustupを使ってinstallする場合はsourceではなくbinaryが降ってきます
- binaryはCI(Travis)で自動生成しており、CIがビルドに失敗した場合は降ってきません
cargo install
cargo install
したときは、crates.ioから情報を取ってきます
- defaultだとcrates.ioにpublishされた最新バージョンのsourceをダウンロードし、自分の端末上でbuildします
どっちがいいか
- 本来であればrustupでインストールできるものはrustupで統一すべきです。
- しかし、rustup componentで入れようとすると時々ビルドに失敗してbinaryが落とせないことが多いので、
cargo install
のほうが安定していると思います。
- 動かしているPCがあまりにも非力ではない限りは
cargo install
でもよさそうです。
補足
curl https://static.rust-lang.org/dist/channel-rust-nightly.toml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| [pkg.rustfmt-preview] version = "" [pkg.rustfmt-preview.target.aarch64-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.arm-unknown-linux-gnueabi] available = false
[pkg.rustfmt-preview.target.arm-unknown-linux-gnueabihf] available = false
[pkg.rustfmt-preview.target.armv7-unknown-linux-gnueabihf] available = false
[pkg.rustfmt-preview.target.i686-apple-darwin] available = false
[pkg.rustfmt-preview.target.i686-pc-windows-gnu] available = false
[pkg.rustfmt-preview.target.i686-pc-windows-msvc] available = false
[pkg.rustfmt-preview.target.i686-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.mips-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.mips64-unknown-linux-gnuabi64] available = false
[pkg.rustfmt-preview.target.mips64el-unknown-linux-gnuabi64] available = false
[pkg.rustfmt-preview.target.mipsel-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.powerpc-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.powerpc64-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.powerpc64le-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.s390x-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.x86_64-apple-darwin] available = false
[pkg.rustfmt-preview.target.x86_64-pc-windows-gnu] available = false
[pkg.rustfmt-preview.target.x86_64-pc-windows-msvc] available = false
[pkg.rustfmt-preview.target.x86_64-unknown-freebsd] available = false
[pkg.rustfmt-preview.target.x86_64-unknown-linux-gnu] available = false
[pkg.rustfmt-preview.target.x86_64-unknown-netbsd] available = false
|