Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: сборка github rust проекта оффлайн  (Прочитано 58690 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн soredid481

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Народ подскажите как собрать rust проект на github offline например этот https://github.com/pemistahl/grex содержимое я скачать также с гитхаба скачал крайты что делать дальше где их разместить и как правильно собрать оффлайн?

Morisson

  • Гость
Re: сборка github rust проекта оффлайн
« Ответ #1 : 11 Мая 2023, 17:14:53 »
Там все написано. Прямо с командами.

Morisson

  • Гость
Re: сборка github rust проекта оффлайн
« Ответ #2 : 11 Мая 2023, 17:16:01 »
Можно просто качнуть архив для линукс и запустить оттуда исполняемый файл (будет типа portable-версия)

Оффлайн soredid481

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #3 : 11 Мая 2023, 17:25:29 »
Можно просто качнуть архив для линукс и запустить оттуда исполняемый файл (будет типа portable-версия)
А можно об этом поподробнее?

Пользователь добавил сообщение 11 Мая 2023, 17:26:57:
Там все написано. Прямо с командами.

Дык не работает тот  вариант, кроме того у меня i386 архитектура

Morisson

  • Гость
Re: сборка github rust проекта оффлайн
« Ответ #4 : 11 Мая 2023, 17:36:05 »
Дык не работает тот  вариант
Что именно не работает, как это выглядит?

Morisson

  • Гость
Re: сборка github rust проекта оффлайн
« Ответ #5 : 11 Мая 2023, 17:37:31 »

Оффлайн soredid481

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #6 : 11 Мая 2023, 17:40:23 »
https://github.com/pemistahl/grex#6-how-to-build
Так пробуете?

Чуть позже пришлю вывод указанных команд с ошибками.

Morisson

  • Гость
Re: сборка github rust проекта оффлайн
« Ответ #7 : 11 Мая 2023, 17:41:10 »
кроме того у меня i386 архитектура
Ну и не факт, что вообще получится.

А можно об этом поподробнее?
Там есть ссылки для скачивания в самом начале. Качаете архив для Linux, распаковываете в нужную директорию, в каталоге находите исполняемый файл, проверяете на исполняемость и запускаете. Для удобства создайте ярлык запуска.

Оффлайн artenox

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #8 : 11 Мая 2023, 18:09:14 »
Компилируется вот так:   
sudo apt install git
sudo apt purge rustc cargo
sudo apt autoremove
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone https://github.com/pemistahl/grex
cd grex
cargo build --release -j2
Бинарник будет в /grex/target/release/grex, всё остальное можно удалить.   
Собрал для вас grex-v1.4.1-i686-unknown-linux-musl.

UPD: Rust создает папки .cargo и .rustup. Их тоже можно удалить потом. Некоторые приложения при сборке дополнительно требуют gcc, make, -dev пакеты. Но не grex.
« Последнее редактирование: 11 Мая 2023, 23:19:30 от artenox »

Оффлайн soredid481

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #9 : 12 Мая 2023, 17:12:47 »
Спасибо огромное за сборку пакета буду пробовать.

Оффлайн soredid481

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #10 : 17 Мая 2023, 16:28:00 »
Компилируется вот так:   
Код: [Выделить]
sudo apt install git
sudo apt purge rustc cargo
sudo apt autoremove
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone https://github.com/pemistahl/grex
cd grex
cargo build --release -j2

Так как rust на оффлайн машине делаю так

cd /tmp/
mint@mint /tmp $ tar -xf /media/mint/6288-3583/DATA/01032023/rust-1.67.1-i686-unknown-linux-gnu.tar.gz
mint@mint /tmp $
mint@mint /tmp $ ./rust-1.67.1-i686-unknown-linux-gnu/install.sh --help

Usage: ./rust-1.67.1-i686-unknown-linux-gnu/install.sh [options]

Options:

    --uninstall                      only uninstall from the installation prefix
    --destdir=[<none>]               set installation root
    --prefix=[/usr/local]            set installation prefix
    --without=[<none>]               comma-separated list of components to not install
    --components=[<none>]            comma-separated list of components to install
    --list-components                list available components
    --sysconfdir=[/etc]              install system configuration files
    --bindir=[/bin]                  install binaries
    --libdir=[/lib]                  install libraries
    --datadir=[/share]               install data
    --mandir=[/share/man]            install man pages in PATH
    --docdir=[\<default\>]           install documentation in PATH
    --disable-ldconfig               don't run ldconfig after installation (Linux only)
    --disable-verify                 don't obsolete
    --verbose                        run with verbose output

mint@mint /tmp $
mint@mint /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 'rust-demangler-preview'
install: installing component 'cargo'
install: installing component 'rustfmt-preview'
install: installing component 'rls-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'
install: WARNING: failed to run ldconfig. this may happen when not installing as root. run with --verbose to see the error

    rust installed.

mint@mint /tmp $ export LD_LIBRARY_PATH=/home/mint/opt/rust/lib
mint@mint /tmp $ export PATH=/home/mint/opt/rust/bin:/home/mint/opt/rust/libexec:$PATH

mint@mint /tmp $ source "$HOME/.cargo/env"
bash: /home/mint/.cargo/env: No such file or directory
mint@mint /tmp $ cd $HOME
mint@mint ~ $ source "$HOME/.cargo/env"
bash: /home/mint/.cargo/env: No such file or directory
mint@mint ~ $ cd /tmp/grex-1.4.1/
mint@mint /tmp/grex-1.4.1 $ cargo build --release -j2
    Updating crates.io index
warning: spurious network error (2 tries remaining): failed to resolve address for github.com: Temporary failure in name resolution; class=Net (12)
warning: spurious network error (1 tries remaining): failed to resolve address for github.com: Temporary failure in name resolution; class=Net (12)
error: Unable to update registry `crates-io`

Caused by:
  failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  network failure seems to have happened
  if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by:
  failed to resolve address for github.com: Temporary failure in name resolution; class=Net (12)
mint@mint /tmp/grex-1.4.1 $ man cargo
mint@mint /tmp/grex-1.4.1 $ cargo build --release -j2 --offline
error: no matching package named `atty` found
location searched: registry `crates-io`
required by package `grex v1.4.1 (/tmp/grex-1.4.1)`
As a reminder, you're using offline mode (--offline) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without the offline flag.
mint@mint /tmp/grex-1.4.1 $ cargo build --release --offline -j2
error: no matching package named `atty` found
location searched: registry `crates-io`
required by package `grex v1.4.1 (/tmp/grex-1.4.1)`
As a reminder, you're using offline mode (--offline) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without the offline flag.
mint@mint /tmp/grex-1.4.1 $ cargo build --offline --release -j2
error: no matching package named `atty` found
location searched: registry `crates-io`
required by package `grex v1.4.1 (/tmp/grex-1.4.1)`
As a reminder, you're using offline mode (--offline) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without the offline flag.
mint@mint /tmp/grex-1.4.1 $ cargo --offline build --release -j2
error: no matching package named `atty` found
location searched: registry `crates-io`
required by package `grex v1.4.1 (/tmp/grex-1.4.1)`
As a reminder, you're using offline mode (--offline) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without the offline flag.
mint@mint /tmp/grex-1.4.1 $ cargo --offline build  -j2
error: no matching package named `atty` found
location searched: registry `crates-io`
required by package `grex v1.4.1 (/tmp/grex-1.4.1)`
As a reminder, you're using offline mode (--offline) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without the offline flag.
mint@mint /tmp/grex-1.4.1 $ cargo build --offline  -j2
error: no matching package named `atty` found
location searched: registry `crates-io`
required by package `grex v1.4.1 (/tmp/grex-1.4.1)`
As a reminder, you're using offline mode (--offline) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without the offline flag.
Не подскажите как исправить ошибку?
« Последнее редактирование: 17 Мая 2023, 16:29:42 от soredid481 »

Оффлайн artenox

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #11 : 17 Мая 2023, 20:06:55 »
На оффлайн машине все равно нужен интернет для обновления crates, даже если использовать standalone installer. Поэтому в этом standalone смысла особого нет, к тому же с ним не добавить новые архитектуры через rustup. Но если уж использовать standalone, то я бы не использовал prefix. Тогда он установится в /usr/local (crates все равно будут скачиваться в .cargo) и не нужно будет указывать пути.

Оффлайн soredid481

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #12 : 18 Мая 2023, 17:01:40 »
На оффлайн машине все равно нужен интернет для обновления crates, даже если использовать standalone installer. Поэтому в этом standalone смысла особого нет, к тому же с ним не добавить новые архитектуры через rustup. Но если уж использовать standalone, то я бы не использовал prefix. Тогда он установится в /usr/local (crates все равно будут скачиваться в .cargo) и не нужно будет указывать пути.
А разве просто скачать необходимые crates и подставить их в rust для обновления нельзя?
А под prefix понимается
mint@mint /tmp $ export LD_LIBRARY_PATH=/home/mint/opt/rust/lib
mint@mint /tmp $ export PATH=/home/mint/opt/rust/bin:/home/mint/opt/rust/libexec:$PATH
?

Оффлайн artenox

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: сборка github rust проекта оффлайн
« Ответ #13 : 18 Мая 2023, 17:53:55 »
А разве просто скачать необходимые crates и подставить их в rust для обновления нельзя?
Я в этом не спец, может можно как-то. Можно склонировать, собрать прогу на одном компе, а потом перетащить папки .cargo и .rustup, чтобы скомпилировать там. Но какой смысл?
А под prefix понимается
Под prefix я понимал:
install.sh --prefix=/usr/local/usr/local по умолчанию, можно не указывать. Это стандартное расположение, уже находится в PATH. Но crates все равно будут потом скачиваться в .cargo.

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.