2017-01-27 21 views
11

Pytanie

Próbuję włączyć X11 spedycja przez pycharmSSH Terminal który może być wykonywany przezJak włączyć przekazywanie X11 w sesji PyHharm SSH?

"Tools -> Start SSH session..." 

Niestety, wydaje się, że ma sposób określania flagi takie, jak robiłbym w mojej skorupie za włączenie X11 Forwarding:

ssh -X [email protected] 

Czy znasz jakiś sprytny sposób na osiągnięcie tego?


Aktualny brudny roztwór

Jedynym dirty hack, znalazłem jest otwarcie połączenia zewnętrzny ssh z X11 i spedycji niż ręcznie zaktualizować zmienną środowiskową DISPLAY.

Na przykład można uruchomić na moim zewnętrznym sesji ssh:

[email protected]:$ echo $DISPLAY 
localhost:10.0 

I niż zestaw na moim terminalu pycharm:

export DISPLAY=localhost:10.0 

lub zaktualizować DISPLAY zmienną w Run/Debug Konfiguracja, jeśli chcę uruchomić program z GUI.

Jednak ja naprawdę nie lubię to rozwiązanie z wykorzystaniem zewnętrznego terminala ssh i ręcznie zaktualizować zmienną Wyświetlacz i jestem pewien, że istnieje lepszy sposób osiągnięcia tego celu!

Każda pomoc będzie mile widziana.


P.s. Dokonywanie alias jak:

alias ssh='ssh -X' 

w moim .bashrc nie zmusza pycharm aby umożliwić przekazywanie X11.

+2

I okazało się, że pycharm nie używa ssh systemu. Zamiast tego używa [JSch] (http://www.jcraft.com/jsch/), która jest czystą implementacją ssh w Javie.JSch obsługuje przekazywanie x11, domyślnie nie jest włączone.Jednym sposobem rozwiązania problemu byłoby zastąpienie pliku jsch.jar dołączonego do pycharm z niestandardową wersją z różnymi wartościami domyślnymi. –

+0

Dziękuję @OliverWeissbarth za komentarz! Gdybyś był tak uprzejmy, by podać nieco więcej szczegółów i rozwiązanie krok po kroku w rzeczywistej odpowiedzi, byłbym bardzo szczęśliwy, mogąc oznaczyć go jako zatwierdzony! – Gengiolo

+0

Mają otwarty problem na ten temat: https://youtrack.jetbrains.com/issue/PY-13869 Wygląda na to, że nie ma obecnie oficjalnego rozwiązania :( – MZHm

Odpowiedz

2

Więc udało mi się załatać jscha i przetestować to i działało świetnie. Oto, co musisz zrobić poniżej w systemie Mac OS lub Linux.

wget http://sourceforge.net/projects/jsch/files/jsch/0.1.54/jsch-0.1.54.zip/download 
unzip download 
cd jsch-0.1.54 
sed -e 's|x11_forwarding=false|x11_forwarding=true|g' -e 's|xforwading=false|xforwading=true|g' -i src/main/java/com/jcarft/jsch/*.java 
sed -e 's|<version>0.1.53</version>|<version>0.1.53</version>|g' -i pom.xml 
mvn clean package 

To stworzy jsch-0.1.54.jar w target folderu. Musisz skopiować to do folderu pycharm lib. Gdy to zrobisz i utworzysz połączenie, będziesz miał włączoną obsługę X11. Upewnij się, że kopię zapasową oryginalnego pliku

X11 Enabled

+0

Cześć Tarun! Dziękuję za twoje rozwiązanie Teraz zmienna $ DISPLAY wydaje się być automatycznie ustawiona, ale jeśli uruchomię polecenie jak "eog img.png" Otrzymuję: "** (eog: 40789): OSTRZEŻENIE **: Nie można otworzyć wyświetlacza X." Czy wiesz, jak to naprawić? – Gengiolo

+0

@Gengiolo, testowałem i prawdopodobnie wymaga on wywołania fa o wiele więcej metod http://www.jcraft.com/jsch/examples/X11Forwarding.java.html. Niestety nie mam czasu na dalsze debugowanie tego problemu. Ale to powinno dać ci kierunek do odkrycia i jak to zrobić –

+0

dziękuję za twój wysiłek, zasługujesz na nagrodę! :) Zajrzę do tego i zaktualizuję ten wątek JAK NAJSZYBCIEJ! – Gengiolo

Powiązane problemy