2014-10-29 15 views
8

yok sayar. Bunun yerine, M-! echo $PATH döner ben .bashrc veya .profile yılında export PATH=/hwdisks/data/modules/pkg/git/1.8.4.1/bin/git:$PATH set bile TRAMP benim .emacs aşağıdaki sahip serseri-uzak-yolu

/bin:/usr/bin:/usr/sbin:/usr/local/bin 

, PATH doğru ayarlanmamış çalışan. Ben benim .bashrc içinde echo "in .bashrc" eklerseniz o serseri günlüğünde görünür

12:28:34.202135 tramp-send-command (6) # PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin; export PATH 

, bu yüzden serseri bunu okuyor biliyorum: serseri günlüğüne, *debug tramp/ssh remotehost* yılında

, ben açıkça PATH ayarı serseri görebilirsiniz.

Sersemlemeyi doğru PATH nasıl kullanabilirim?

Emacs sürümü: 24.2.1
Tramp sürümü: 2.2.3-24.1

cevap

6

Utanç verici, cevap serseri kılavuzda geçerli:

başka olasılık yolunu ayarları yeniden kullanmak aşağıdadır Oturum açtığınızda uzak hesap. Genellikle, bu ayarların üzerine yazılır, çünkü bunlar tramp için kullanışlı olmayabilir. Yer tutucu tramp-own-remote-yolu bu ayarları korur. Bunu tramp-remote-path eklenen diğer yolları görmezden neden hala emin değilim

(add-to-list 'tramp-remote-path 'tramp-own-remote-path) 

yoluyla etkinleştirebilirsiniz.

3

Bunu tramp kılavuzunda okudum ve denedim. Eklendi

(add-to-list 'tramp-remote-path 'tramp-own-remote-path) 

Sonra emacs'ı çıkıldı ~/.emacs.d/tramp kaldırıldı ve here

Ama M-! echo $PATH açıklandığı gibi hala yerine benim .bashrc ayarlanan değerin tramp-default-remote-path değeri gösterir yeniden.

Sorun, profillerin nasıl yükleneceğine dair benim anlayışım gibi görünüyor. yolu serseri uzak PATH almak için uzak kabuk çağırır:

/bin/sh -l -c 'echo $PATH' 
/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin 

bash giriş kabuğu olarak çağrı olduğundan ve /bin/sh gibi .profile yerine .bash_profile veya .bashrc okur. da uydurmaya bash sh adıyla çağrılan ise

, bu mümkün olduğunca yakından sh eski sürümlerinin başlangıç ​​davranışlarını taklit etmeye çalışır: Ben bash kılavuz sayfasında buldum

POSIX standardı da.Etkileşimli oturum açma kabuğu veya --login seçeneği ile etkileşimli olmayan kabuk olarak çağrıldığında, ilk önce bu sırayla/etc/profile ve ~/.profile öğelerinden yürütme komutlarını okumaya çalışır. Bu davranışı önlemek için --noprofile seçeneği kullanılabilir. Sh adında bir etkileşimli kabuk olarak çağrıldığında, bash, ENV değişkenini arar, tanımlanmışsa değerini genişletir ve genişletilmiş değeri, dosyasının okunması ve çalıştırılması adı olarak kullanır. Sh olarak çağrılan bir kabuk okumaya ve komutlarını başka bir başlangıç ​​dosyasından yürütmeye çalışmadığından, --rcfile seçeneğinin etkisi yoktur. Sh adıyla çağrılan etkileşimli olmayan bir kabuk, başka bir başlangıç ​​dosyasını okumaz. Sh olarak çağrıldığında, bash, başlangıç ​​dosyaları okunduktan sonra posix moduna girer.

Genellikle bu başkalarına yardım benim .bash_profile

.profile için Umut hareket etmeliyiz gibi sadece ~/.bashrc ve ~/.bash_profile serseri düzgün çalışması için görünür yapılandırın.

  • GNU Emacs: 25.0.94.2 Tramp: 2.2.13.25.1
İlgili konular