LINUX.ORG.RU

emerge не видит rust

 , , ,


0

2

при попытке собрать любой пакет, который требует раст, получаю ошибку

 * cargo build --release
error: rustup could not choose a version of cargo to run, because one wasn't specified explicitly, and no default is configured.
help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain.

при этом rustup default stable говорит, что using existing install for 'stable-x86_64-unknown-linux-gnu', и карго работает, и если тот же пакет с гитхаба скачать и вручную запустить cargo build то всё собирается и работает.

make.conf пробовал заменять на COMMON_FLAGS=«-O2»


Надо вернуть все как было и использовать штуки типа rustup под локальным пользователем и не ставить ничего в системное окружение.

Ставишь всё под пользователем, прописываешь в $PATH у пользователя локальные пути перед системными, добавляешь, если надо, ссылку на системное окружение (в генту с rustup-ом для этого идет скрипт rustup-init-gentoo).

Такой подход применим к любому дистрибутиву - с системой работает системный менеджер пакетов, а все локальные использовать в окружении пользователя.

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

Такой подход применим к любому дистрибутиву - с системой работает системный менеджер пакетов, а все локальные использовать в окружении пользователя.

бьёт @altwazar по голове надувные молотком с логотипом NixOS

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

Конечно. Ты сделаешь работу, которую сделали авторы пакетов в pip/gem/cpan/rustup для себя. И сам же будешь следить за апдейтами и исправлениями ошибок. И что самое интересное, никому больше этот опыт не понадобится. Он останется только у тебя на локалхосте.

shell-script ★★★★★
()
Ответ на: комментарий от t184256

Отлично, но речь идет от rustup-е.

А если человек не может разобраться с окружениями в классических дистрибутивах, то в nixos ему ловить нечего. Там всё крутиться вокруг создания и работы в этих окружениях, а про стандартные рецепты из документации того же rustup можно забыть.

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

А ты не захочешь.

Через год модули и библиотеки будут других версий с другими зависимостями и другим набором требований. Именно поэтому и существуют эти «помойки», что сторонние мантейнеры не успевают следить за всеми этими пакетами и управлением этим занимаются непосредственно разработчики на том языке, на котором пишут сами.

А с учётом специфики и переусложнённости nixpkg своевременное обновление подобных пакетов средствами дистрибутива грозит превратиться в работу сопоставимую по трудозатратам с разработкой самих модулей с нуля. Увы, с учётом языка описания nix-окружения и необходимость жонглировать слоями, частые изменения даже в небольших частях далеко не самая сильная часть nixOS и никто не будет этим заниматься самостоятельно и ревьювить и принимать твои изменения в основную репу.

N.B.: С каждым последующим твоим комментарием, мне всё больше кажется, что ты не пользуешься активно своей системой на базе nixpkg, а настроил какой-то околодефолт и максимум что делаешь, так это плановые апдейты из дефолтных реп.

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

Трудно ли с Nix? Трудно, я в прошлом месяце даже не смог запакетить одну смешанную Python+Go либу с невоспроизводимой кодогенерацией внутри, аж сдался и пошёл другим путем.

Альтернатива ли им — помойки в виде pypi, hackage и crates.io? Нет, потому что с Nix кроссэкостемные веселушки просто сложны, а с ними конструктивно невозможны. Cargo и pip никогда не дадут тебе ни нужной свежести хедеров ядра, ни занюханной сишной либы из твоего дистра, а проекты от них зависят. Я уж молчу об интеграции каждого из этих исчадий ада с каждым.

Как линукс и виндовс. В линукс сложное сложно, но винда просто не может.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)