Установка TEX Живой путь для корня

Я установил TEX Живая ваниль 2011 года, и я испытываю затруднения при установке TEX Живой путь для корня (в Ubuntu 11.10).

Проблема - это, когда я работаю sudo tlmgr Я добираюсь:

sudo: tlmgr: command not found

Для фиксации пути для некорневого, было достаточно добавить

PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH

кому: /etc/profile.

Я попытался добавить эту ту же строку к /root/.bashrc и я также попытался добавить его к /etc/profile.d/zzz-texlive.sh как Herbert предлагают в https://tex.stackexchange.com/questions/26624/tlmgr-inaccessible/26626#26626, но он не помогает.

20
задан 13 April 2017 в 15:36

6 ответов

Быстрое исправление: так как у Вас уже есть корректное $PATH набор в Вашей среде (через /etc/profile модификации), можно использовать:

sudo env PATH="$PATH" tlmgr

В основном sudo сбрасывает значение $PATH (целая среда, действительно) к "известной пользе" один, и таким образом игнорирует любые изменения, которые Вы внесли в свое окружение. Огибающая команда выше устанавливает PATH переменная в среде tlmgr это выполняется, таким образом, это работает со значением $PATH Вы указываете на командной строке.

Чтобы постараться не вводить все, что для каждой команды TeXlive, можно определить псевдоним в оболочке: добавьте следующую строку к .bashrc файл в Вашем доме:

alias psudo='sudo env PATH="$PATH"'

и затем можно просто выпустить это в командной строке:

psudo tlmgr

Кроме того, sudo не выполняет оболочку входа в систему для выполнения команды, которая является, почему приемы "profile.d" не работали на корень. Можно вынудить sudo выполнить команду в оболочке, которая является альтернативным способом достигнуть того же эффекта:

sudo sh -l -c tlmgr

Снова можно определить псевдоним команды оболочки для сокращения этого:

alias shsudo='sudo sh -l -c'

который может использоваться как:

shsudo tlmgr
22
ответ дан 13 April 2017 в 15:36

Если вы добавите символические ссылки, вам не нужно будет создавать скрипт. Вы можете сделать это двумя способами:

Используя графический интерфейс:

  1. sudo env PATH="$PATH" tlmgr --gui.
  2. Нажмите «Действия -> Обработка символических ссылок в системных каталогах».
  3. Нажмите «Обновить символические ссылки».

Использование командной строки (не проверено, поскольку я использовал графический интерфейс):

  1. sudo env PATH="$PATH" tlmgr path add. (более подробную информацию можно найти в документации tlmgr )
0
ответ дан 13 April 2017 в 15:36

Чтобы передать $PATH пользователя в sudo, я изменил файл /etc/sudoers с помощью команды visudo и добавил следующую строку:

Defaults        exempt_group=<group that I belong to>

Теперь я могу выполнить (например)

]
sudo tlmgr update all

или

sudo texhash

и все работает идеально.

Буду очень признателен за любые комментарии по этому подходу.

0
ответ дан 13 April 2017 в 15:36

Что сработало для меня: я запустил tlmgr в графическом режиме с

sudo env PATH="$PATH" tlmgr --gui

, а затем в третьем меню выбрал последний пункт, кроме одного (в моем немецком меню, то есть меню «Актионен») (действия?) и пункт «Verwaltung der symbolischen Links» (администрирование символических ссылок?). В появившемся диалоговом окне я нажал кнопку «Symbolische Links erneuern» (обновить символические ссылки?). ] работает без проблем. Уверен, есть способ командной строки;)

0
ответ дан 13 April 2017 в 15:36

Вам действительно не нужно добавлять каталог tlmgr к пути. Простое быстрое решение использует which, например:

sudo $(which tlmgr) update --list
0
ответ дан 13 April 2017 в 15:36

Это не хорошая практика, чтобы установить и управлять TEX Живые "корневые" полномочия использования. Вместо этого создайте /usr/local/texlive каталог, например, с помощью sudo, и затем изменяет владение на пользователя, который будет управлять Живым TEX. После этого Живой TEX может быть установлен и обновлен, не используя "корневые" полномочия.

0
ответ дан 23 November 2019 в 01:50

Другие вопросы по тегам:

Похожие вопросы: