LINUX.ORG.RU

Народ подскажите как установить rust offline в linux

 


0

2

Пытаюсь установить rust offline в linux. Нашел несколько дистрибутивов. Пробовал устанавливать через https://static.rust-lang.org/dist/rust-1.68.0-i686-unknown-linux-gnu.tar.gz распаковывал архив и через баш запускал скрипт в корне распакованного архива. В результате получаю запись rust успешно установлен. Однако, никак не могу выполнить в нем rustup toolchain install i686-unknown-linux-gnu по умолчеанию rust не находит toolchain i686-unknown-linux-gnu и cargo build --release и здесь тоже ошибка которая ссылается на предыдущую ошибку. Кто «в теме» , подскажите, пожалуйста, что я делаю не так? P.S.Теже проблемы имею и при установке дистрибутива используя rustup.

Перемещено hobbit из general


Ответ на: комментарий от Dark_SavanT

А как получить список этих таргетов какой командой? И есть ли где-нитбудь подробное описание процесса установки для offline случая в линукс?

xxoaea
() автор топика
Последнее исправление: xxoaea (всего исправлений: 1)
Ответ на: комментарий от xxoaea

А как получить список этих таргетов какой командой?

Смотреть тут https://forge.rust-lang.org/infra/other-installation-methods.html

И есть ли где-нитбудь подробное описание процесса установки для offline случая в линукс?

Как и всё, что ставиться из архивов. Как-то так:

$ aria2c https://static.rust-lang.org/dist/rust-1.68.0-x86_64-unknown-linux-gnu.tar.gz
$ tar -xf rust-1.68.0-x86_64-unknown-linux-gnu.tar.gz 
$ ./rust-1.68.0-x86_64-unknown-linux-gnu/install.sh --help
$ ./rust-1.68.0-x86_64-unknown-linux-gnu/install.sh --prefix=/home/user1/opt/rust
$ export LD_LIBRARY_PATH=/home/user1/opt/rust/lib
$ export PATH=/home/user1/opt/rust/bin:/home/user1/opt/rust/libexec:$PATH
$ cargo new hello_world
$ cd hello_world/
$ cargo run
   Compiling hello_world v0.1.0 (/home/user1/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.89s
     Running `target/debug/hello_world`
Hello, world!
AlexVR ★★★★★
()

P.S.Теже проблемы имею и при установке дистрибутива используя rustup.

Т.е. после?

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Тогда смотри где нагадил. Что в PATH и по какому пути вызывается cargo.

Всё что ставиться не пакетным менеджером нужно размещать в home или /opt. Тогда проще снести будет.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

Спасибо попробую по результатам отпишусь. А не подскажите порядок установки aria2c, просто у меня друзья недавно спрашивали -оказывается мануала по установке не достаточно.

xxoaea
() автор топика
Последнее исправление: xxoaea (всего исправлений: 1)
Ответ на: комментарий от xxoaea

aria2c – это просто утилита для скачивания файлов. Можно просто сохранить браузером, можно использовать wget или curl. Я привёл эту команду только, что бы показать какой файл я скачал и использовал.

Я не телепат, что бы узнать твою ОС, у меня это делается как sudo apt install aria2.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

Пробовал данную последовательность установки rust в результате получил:

sudo bash /tmp/rust-1.67.1-i686-unknown-linux-gnu/install.sh --prefix=/home/mint/opt/rust

install: creating uninstall script at /home/mint/opt/rust/lib/rustlib/uninstall.sh

install: installing component 'rustc'

install: installing component 'rust-std-i686-unknown-linux-gnu'

install: installing component 'rust-docs'

install: installing component 'rust-docs-json-preview'

install: installing component 'cargo'

install: installing component 'rustfmt-preview'

install: installing component 'rust-analyzer-preview'

install: installing component 'llvm-tools-preview'

install: installing component 'clippy-preview'

install: installing component 'rust-analysis-i686-unknown-linux-gnu'

rust installed.

$ cd /tmp/rust-1.67.1-i686-unknown-linux-gnu/

$ export LD_LIBRARY_PATH=/home/user1/opt/rust/lib

$ export PATH=/home/user1/opt/rust/bin:/home/user1/opt/rust/libexec:$PATH

$ cargo new hello_world

Created binary (application) `hello_world` package $ cd hello_world/

$ cargo run

Compiling hello_world v0.1.0 (/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world)

error: linking with `cc` failed: exit status: 1 | = note: «cc» "-m32" «/tmp/rustcD7VlOb/symbols.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.1wp0s3x6jpdjue34.rcgu.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.2djjb0rdoqj1tmir.rcgu.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.3c64mvahqbs5bom1.rcgu.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.3fc2ywey5o75n8o3.rcgu.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.4oji1gjf4jufmpst.rcgu.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.ndl1oxwxt1astyp.rcgu.o» «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829.4g4er343xrdy78nd.rcgu.o» "-Wl,--as-needed" "-L" «/tmp/rust-1.67.1-i686-unknown-linux-gnu/hello_world/target/debug/deps» "-L" «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib» "-Wl,-Bstatic" «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libstd-181e3e46aa7bfb98.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libpanic_unwind-0cdb2f6ac634c1a2.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libobject-0ea383c070fc6ba2.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libmemchr-ae96e4b559973d55.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libaddr2line-5f1e5fa1aa582dc6.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libgimli-1183b972d6b8ce9c.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/librustc_demangle-28c2ea0125c106f0.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libstd_detect-4bb50bb80ff9d5d9.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libhashbrown-66631a77f2f09ca9.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libminiz_oxide-d6fe3615ed5d4203.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libadler-e403536cce1f8cfd.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/librustc_std_workspace_alloc-6eadcf83807829a3.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libunwind-98c7e738f0d905b9.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libcfg_if-b93299f60603aaee.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/liblibc-6ac1892d81cd9d31.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/liballoc-546a4a503ef2f7a3.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/librustc_std_workspace_core-cd488050556383f2.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libcore-f250f030fc22ddff.rlib» «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib/libcompiler_builtins-fcbe5e9d0754c110.rlib» "-Wl,- Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" «/home/user1/opt/rust/lib/rustlib/i686-unknown-linux-gnu/lib» "-o" «/tmp/rust-1.67.1-i686-unknown-linux- gnu/hello_world/target/debug/deps/hello_world-267a6e8ab4578829» "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"

= note: /usr/bin/ld: cannot find Scrt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory /usr/bin/ld: cannot find -lutil

/usr/bin/ld: cannot find -lrt

/usr/bin/ld: cannot find -lpthread

/usr/bin/ld: cannot find -lm

/usr/bin/ld: cannot find -ldl

/usr/bin/ld: cannot find -lc

/usr/bin/ld: cannot find crtn.o: No such file or directory

collect2: error: ld returned 1 exit status

error: could not compile `hello_world` due to previous error

xxoaea
() автор топика
Последнее исправление: xxoaea (всего исправлений: 1)
Ответ на: комментарий от AlexVR
  1. Потому как у меня платформа i686 - старое железо будь железо поновее вопрос не стоял бы вовсе т.е есть готовые сборки того приложения на руст которое хочу воссоздать для своего железа
  2. понял переделаю, спасибо
xxoaea
() автор топика
Ответ на: комментарий от xxoaea
/usr/bin/ld: cannot find Scrt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find -lutil
/usr/bin/ld: cannot find -lrt
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find crtn.o: No such file or directory

Как ты этого добился? 🤯

У тебя работает, следующее?

gcc -lm -pthread hello_world.c

З.Ы.: Что-то мне подсказывает, что компиляция rust на таком железе будет жёстким испытанием. Рано или поздно упрёшься в память и время компиляции.

AlexVR ★★★★★
()
Ответ на: комментарий от xxoaea
$ sudo bash /tmp/rust-1.67.1-i686-unknown-linux-gnu/install.sh --prefix=/home/mint/opt/rust

Зачем ты добавил sudo? Всё что я делал, было из под обычного пользователя. И обрати внимание, что установка идёт в домашнюю папку пользователя.

Возьми за практику точно понимать все команды выполняемые через sudo.

$ cd /tmp/rust-1.67.1-i686-unknown-linux-gnu/
...
$ cargo new hello_world

Зачем ты перешёл в эту директорию, и создал в ней проект?

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

А не надо было? По поводу sudo точно не помню но вроде или это не влияет на вывод команды (т.е. с sudo и без него вывод одинаков) или без sudo не работает с егодня проверю по результатам отпишусь.

xxoaea
() автор топика
Ответ на: комментарий от AlexVR

Все скорректировал вот рез-т

$ cargo run

error: could not find Cargo.toml in /home/mint or any parent directory

$ cp /home/mint/hello_world/Cargo.toml /home/mint

cargo run

error: failed to parse manifest at /home/mint/Cargo.toml

Caused by:

no targets specified in the manifest

either src/lib.rs, src/main.rs, a [lib] section, or [[bin]]

section must be present

xxoaea
() автор топика
Последнее исправление: xxoaea (всего исправлений: 1)
Ответ на: комментарий от xxoaea

Сравни

$ cargo run

error: could not find Cargo.toml in /home/mint or any parent directory

и

$ cargo new hello_world
$ cd hello_world/
$ cargo run

З.Ы.: Ещё раз, используй форматирование при написании сообщений: https://www.linux.org.ru/help/markdown.md

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR
$ cargo new hello_world

Означает: создать шаблон проекта в директории hello_world

$ cd hello_world/
$ cargo run

Перейти в созданную директорию, скомпилировать и запустить проект.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

А качественный конвертер не посоветуешь для линукса чтобы то как я сохраняю текст там сразу преобразовывалось (корректно) в Markdown, чтобы не заморачиваться с тутушним форматированием?

xxoaea
() автор топика
Ответ на: комментарий от xxoaea

А то, что надо было сменить рабочий каталог в голову не пришло?

Когда ты даёшь команду

cargo run

То cargo ищет файл Cargo.toml в текущем каталоге и его родителей.

Для примера:

$ cd ~/my_projects/
my_projects$ cargo new bar
     Created binary (application) `bar` package
my_projects$ cargo new foo
     Created binary (application) `foo` package
my_projects$ tree
.
├── bar
│   ├── Cargo.toml
│   └── src
│       └── main.rs
└── foo
    ├── Cargo.toml
    └── src
        └── main.rs

4 directories, 4 files
my_projects$ cd bar
my_projects/bar$ cargo build
   Compiling bar v0.1.0 (/my_projects/bar)
    Finished dev [unoptimized + debuginfo] target(s) in 3.86s
my_projects/bar$ cd ../foo
my_projects/foo$ cargo build
   Compiling foo v0.1.0 (/tmp/my_projects/foo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.39s

Вникни, что и где происходит.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

Здесь все получилось, спасибо. Теперь вопросы вот в чем.

  1. В данном случае rust работает только в одной единственной вкладке (в той где его устанавливали) одного единственного

пользователя ну назвем его mint (в других вкладках тот же карго вызывается как обычная программа полным указанием пути к ней как

это исправить?

2 Не подскажешь как и куда мне добавить зависимости crate.io и надо ли архов crate.io перед этим распаковывать?

xxoaea
() автор топика
Ответ на: комментарий от xxoaea

(в других вкладках тот же карго вызывается как обычная программа полным указанием пути к ней как

это исправить?

Так а кто будет вызывать export .... в новых вкладках. Можешь поместить это в .bashrc

Не подскажешь как и куда мне добавить зависимости crate.io

Читай про offline сборку, там это было.

AlexVR ★★★★★
()
24 мая 2023 г.