Bug 49831

Summary: Много неочевидных телодвижений при установке rust
Product: Sisyphus Reporter: Garrett <AlexShevchenko>
Component: rustAssignee: Ajrat Makhmutov <ajratma>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: ajratma, ancieg, crux, legion, mike, rauty
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Garrett 2024-03-28 14:35:47 MSK
AltLinux Starter + XFCE, перешел на репозиторий Sisyphus.

Информация к размышлению)

Поставил пакет rust, установился только rustc, а cargo - нет.
Пришлось установить ещё пакет rust-cargo.
Считаю это неправильным, установка rust должна установить одновременно как rustc, так и cargo.
После этого сделал проект, скомпилировать не удалось - нет cc.
Тоже считаю это неправильным, скрипт установки rust должен проверить наличие нужного cc и доустановить.
Установил gcc13 - не помогло.
Установил просто gcc - заработало.
Comment 1 Ajrat Makhmutov 2024-05-14 12:18:40 MSK
Так как rustc всё же можно использовать без cargo,
считаю, что нужно оставить установку rustc без cargo.
С gcc согласен - он необходим rust'у.
Comment 2 Garrett 2024-05-15 08:34:57 MSK
Cargo необходим, и rust должен ставится в связке rustc + cargo + gcc.
Comment 3 Ajrat Makhmutov 2024-05-15 13:55:18 MSK
Почему cargo необходим? В будущем будут другие системы сборки для rust'а, да и сейчас есть: buck2 например.
Comment 4 Garrett 2024-05-15 14:00:04 MSK
Потому что запуск проекта, компиляция проекта(или пачки взаимосвязанных проектов), запуск тестов - это всё делает cargo.
Comment 5 Ajrat Makhmutov 2024-05-15 14:22:13 MSK
Как и почти все системы сборки любых языков.
Comment 6 Garrett 2024-05-15 14:30:57 MSK
Последний аргумент, взывающий к разуму)

Человек решил изучить rust. Установил пакет rust, открывает учебник на сайте rust'а, там написано "запустите cargo new project". Человек пускает и там не работает, спрашивает где-то на программистском форуме, там отвечают: "у меня на debian(ubunta, mint...) всё работает, ставь эту систему и не парься". Думаю, он послушает этого совета и уйдёт с проблемного для него Альта...
Comment 7 Anton Zhukharev 2024-05-15 14:47:37 MSK
(In reply to Garrett from comment #6)
> Последний аргумент, взывающий к разуму)
> 
> Человек решил изучить rust. Установил пакет rust, открывает учебник на сайте
> rust'а, там написано "запустите cargo new project". Человек пускает и там не
> работает, спрашивает где-то на программистском форуме, там отвечают: "у меня
> на debian(ubunta, mint...) всё работает, ставь эту систему и не парься".
> Думаю, он послушает этого совета и уйдёт с проблемного для него Альта...

Такому человеку крайне рекомендую меньше на всяких "программистких форумах" вопросы задавать несведущим людям и слушать их "советы". У нас Rust, видимо, собран отлично от Debian, но это не является проблемой. Если думаете иначе - пользуйтесь Debian.

Предлагаю закрыть репорт как NOTABUG.
Comment 8 Garrett 2024-05-15 14:57:13 MSK
Можно вообще ничего не делать, можно закрыть этот репорт, можно заблокировать меня чтобы не раздражал  - вы тут хозяева.

Я лишь указал, что по-моему мнению это неправильно.

Так же, как неправильно, что ваш python3 в системе поставляется без pip!!!

Удачи.
Comment 9 Ajrat Makhmutov 2024-05-15 15:11:22 MSK
(Ответ для Garrett на комментарий #8)
> Я лишь указал, что по-моему мнению это неправильно.
Мы ценим ваше мнение. Спасибо что написали. 

(Ответ для Anton Zhukharev на комментарий #7)
> Предлагаю закрыть репорт как NOTABUG.
Закрывать как NOTABUG не буду, gcc действительно нужен rust'у для линковки. Будет исправлено со следующей версией.
Comment 10 Anton Zhukharev 2024-05-15 15:14:09 MSK
(In reply to Garrett from comment #8)
> Так же, как неправильно, что ваш python3 в системе поставляется без pip!!!

pip не является частью стандартной библиотеки Python, поэтому в пакете python3 его нет - и это тоже не является проблемой.
Comment 11 Garrett 2024-05-15 15:19:44 MSK
(In reply to Anton Zhukharev from comment #10)
> (In reply to Garrett from comment #8)
> > Так же, как неправильно, что ваш python3 в системе поставляется без pip!!!
> 
> pip не является частью стандартной библиотеки Python, поэтому в пакете
> python3 его нет - и это тоже не является проблемой.

Но является важной частью экосистемы python, как и cargo для rust!
Comment 12 Repository Robot 2024-05-22 14:14:49 MSK
rust-1:1.78.0-alt1 -> sisyphus:

 Tue May 14 2024 Ajrat Makhmutov <rauty@altlinux> 1:1.78.0-alt1
 - New version (1.78.0).
 - Move rustlib into /usr/lib/ (closes: 49687).
 - Remove the cargo-doc package. Now all documentation is in rust-doc.
 - Require gcc for rustc (closes: 49831).
Comment 13 Michael Shigorin 2024-05-25 07:52:52 MSK
PreScriptum: раз познакомились и вопросы были также заданы лично, да и погода хорошая...

(Ответ для Garrett на комментарий #2)
> Cargo необходим, и rust должен ставится в связке rustc + cargo + gcc.
У нас довольно много пакетов, зависящих по сборке от rust, но не rust-cargo;
насколько понимаю, там или в апстримах, или в пакетах всё стороннее тупо завендорено.

rust-cargo в развёрнутом виде не то чтобы катастрофа по объёму, но всё-таки лишние 27 Мб
в каждом сборочном чруте с rust тоже не очень хорошо с учётом comment 3.

В целом любая среда исполнения, а тем более разработки требует некоторых усилий по освоению (обычно ещё и времени для привыкания; смена привычек -- от двух недель, ср.: http://altlinux.org/migration) -- думаю, по поднятым проблемам (а лучше по одному багу на одну проблему, чтобы состояние было однозначным; если есть связка проблем -- на связку отдельно заводится метабаг, зависящий от всех конкретных багов -- подробнее добавил на http://altlinux.org/BugTracking/BugzillaMiniHowto).

Поэтому предлагаю по данной баге, помимо уже сделанного, судя по comment 12:
1) создать на вики страничку http://altlinux.org/rust с рекомендациями и ссылками;
2) аналогично и http://altlinux.org/python

Если займётесь -- сообщите затем и сюда, почитаем; такие вещи обычно хорошо получаются, когда человек со свежим синяком пишет ровно то, чего ему самому не хватило, а те, у кого свои такие же синяки уже давно зажили -- приходят и смотрят, что поправить/дополнить.

(Ответ для Garrett на комментарий #11)
> (In reply to Anton Zhukharev from comment #10)
> > > Так же, как неправильно, что ваш python3 в системе поставляется без pip!!!
> > pip не является частью стандартной библиотеки Python
> Но является важной частью экосистемы python, как и cargo для rust!
Так можно и за notebook взволноваться -- мол, как же пользователи без него. :)

Ну и pip всё-таки дублирует пакетную систему дистрибутива именно для времени выполнения, поощрять такие практики "из коробки" я бы точно не стал (хотя если правильно помню, к его созданию напрямую был причастен cray@ давным-давно).

PS: давайте проиллюстрирую на примере двадцатилетней давности.
В редхате тогда пакет perl тащил все более-менее "важные для экосистемы" модули.
Одной кучкой.  И в целом подход скорее напоминал "один проект -- один пакет".
В дебиане уже тогда заморачивались мелкой порезкой и более точными зависимостями.
Альт, будучи rpm-дистрибутивом и "внуком" редхата через мандрейк, исходил как раз
из ситуации с более грубой порубкой пакетной базы -- но поскольку озадачились точными
зависимостями (автогенерацией установочных, затем и сборочных), то из такого условного
perl вдруг начали торчать объективно неудовлетворённые зависимости включённых модулей
на то, что они бы хотели использовать, но что не вошло в пакет (а рекурсивно там бы
пол-CPAN попало, поди).  Не в последнюю очередь по этой причине у нас и выбрана более
тонкая нарезка и обычно весьма неодобрительно смотрят на поползновения к навьючиванию
лишнего дополнительного на базовое.
О пользователях заботиться стоит, но если кормить ребёнка с ложечки всю жизнь --
он попросту не повзрослеет.  Тут скорее про разумную, а не случайную, возможность
отыскать/получить ответы на свои вопросы.

PPS: с документацией на вики, как и любой другой, основная проблема -- доступность:
мы же идём читать документацию не когда было бы надо, а когда совсем ничего уже
не работает ;-]  Можно предложить в %post пакета rust проверку наличия rust-cargo
и echo "** you might also need rust-cargo", но кого-то возмутит лишний спам в логах, особенно если rust-cargo и будет установлен следующей же строкой; если сделать проверку
на tty (test -t) -- пропадёт и в synaptic (а вдумчивая проверка с учётом всего этого потянет на небольшой отдельный пакет, чтоб не дублировать потом).
Comment 14 Ajrat Makhmutov 2024-05-25 11:08:00 MSK
(Ответ для Michael Shigorin на комментарий #13)
> Поэтому предлагаю по данной баге, помимо уже сделанного, судя по comment 12:
> 1) создать на вики страничку http://altlinux.org/rust с рекомендациями и
> ссылками;
> 2) аналогично и http://altlinux.org/python
> 
> Если займётесь -- сообщите затем и сюда, почитаем; такие вещи обычно хорошо
> получаются, когда человек со свежим синяком пишет ровно то, чего ему самому
> не хватило, а те, у кого свои такие же синяки уже давно зажили -- приходят и
> смотрят, что поправить/дополнить.
Так как у меня таких синяков нет, Garrett, предлагаю вам этим заняться.
Comment 15 Garrett 2024-05-28 14:36:43 MSK
Спасибо за предложение, попробую сделать, только чуть позже. Немного занят...