Я являюсь автором пакета dshell a dart и инструментария для создания клиентских приложений / скриптов с помощью dart.
https://pub.dev/packages/dshell
Я изучаю как dshell должен взаимодействовать с sudo.
Первая проблема, с которой я столкнулся, заключается в том, как обращаться с путями.
Если я включу паб, активирующий глобальный dshell, то dart установит dshell и его исполняемые файлы. так что они находятся на пути linux для текущего пользователя.
Это работает нормально, пока вы не попытаетесь запустить сценарий dshell с помощью sudo.
например
sudo dshell main.dart.
Команда sudo существенно меняет пользователя на root пользователя. Как таковая переменная PATH изменяется и изменяется HOME var. В результате пути dart и dshell больше не находятся на пути.
Рекомендуется ли помещать пакет dart в глобальный путь, чтобы он (и его зависимости) были доступны для root а другие пользователи?