Я установил TeX Live 2011 vanilla, и у меня возникли проблемы с настройкой пути TeX Live для root (в Ubuntu 11.10).
Проблема в том, что когда я бегу, sudo tlmgr
я получаю:
sudo: tlmgr: command not found
Чтобы исправить путь для не-root было достаточно добавить
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
к /etc/profile
.
Я попытался добавить эту же строку в, /root/.bashrc
и я также попытался добавить ее, /etc/profile.d/zzz-texlive.sh
как Герберт предлагает в /tex/26624/tlmgr-inaccessible/26626#26626, но это не помогает.
Ответы:
Быстрое исправление: поскольку у вас уже есть правильный
$PATH
набор в вашей среде (с помощью/etc/profile
модификаций), вы можете использовать:По сути, sudo сбрасывает значение
$PATH
(действительно всей среды) до «заведомо хорошего» и, таким образом, игнорирует любые изменения, которые вы внесли в вашу локальную среду. Приведенная выше команда env устанавливаетPATH
переменную в среде, в которойtlmgr
она выполняется, поэтому она запускается со значением$PATH
, указанным в командной строке.Чтобы не вводить все это для каждой команды TeXlive, вы можете определить псевдоним в своей оболочке: добавьте следующую строку в
.bashrc
файл в вашем доме:и тогда вы можете просто выполнить это в командной строке:
Кроме того, sudo не запускает оболочку входа в систему для выполнения команды, поэтому ваши трюки "profile.d" не сработали для root. Вы можете заставить sudo выполнить команду в оболочке, что является альтернативным способом достижения того же эффекта:
Снова вы можете определить псевдоним команды оболочки, чтобы сократить это:
который можно использовать как:
источник
$PATH
в моей среде? Кроме того, так что я должен сделатьenv
для каждой команды в пути TeX Live, который я хочу включитьsudo
? В / usr / local / texlive / 2011 / bin / x86_64-linux довольно много двоичных файлов, которые вы можете запускать с правами root.Если вы добавите символические ссылки, вам не нужно будет создавать сценарий. Вы можете сделать это двумя способами:
Использование GUI:
sudo env PATH="$PATH" tlmgr --gui
,Использование командной строки (не проверено, так как я использовал графический интерфейс):
sudo env PATH="$PATH" tlmgr path add
, (найти дополнительную информацию в документации по tlmgr )источник
Что сработало для меня: я начал
tlmgr
в графическом режиме са затем в третьем меню выберите последний пункт, кроме одного (в моем немецком меню, то есть меню "Актионен" (действия?) и пункт "Verwaltung der symbolischen Links" (управление символическими ссылками?). В следующем диалоговом окне I нажал кнопку «Symbolische Links erneuern» (обновить символические ссылки?).
работает без проблем. Я уверен, что есть способ командной строки сделать это;)
источник
Чтобы передать пользователю это
$PATH
вsudo
я изменил/etc/sudoers
файл , используяvisudo
команду и добавьте следующую строку:Теперь я могу выполнить (например)
или
и все работает отлично.
Буду очень признателен за любые комментарии по этому подходу.
источник
Вам действительно не нужно добавлять каталог
tlmgr
к пути. Простое быстрое решение используетwhich
, например:источник
Не рекомендуется устанавливать TeX Live и управлять им, используя привилегии «root». Вместо этого создайте
/usr/local/texlive
каталог, например, с помощью sudo, а затем измените владельца на пользователя, который будет управлять TeX Live. После этого TeX Live можно установить и обновить без использования привилегий «root».источник