web-dev-qa-db-ja.com

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

TeX Live 2011 Vanilla をインストールしましたが、ルートの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に追加しようとしましたが、Herbertが https://tex.stackexchange.com/questions/26624/tlmgrで提案しているように、/etc/profile.d/zzz-texlive.shにも追加しようとしました。 -inaccessible/26626#26626 しかし、それは役に立ちません。

20
N.N.

クイックフィックス:($PATHの変更により)環境に正しい/etc/profileが既に設定されているため、以下を使用できます。

Sudo env PATH="$PATH" tlmgr

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

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

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

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

psudo tlmgr

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

Sudo sh -l -c tlmgr

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

alias shsudo='Sudo sh -l -c'

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

shsudo tlmgr
22
Riccardo Murri

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

GUIの使用:

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

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

  1. Sudo env PATH="$PATH" tlmgr path add。 (詳細は tlmgr documentation をご覧ください)
7
Chris

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

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

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

Sudo tlmgr --OPTIONS

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

3
Thomas Fehige

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

Defaults        exempt_group=<group that I belong to>

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

Sudo tlmgr update all

または

Sudo texhash

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

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

1
Andrej

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

Sudo $(which tlmgr) update --list
1
user652427

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

0
George