Быстрое исправление: поскольку у вас уже есть правильный $PATH
набор в вашей среде (с помощью /etc/profile
модификаций), вы можете использовать:
sudo env PATH="$PATH" tlmgr
По сути, sudo сбрасывает значение
$PATH
(действительно всей среды) до «заведомо хорошего» и, таким образом, игнорирует любые изменения, которые вы внесли в вашу локальную среду. Приведенная
выше команда env устанавливает PATH
переменную в среде, в которой tlmgr
она выполняется, поэтому она запускается со значением $PATH
, указанным в командной строке.
Чтобы не вводить все это для каждой команды TeXlive, вы можете определить
псевдоним в своей оболочке: добавьте следующую строку в .bashrc
файл в вашем доме:
alias psudo='sudo env PATH="$PATH"'
и тогда вы можете просто выполнить это в командной строке:
psudo tlmgr
Кроме того, sudo не запускает оболочку входа в систему для выполнения команды, поэтому ваши трюки "profile.d" не сработали для root. Вы можете заставить
sudo выполнить команду в оболочке, что является альтернативным способом достижения того же эффекта:
sudo sh -l -c tlmgr
Снова вы можете определить псевдоним команды оболочки, чтобы сократить это:
alias shsudo='sudo sh -l -c'
который можно использовать как:
shsudo tlmgr