Impostazione del percorso di TeX Live per root

20

Ho installato Teilla Live 2011 vanilla e ho difficoltà a impostare il percorso di TeX Live per root (in Ubuntu 11.10) .

Il problema è che quando esco sudo tlmgr ottengo:

sudo: tlmgr: command not found

Per correggere il percorso per non-root era sufficiente aggiungere

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

a /etc/profile .

Ho provato ad aggiungere questa stessa riga a /root/.bashrc e ho anche provato ad aggiungerlo a /etc/profile.d/zzz-texlive.sh come suggerito da Herbert in link ma non aiuta.

    
posta N.N. 14.10.2011 - 08:26

5 risposte

22

Correzione rapida: poiché hai già impostato il $PATH corretto nel tuo ambiente (tramite le modifiche di /etc/profile ) puoi usare:

sudo env PATH="$PATH" tlmgr

In sostanza, sudo ripristina il valore di $PATH (l'intero ambiente, in effetti) a uno "noto bene" ed è quindi ignorando eventuali modifiche apportate all'ambiente locale. Il Il comando env precedente imposta la variabile PATH nell'ambiente di tlmgr viene eseguito, quindi viene eseguito con valore di $PATH specificato sulla riga di comando.

Per evitare di digitare tutto ciò per ogni comando TeXlive, puoi definire un alias nella tua shell: aggiungi la seguente riga al file .bashrc in la tua casa:

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

e quindi puoi semplicemente rilasciarlo al prompt dei comandi:

psudo tlmgr

Inoltre, sudo non esegue un shell di login per eseguire il comando, che è il motivo per cui il tuo "profilo.d" trucchi non ha funzionato per root. Puoi forzare sudo per eseguire un comando in un shell, che è un modo alternativo per ottenere lo stesso effetto:

sudo sh -l -c tlmgr

Ancora una volta puoi definire un alias del comando shell per accorciare questo:

alias shsudo='sudo sh -l -c'

che può essere usato come:

shsudo tlmgr
    
risposta data Riccardo Murri 15.10.2011 - 10:17
7

Se aggiungi i collegamenti simbolici, non avrai bisogno di creare uno script. Puoi farlo in due modi:

Utilizzo della GUI:

  1. % Co_de%.
  2. Fai clic su "Azioni - & gt; Gestisci i collegamenti simbolici nelle dirs di sistema '.
  3. Fai clic su "Aggiorna collegamenti simbolici".

Utilizzo della riga di comando (non testata, poiché ho usato la GUI):

  1. %codice%. (per ulteriori informazioni, consulta risposta data Chris 27.07.2012 - 22:40
3

Che cosa ha funzionato per me: ho avviato tlmgr in modalità gui con

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

e poi nel terzo menu ho scelto l'ultimo elemento tranne uno (nel mio menu tedesco, cioè il menu "Aktionen" (azioni?) e l'elemento "Verwaltung der symbolischen Links" (amministrazione di collegamenti simbolici?). finestra di dialogo Ho cliccato sul pulsante "Symbolische Links erneuern" (rinnova link simbolici?). Ora

sudo tlmgr --OPTIONS

funziona senza problemi. Sono sicuro che c'è anche un modo per farlo da riga di comando;)

    
risposta data Thomas Fehige 16.05.2012 - 13:39
1

Per passare $PATH dell'utente a sudo Ho modificato /etc/sudoers file usando il comando visudo e aggiungo la seguente riga:

Defaults        exempt_group=<group that I belong to>

Ora posso eseguire (ad es.)

sudo tlmgr update all

o

sudo texhash

e tutto funziona perfettamente.

Apprezzerei molto qualsiasi commento su questo approccio.

    
risposta data Andrej 21.11.2011 - 00:36
1

In realtà non devi aggiungere la directory di tlmgr al percorso. Una semplice soluzione rapida utilizza which , ad es.

sudo $(which tlmgr) update --list
    
risposta data user652427 08.02.2017 - 23:04

Leggi altre domande sui tag