Rust - cargo(ソース管理)

クラウディア 
1. 概要
2. ソース管理
3. ソース管理しない

1. 概要

 ビルド等に使う「cargo」は、実際は、ビルドシステムとパッケージ管理を行うためのもので、「rustc」でもビルドすることができるらしい。

2. パッケージ作成

 「cargo」は、パッケージ管理(ソース管理)を行うためのものなので、ビルドした際に、下記のディレクトリとファイルが作成されます。

.git
.gitignore
 上が、「.git」のデータベースのディレクトリ、下が、除外定義ファイルですな?。  実は、「git」には慣れていないので、よくわかっていない。  「git」以外のバージョン管理システムとも連動できるようで、「--vcs」というオプションを使用すると、なんかできるらしい。  他の何と連動できるのか、どのバージョン管理が使えるのかについて、書いてあるサイトがあったのですが、どこにあったか忘れちゃいました。  再度、見つけたらここに掲示しようと思います。  記憶に残っているものとは、違っているような気がします。  (参考サイトがあったのですが、リンク切れになりました)  記事によれば「--vcs none」で、パッケージ管理しないようにもできるし、下記のパッケージ管理システムが使用できるようです。 ・git(デフォルト) ・hg ・pijul ・fossil  わたしの場合、「git」もよう使いこなせないし、「git」以外は、さわったこともないのですがね。

3. ソース管理しない

 ソース管理しない場合は、下記のように「--vcs」オプションをつけます。

cargo new  --vcs=none パッケージ名
 ここで、パッケージ名名を「loop」にしようとしたら

$ cargo new --vcs=none loop
error: the name `loop` cannot be used as a package name, it is a Rust keyword
If you need a package name to not match the directory name, consider using --name flag.
If you need a binary with the name "loop", use a valid package name, and set the binary name to be different from the package. This can be done by setting the binary filename to `src/bin/loop.rs` or change the name in Cargo.toml with:

    [[bin]]
    name = "loop"
    path = "src/main.rs"
 怒られちゃいました。  「loop」ってのは、「Rust」のキーワードなので、パッケージ名には使えないんですって。  仕方ないわ、パッケージ名を「loops」にしてみます。  ははぁ、なるほどパッケージ管理しないのであれば、これで作成されるものは

.
`-- loops
    |-- Cargo.toml
    `-- src
        `-- main.rs
 だけでした。  わたしは、古い人間なもので、ソース管理には未だに、「Subversion」を使用しています。  なので、これでいいかな。
earthcar(アースカー)