Rust — не удалось создать пакет

#rust #rust-cargo

#Ржавчина #rust-груз

Вопрос:

Я следую основным шагам здесь: file:///Users/leongaban/.rustup/toolchains/stable-x86_64-apple-darwin/share/doc/rust/html/book/ch01-03-hello-cargo.html

Я проверил свою грузовую версию и cd .. создал резервную копию в своих корневых папках проекта и выполнил следующую команду для создания нового проекта:

 cargo new hello_cargo
  

И он выдал следующую ошибку:

ошибка: не удалось создать пакет hello_cargo в /Users/leongaban/projects/rust_projects/hello_cargo

Однако, когда я запускаю ls , он создал папку? Итак, мне любопытно, как мне избежать этой ошибки в будущем?

 rust_projects % cargo new hello_cargo
error: Failed to create package `hello_cargo` at `/Users/leongaban/projects/rust_projects/hello_cargo`

Caused by:
  could not find '/Users/leongaban/.git-templates/' to stat: No such file or directory; class=Os (2); code=NotFound (-3)
rust_projects % ls
hello_cargo hello_world
  

Комментарии:

1. По умолчанию cargo пытается создать репозиторий Git в проекте. Если вам это не нужно, просто запустите cargo new --vcs none hello_cargo .

2. Или установите git, конечно.

Ответ №1:

Возможно, это вызвано git init командой, вызываемой при запуске cargo new , исходный код выглядит следующим образом:

 if !path.join(".git").exists() {
    // Temporary fix to work around bug in libgit2 when creating a
    // directory in the root of a posix filesystem.
    // See: https://github.com/libgit2/libgit2/issues/5130
    paths::create_dir_all(path)?;
    GitRepo::init(path, config.cwd())?;
}
  

И .git-templates это задокументировано в разделе git init КАТАЛОГА ШАБЛОНОВ.

Каталог шаблонов будет одним из следующих (по порядку):

  1. аргумент, указанный с параметром —template;
  2. содержимое переменной среды $GIT_TEMPLATE_DIR;
  3. переменная конфигурации init.templateDir; или
  4. каталог шаблонов по умолчанию: /usr/share/git-core/templates .

Поэтому вы должны проверить выше 4 возможных причин для установки несуществующей папки '/Users/leongaban/.git-templates/' как git tempalte dir при запуске git init .

Ответ №2:

У меня тоже была эта проблема. Моя среда:

   System: MacOS Catalina (version: 10.15.7)
  Rustc version: rustc 1.51.0
  

Решение:

  1. rustup self install
  2. curl https://sh.rustup.rs -sSf | sh

Ответ №3:

У меня был шаблон, определенный в моем gitconfig

 [init]
        templatedir = /Users/johndye/.git-templates
  

Я не уверен, когда это было добавлено или почему, но комментирование помогло мне преодолеть эту ошибку