ルートのTeXライブパスの設定


20

TeX Live 2011バニラをインストールしましたが、ルートのTeX Liveパスの設定に問題があります(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が/tex/26624/tlmgr-inaccessible/26626#26626で提案するように追加しようとしまし たが、役に立ちません。


実際、この質問はTeXとは関係ありませんが、SOで回答しました

回答:


22

クイックフィックス:(修正により)$PATH環境に既に正しいセットがあるため、以下/etc/profileを使用できます。

sudo env PATH="$PATH" tlmgr

基本的に、sudo$PATH(環境全体)の値を「既知の良好な」値にリセットする ため、ローカル環境に加えた変更を無視します。上記の envコマンドPATHは、tlmgr実行する環境で変数を設定するため$PATH、コマンドラインで指定した値で実行されます。

TeXliveコマンドごとにすべてを入力しないように、シェルでエイリアスを定義できます。 次の行を.bashrcホームのファイルに追加します。

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

そして、コマンドプロンプトでこれを簡単に発行できます:

psudo tlmgr

さらに、sudoはコマンドを実行するためにログインシェルを実行しないため、rootで「profile.d」トリックが機能しませんでした。sudoにシェルでコマンドを実行させることができ ます。これは、同じ効果を達成する別の方法です。

sudo sh -l -c tlmgr

繰り返しますが、シェルコマンドエイリアスを定義してこれを短縮できます。

alias shsudo='sudo sh -l -c'

次のように使用できます。

shsudo tlmgr

$PATH私の環境で設定する方法の完全な説明を含めても構いませんか?また、私はenv有効にしたいTeX Liveパスのすべてのコマンドを実行する必要がありsudoますか?/ usr / local / texlive / 2011 / bin / x86_64-linuxには、rootとして実行したいかなり多くのバイナリがあります。
NN

@NN回答を詳細に更新しました。今より明確になってほしい。
リッカルドムリ

乾杯!説明に感謝します。
NN

7

シンボリックリンクを追加する場合、スクリプトを作成する必要はありません。これには2つの方法があります。

GUIの使用:

  1. sudo env PATH="$PATH" tlmgr --gui
  2. 「アクション->システムディレクトリでシンボリックリンクを処理する」をクリックします。
  3. [シンボリックリンクの更新]をクリックします。

コマンドラインを使用して(GUIを使用したため、テストされていません):

  1. sudo env PATH="$PATH" tlmgr path add。(詳細については、tlmgrのドキュメントを参照してください

3

私のために働いたもの:私tlmgrはGUIモードで始めました

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

そして、3番目のメニューで最後の項目を選択しました(私のドイツ語のメニューでは、メニューは「Aktionen」(アクション?)、項目は「Verwaltung der symbolischen Links」(シンボリックリンクの管理?)です。次のダイアログウィンドウでボタン「Symbolische Links erneuern」をクリックしました(シンボリックリンクを更新しますか?)。

sudo tlmgr --OPTIONS

問題なく動作します。これを行うコマンドラインの方法もあると確信しています;)


1

コマンドを使用$PATHしてユーザーのファイルをsudo変更するには、次の行を追加します。/etc/sudoersvisudo

Defaults        exempt_group=<group that I belong to>

これで実行できます(例)

sudo tlmgr update all

または

sudo texhash

すべてが完璧に機能します。

このアプローチに関するコメントをいただければ幸いです。


1

tlmgrパスにディレクトリを追加する必要はありません。簡単な簡単な解決策は、を使用することですwhich。例:

sudo $(which tlmgr) update --list

0

「root」特権を使用してTeX Liveをインストールおよび管理することは、良い習慣ではありません。代わりに/usr/local/texlive、たとえばsudoを使用してディレクトリを作成し、所有権をTeX Liveを管理するユーザーに変更します。その後、「root」権限を使用せずにTeX Liveをインストールおよび更新できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.