Ben çalıştırmak çalışıyorum geditUbuntu 12.04 Server çalıştıran bir Amazon EC2 örneğine bağlı Windows üzerinde bir SSH terminalinden gelen ve bu hatayı alıyorum:
Cannot open display:
Nasıl düzeltebilirim?
Ben çalıştırmak çalışıyorum geditUbuntu 12.04 Server çalıştıran bir Amazon EC2 örneğine bağlı Windows üzerinde bir SSH terminalinden gelen ve bu hatayı alıyorum:
Cannot open display:
Nasıl düzeltebilirim?
Yanıtlar:
Windows'u yanınızda kullandığınız için, ekrandan sunucudan grafik uygulamaları uzaktan çalıştırmak için Windows'ta yerel bir X sunucusu çalıştıran bir SSH istemcisine ihtiyacınız olacaktır.
Deneyimden , bu işlevselliği yerleşik olan ücretsiz MobaXTerm'i tavsiye ederim . Lütfen indirin ve deneyin:

Herhangi bir hata alırsanız, bunun nedeni bazen X'e iletmeye izin vermek için minimum bir sunucu görüntüsü ayarlanmamış olabilir . Bu durumda, lütfen yorum yapın, çözmenize yardımcı olacağım; Ben Ubuntu / Debian çalışan minimal VPS bir sürü ile yaptım.
Evinizde pc den bağlanıyorsanız Yani (diyelim makineniz (diyelim bir sunucuya) sunucusu aracılığıyla) ssh ? Makineniz üzerinden sunucu üzerinde grafik pencereli bir program başlatmak mı istiyorsunuz? Bu kesinlikle doğru ise okumaya devam edin.
Programı başlatmak için çağıralım geditama süreç herkes için aynı. Grafik penceresini görmek istediğiniz yere bağlı olarak sağ başlığa atlayın.
Uzak makinenizde gedit'in penceresini görmek ve kullanmak, ancak sunucuda başlamak istiyorsanız, kabuk oturumunuzun şöyle görünmesini istersiniz:
user@remote-machine:~$ ssh -X user@server
Last login: Tue Aug 14 13:47:04 2012 from clientXX
*******************************************************************************
M O T D (Message Of The Day)
*******************************************************************************
user@server:~$ gedit .bash_aliases
** (gedit:7851): WARNING **: Could not load theme icon gtk-home: Icon 'gtk-home' not present in theme
(gedit:7851): Gtk-WARNING **: Attempting to store changes
Uyarılara aldırmayın, normaldir - gedit penceresi uzak makinenizin ekranında sunucuya benzeyecek şekilde açılır. İşin püf noktası, "-X" -seçimini ssh -XX tünellemesini mümkün kılan ve DISPLAYdeğişkeni sağa ayarladığı şekilde kullanmaktır .
Bu, X11'i destekleyen bir SSH istemcisi kullandığınızı ve sunucunuzun bir X sunucusu çalıştığını varsayar (bazıları GUI'lere ihtiyaç duymadan X-sunucusu çalıştırmaz). Özellikle pencerelerde bu terminal programları X. As yok çoğu pencereler gibi bir sorun olabilir izx belirtilen MobaXterm olsa bir X-Server olması pencereler için birçok SSH istemcileri biridir.
Ancak X11 içermeyen bir sunucu için yüklemeniz gerekir.
Gedit'i şu şekilde çağırarak sunucunuzun ekranında bir örnek başlatabilirsiniz:
ssh user@server
DISPLAY=:0.0 gedit
Doğru değeri :0.0, doğru X-ekranına almak yerine değiştirmek zorundasınız (sadece sunucunuza birden çok ekran bağlıysa veya yapılandırmasında biraz tuhafsa) önemlidir.
Burada bunun işe yaramaması için en yaygın senaryo, Sunucu bir X11-Server'a sahip değilse, ancak ona bağlı bir monitör yoksa veya grafik kullanıcı arayüzü yoksa ve bunu okumuyorsanız olacaktır: D.
Bununla hiç uzman değilim, ama çalıştığını düşünüyorum yolu her fiziksel ekrana olduğunu, yani bireysel bir bilgisayara bağlı her monitör olduğu şeklinde bir çalışan sayısını alır 0.0, 1.0, 2.0, ...
Bu numara X-Window-System, yani X11 tarafından atanır. Bu, Unity, Gnome, KDE ve benzerlerinin üzerine inşa edilebileceği bir ağ ve temel grafik arayüz sağlamak için bir katmandır.
Söz for x in /tmp/.X11-unix/X*; do echo ":${x##*X}"; donekonusu makinede çalışarak belirli bir makinede kaç ekranın olduğunu ve hangi sayıların kullanıldığını görebilirsiniz . * Ardından, ekranlarını kullanılabilir hale getirmek ve X sunucusu çalıştıracak şekilde yapılandırılan her bilgisayarın bir ana bilgisayar adı vardır. DISPLAYDeğişkeninizi buna göre ayarlayarak aynı ağdaki herhangi bir makinedeki ana bilgisayar ekranlarını kullanabilirsiniz DISPLAY=hostname:0.0. -XSeçeneği sağlarsanız Ssh bunu sizin için mantıklı bir şekilde yapar .
* Not: Sanırım bu for-loop'tan daha iyi bir yol var.
Bir kabuk metin düzenleyicisi kullanın. vi, vim, nanoVe emacsen yaygın ve bunlardan en az biri yüklü ve operasyonel edilecektir. Bunlardan nanoen kolay ve en açıklayıcıdır.
forDöngüyü biraz değiştirdim ... şimdi sadece görüntüleme adresini gösterecek :0 :0.0. İstediğini değil düşünüyorsanız geri dönmek için çekinmeyin ..
Temelde SSH üzerinden bir terminaliniz var ve Gedit bir GUI programıdır. con-f-use'ın yanıtı Linux GUI istemci oturumundan çalışmasını sağlayacaktır.
Diğer seçenek nano, Vi veya diğerleri gibi GUI olmayan bir editör kullanmak olabilir.