Impostazione del percorso TeX Live per root


20

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

Il problema è che quando corro sudo tlmgrottengo:

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 /root/.bashrce ho anche provato ad aggiungerla /etc/profile.d/zzz-texlive.shcome suggerito da Herbert in /tex/26624/tlmgr-inaccessible/26626#26626 ma non aiuta.


In effetti questa domanda non è correlata a TeX, ma ha risposto su SO .

Risposte:


22

Correzione rapida: poiché hai già il $PATHset corretto nel tuo ambiente (tramite le /etc/profilemodifiche) puoi usare:

sudo env PATH="$PATH" tlmgr

Fondamentalmente, sudo reimposta il valore di $PATH(l'intero ambiente, in effetti) su un "bene noto", ignorando così qualsiasi modifica apportata al proprio ambiente locale. Il comando env sopra imposta la PATHvariabile nell'ambiente in tlmgrcui viene eseguita, quindi viene eseguito con il valore $PATHspecificato nella 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 .bashrcfile nella tua home:

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

e quindi puoi semplicemente emetterlo al prompt dei comandi:

psudo tlmgr

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

sudo sh -l -c tlmgr

Ancora una volta è possibile definire un alias del comando shell per abbreviare questo:

alias shsudo='sudo sh -l -c'

che può essere usato come:

shsudo tlmgr

Ti dispiace includere una descrizione completa di come impostare $PATHnel mio ambiente? Inoltre, quindi devo fare envper ogni comando nel percorso di TeX Live che voglio abilitare sudo? Ci sono molti binari in / usr / local / texlive / 2011 / bin / x86_64-linux che potresti voler eseguire come root.
NN,

@NN Ho aggiornato la risposta con maggiori dettagli; spero sia più chiaro ora.
Riccardo Murri,

Saluti! Apprezzo le tue spiegazioni.
NN,

7

Se aggiungi i link simbolici, non dovrai creare uno script. Puoi farlo in due modi:

Utilizzando la GUI:

  1. sudo env PATH="$PATH" tlmgr --gui.
  2. Fai clic su "Azioni -> Gestisci collegamenti simbolici nelle directory di sistema".
  3. Fai clic su "Aggiorna collegamenti simbolici".

Utilizzando la riga di comando (non testato, poiché ho usato la GUI):

  1. sudo env PATH="$PATH" tlmgr path add. (trova maggiori informazioni nella documentazione di tlmgr )

3

Cosa ha funzionato per me: ho iniziato tlmgrin modalità gui con

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

e quindi nel terzo menu ho scelto l'ultimo elemento tranne uno (nel mio menu tedesco, ovvero il menu "Aktionen" (azioni?) e l'elemento "Verwaltung der symbolischen Links" (amministrazione di collegamenti simbolici?). Nella finestra di dialogo che segue I cliccato sul pulsante "Symbolische Links erneuern" (rinnovare i collegamenti simbolici?). Ora

sudo tlmgr --OPTIONS

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


1

Per passare il file dell'utente $PATHa sudoI modificato /etc/sudoersutilizzando il visudocomando e aggiungere 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.

Gradirei molto qualsiasi commento su questo approccio.


1

Non devi davvero aggiungere la directory di tlmgral percorso. Viene utilizzata una semplice soluzione rapida which, ad esempio:

sudo $(which tlmgr) update --list

0

Non è buona norma installare e gestire TeX Live utilizzando i privilegi "root". Invece, crea la /usr/local/texlivedirectory, ad esempio, usando sudo, quindi cambia la proprietà per l'utente che gestirà TeX Live. Successivamente, TeX Live può essere installato e aggiornato senza utilizzare i privilegi "root".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.