J'ai installé TeX Live 2011 vanilla et j'ai du mal à définir le chemin TeX Live pour root (dans Ubuntu 11.10).
Le problème est que lorsque je cours, sudo tlmgr
j'obtiens:
sudo: tlmgr: command not found
Pour corriger le chemin d'accès non root, il suffisait d'ajouter
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
à /etc/profile
.
J'ai essayé d'ajouter cette même ligne à /root/.bashrc
et j'ai également essayé de l'ajouter à ce /etc/profile.d/zzz-texlive.sh
que suggère Herbert dans /tex/26624/tlmgr-inaccessible/26626#26626 mais cela n'aide pas.
Réponses:
Solution rapide: puisque vous avez déjà le bon
$PATH
ensemble dans votre environnement (via les/etc/profile
modifications), vous pouvez utiliser:Fondamentalement, sudo réinitialise la valeur de
$PATH
(l'ensemble de l'environnement, en effet) à un "bien connu", et ignore ainsi toutes les modifications que vous avez apportées à votre environnement local. La commande env ci-dessus définit laPATH
variable dans l'environnement de l'tlmgr
exécution, de sorte qu'elle s'exécute avec la valeur que$PATH
vous spécifiez sur la ligne de commande.Pour éviter de taper tout cela pour chaque commande TeXlive, vous pouvez définir un alias dans votre shell: ajoutez la ligne suivante au
.bashrc
fichier de votre home:puis vous pouvez simplement émettre ceci à une invite de commande:
De plus, sudo n'exécute pas de shell de connexion pour exécuter la commande, c'est pourquoi vos astuces "profile.d" n'ont pas fonctionné pour root. Vous pouvez forcer sudo à exécuter une commande dans un shell, ce qui est une autre façon d'obtenir le même effet:
Encore une fois, vous pouvez définir un alias de commande shell pour raccourcir ceci:
qui peut être utilisé comme:
la source
$PATH
dans mon environnement? Aussi, je dois donc faireenv
pour chaque commande du chemin TeX Live pour laquelle je veux activersudo
? Il y a beaucoup de binaires dans / usr / local / texlive / 2011 / bin / x86_64-linux que vous voudrez peut-être exécuter en tant que root.Si vous ajoutez les liens symboliques, vous n'aurez pas besoin de créer un script. Vous pouvez procéder de deux manières:
Utilisation de l'interface graphique:
sudo env PATH="$PATH" tlmgr --gui
.Utilisation de la ligne de commande (non testée, car j'ai utilisé l'interface graphique):
sudo env PATH="$PATH" tlmgr path add
. (trouver plus d'informations dans la documentation tlmgr )la source
Ce qui a fonctionné pour moi: j'ai commencé
tlmgr
en mode gui avecpuis dans le troisième menu, j'ai choisi le dernier élément mais un (dans mon menu allemand, c'est-à-dire le menu "Aktionen" (actions?) et l'élément "Verwaltung der symbolischen Links" (administration des liens symboliques?). Dans la fenêtre de dialogue qui suit, je cliqué sur le bouton "Symbolische Links erneuern" (renouveler les liens symboliques?).
fonctionne sans problème. Je suis sûr qu'il y a aussi un moyen en ligne de commande de le faire;)
la source
Pour passer l'utilisateur est
$PATH
àsudo
I modifié le/etc/sudoers
fichier en utilisant lavisudo
commande et ajoutez la ligne suivante:Maintenant, je peux exécuter (par exemple)
ou
et tout fonctionne parfaitement.
J'apprécierais grandement tout commentaire sur cette approche.
la source
Vous n'avez vraiment pas besoin d'ajouter le répertoire de
tlmgr
au chemin. Une solution simple et rapide utilisewhich
, par exemple:la source
Il n'est pas recommandé d'installer et de gérer TeX Live à l'aide des privilèges "root". Au lieu de cela, créez le
/usr/local/texlive
répertoire, par exemple, en utilisant sudo, puis changez la propriété de l'utilisateur qui gérera TeX Live. Après cela, TeX Live peut être installé et mis à jour sans utiliser les privilèges "root".la source