Является ли Cargo зависимостью для создания самого Cargo из исходников?

В Cargo README говорится следующее:

Компиляция из исходного кода

Для сборки Cargo требуются следующие инструменты и пакеты:

  • python
  • curl (в Unix)
  • cmake
  • Заголовки OpenSSL (только для Unix, это пакет libssl-dev в ubuntu)
  • cargo и rustc

Во-первых, вы захотите проверить этот репозиторий

git clone --recursive https://github.com/rust-lang/cargo 
cd cargo

Если cargo уже установлен, вы можете просто запустить:

cargo build --release

В противном случае вы также можете использовать более традиционный подход:

./configure
make
make install

Это указывает на то, что Cargo является зависимостью для сборки Cargo, но также, похоже, указывает на то, что если Cargo не установлен, то должен работать метод, начинающийся с ./configure.

Когда я клонирую это репо и запускаю ./configure, я получаю сообщение об ошибке

...
configure: found cmake
configure: found make
configure: recreating config.tmp
configure: 
configure: processing ./configure args
configure: 
configure: CFG_PREFIX           := /usr/local 
configure: CFG_LOCAL_RUST_ROOT  :=  
configure: CFG_CARGO            := cargo 
configure: CFG_RUSTC            := rustc 
configure: CFG_RUSTDOC          := rustdoc 
configure: CFG_CARGO            :=  
configure: error: needed, but unable to find any of: CFG_CARGO cargo

Означает ли это, что я не могу собрать Cargo из исходников, не установив Cargo? Может быть, аргумент configure отсутствует?

Я собрал Rust из исходного кода, потому что я не являюсь привилегированным пользователем в этой системе и установил его в моем пользовательском каталоге.


person turbulencetoo    schedule 24.03.2017    source источник
comment
Вам не нужно создавать Rust или Cargo самостоятельно только потому, что вы не являетесь привилегированным пользователем. Rustup устанавливает все в ваш домашний каталог.   -  person Shepmaster    schedule 24.03.2017
comment
Хорошо, я буду ...   -  person turbulencetoo    schedule 24.03.2017


Ответы (1)


Согласно обсуждению здесь Проблема 3772:

Действительно, для компиляции Cargo требуется Cargo. В будущих выпусках Rust у нас будет --enable-extended, который скомпилирует Cargo, а также Rust.

Но можно было найти некоторые скрипты начальной загрузки груза. Например: https://github.com/dhuseby/cargo-bootstrap.

person Laurence    schedule 26.03.2017