Definindo o caminho TeX Live para raiz

20

Eu instalei o Baile do TeX Live 2011 e tenho problemas para configurar o caminho do TeX Live para o root (no Ubuntu 11.10) .

O problema é que quando eu executo sudo tlmgr eu recebo:

sudo: tlmgr: command not found

Para corrigir o caminho para o non-root, foi suficiente adicionar

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

para /etc/profile .

Eu tentei adicionar essa mesma linha a /root/.bashrc e também tentei adicioná-la a /etc/profile.d/zzz-texlive.sh como Herbert sugere em link mas isso não ajuda.

    
por N.N. 14.10.2011 / 08:26

5 respostas

22

Correção rápida: desde que você já tenha o $PATH correto definido no seu ambiente (via as modificações /etc/profile ) você pode usar:

sudo env PATH="$PATH" tlmgr

Basicamente, o sudo redefine o valor de $PATH (todo o ambiente, na verdade) para um "bem conhecido", e é ignorando assim quaisquer alterações feitas no seu ambiente local. o O comando env acima define a variável PATH no ambiente do tlmgr que ele executa, então ele roda com o valor de $PATH que você especificou na linha de comando.

Para evitar digitar tudo isso para cada comando do TeXlive, você pode definir um alias no seu shell: adicione a seguinte linha ao arquivo .bashrc em sua casa:

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

e, em seguida, você pode simplesmente emitir isso em um prompt de comando:

psudo tlmgr

Além disso, o sudo não executa shell de login para executar o comando, e é por isso que o seu "profile.d" truques não funcionaram para raiz. Você pode forçar sudo para executar um comando em um shell, que é uma maneira alternativa de obter o mesmo efeito:

sudo sh -l -c tlmgr

Novamente, você pode definir um alias de comando do shell para reduzir isso:

alias shsudo='sudo sh -l -c'

que pode ser usado como:

shsudo tlmgr
    
por Riccardo Murri 15.10.2011 / 10:17
7

Se você adicionar os links simbólicos, não precisará criar um script. Você pode fazer isso de duas maneiras:

Usando a GUI:

  1. sudo env PATH="$PATH" tlmgr --gui .
  2. Clique em "Ações - > Lidar com links simbólicos no diretório do sistema '.
  3. Clique em "Atualizar links simbólicos".

Usando a linha de comando (não testado, desde que usei a GUI):

  1. %código%. (encontre mais informações em por Chris 27.07.2012 / 22:40
3

O que funcionou para mim: eu iniciei tlmgr no modo gui com

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

e, no terceiro menu, escolhemos o último item, exceto um (no meu menu alemão, o menu "Aktionen" (ações?) e o item "Verwaltung der symbolischen Links" (administração de links simbólicos?). janela de diálogo eu cliquei no botão "Symbolische Links erneuern" (renovar links simbólicos?). Agora

sudo tlmgr --OPTIONS

funciona sem problemas. Tenho certeza de que há também uma maneira de fazer a linha de comando;)

    
por Thomas Fehige 16.05.2012 / 13:39
1

Para passar o arquivo $PATH do usuário para sudo , eu modifiquei o arquivo /etc/sudoers usando o comando visudo e adicione a seguinte linha:

Defaults        exempt_group=<group that I belong to>

Agora eu posso executar (por exemplo)

sudo tlmgr update all

ou

sudo texhash

e tudo funciona perfeito.

Eu apreciaria muito qualquer comentário sobre essa abordagem.

    
por Andrej 21.11.2011 / 00:36
1

Você realmente não precisa adicionar o diretório tlmgr ao caminho. Uma solução simples e rápida está usando which , por exemplo:

sudo $(which tlmgr) update --list
    
por user652427 08.02.2017 / 23:04