Kök için TeX Live yolunu ayarlama


20

TeX Live 2011 vanilyasını yükledim ve root için TeX Live yolunu ayarlamada sorun yaşıyorum (Ubuntu 11.10'da).

Sorun şu ki kaçtığımda şunu alıyorum sudo tlmgr:

sudo: tlmgr: command not found

Kök olmayan yolu düzeltmek için eklemek yeterliydi.

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

için /etc/profile.

Bu aynı satırı eklemeye /root/.bashrcçalıştım ve bunu /etc/profile.d/zzz-texlive.shHerbert’in /tex/26624/tlmgr-inaccessible/26626#26626 'de önerdiği şekilde eklemeyi denedim .


Gerçekten de bu sorunun TeX ile alakası yok, ancak SO ile cevaplandı .

Yanıtlar:


22

Hızlı düzeltme: $PATHOrtamınızda zaten doğru ayarlara sahip olduğunuzdan ( /etc/profilemodifikasyonlar yoluyla ) aşağıdakileri kullanabilirsiniz:

sudo env PATH="$PATH" tlmgr

Temel olarak, sudo$PATH (aslında tüm çevrenin değerini ) “bilinen iyi” olana sıfırlar ve bu nedenle yerel ortamınızda yaptığınız değişiklikleri göz ardı eder. Yukarıdaki env komutu PATH, çalıştığı ortamda değişkeni ayarlar tlmgr, böylece $PATHkomut satırında belirttiğiniz değerle çalışır .

Tüm bunları, her bir TeXlive komutu için yazmaktan kaçınmak için , kabuğunuzda bir takma ad tanımlayabilirsiniz : .bashrcEvinizdeki dosyaya şu satırı ekleyin :

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

ve sonra bunu sadece komut isteminde verebilirsiniz:

psudo tlmgr

Ayrıca, sudo komutu çalıştırmak için bir giriş kabuğu çalıştırmaz, bu yüzden "profile.d" numaralarınız root için çalışmadı. Aynı efekti elde etmenin alternatif bir yolu olan kabuğundaki bir komutu çalıştırmak için sudo'yu zorlayabilirsiniz :

sudo sh -l -c tlmgr

Yine bunu kısaltmak için bir kabuk komutu takma adı tanımlayabilirsiniz :

alias shsudo='sudo sh -l -c'

hangi olarak kullanılabilir:

shsudo tlmgr

Ortamımda nasıl ayarlanacağının tam bir tanımını da içerir $PATHmisiniz? Ayrıca, envetkinleştirmek istediğim TeX Live yolundaki her komut için ne yapmalıyım sudo? / Usr / local / texlive / 2011 / bin / x86_64-linux içinde root olarak çalıştırmak isteyebileceğiniz çok sayıda ikili dosya var.
NN

@NN Daha fazla ayrıntıyla cevabı güncelledim; Umarım şimdi daha açıktır.
Riccardo Murri

Şerefe! Açıklamalarınızı takdir edin.
NN

7

Sembolik linkleri eklerseniz, bir script yapmanıza gerek kalmaz. Bunu iki yolla yapabilirsiniz:

GUI'yi kullanma:

  1. sudo env PATH="$PATH" tlmgr --gui.
  2. 'İşlemler -> Sistem dizinlerinde sembolik bağlantılarla işlem yap' seçeneğini tıklayın.
  3. 'Sembolik linkleri güncelle' üzerine tıklayın.

Komut satırını kullanarak (GUI kullandığımdan beri denenmemiş):

  1. sudo env PATH="$PATH" tlmgr path add. ( tlmgr belgelerinde daha fazla bilgi bulabilirsiniz )

3

Benim için ne işe yaradı: ben tlmgrgui modunda başladım

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

ve üçüncü menüde son öğeyi seçti, ancak bir tanesini (Alman menümde, bu "Aktionen" (eylemler?) menüsü ve "Verwaltung der symbolischen Links" (sembolik linklerin yönetimi?) maddesini seçti. "Symbolische Links erneuern" düğmesine tıklayın (sembolik bağlantıları yenile?).

sudo tlmgr --OPTIONS

Sorunsuz çalışıyor. Bunu yapmanın bir komut satırı yolu da var eminim;)


1

Kullanıcı var geçmek için $PATHiçin sudoben değiştirilen /etc/sudoerskullanarak dosyayı visudokomuta ve aşağıdaki satırı ekleyin:

Defaults        exempt_group=<group that I belong to>

Şimdi yürütebilirim (örneğin)

sudo tlmgr update all

veya

sudo texhash

ve her şey mükemmel çalışıyor.

Bu yaklaşımla ilgili yorumlarınızı çok takdir ediyorum.


1

Dizinin tlmgryolunu gerçekten eklemek zorunda değilsiniz . Basit bir hızlı çözüm kullanıyor which, örneğin:

sudo $(which tlmgr) update --list

0

"Kök" ayrıcalıkları kullanarak TeX Live'ı kurmak ve yönetmek iyi bir uygulama değildir. Bunun yerine, /usr/local/texliveörneğin sudo kullanarak dizini oluşturun ve ardından TeX Live'ı yönetecek olan kullanıcıya sahipliği değiştirin. Bundan sonra, TeX Live "root" ayrıcalıkları kullanmadan kurulabilir ve güncellenebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.