Saya mencoba menjalankan gedit
dari terminal SSH di Windows, terhubung ke instance Amazon EC2 yang menjalankan Ubuntu 12.04 Server dan saya mendapatkan kesalahan ini:
Cannot open display:
Bagaimana saya memperbaikinya?
Karena Anda menggunakan Windows di sisi Anda, Anda akan memerlukan klien SSH yang menjalankan server X lokal pada Windows untuk menjalankan aplikasi grafis dari server dari jarak jauh di layar Anda.
Dari pengalaman, saya akan merekomendasikan MobaXTerm gratis yang memiliki fungsi ini bawaan . Silakan unduh dan cobalah:
Jika Anda mendapatkan kesalahan, itu karena kadang-kadang gambar server minimal mungkin tidak diatur untuk memungkinkan penerusan X ke dalamnya. Jika demikian, beri komentar dan saya akan membantu Anda menyelesaikannya; Saya telah melakukan ini dengan banyak VPS minimal yang menjalankan Ubuntu / Debian.
Jadi Anda terhubung dari PC rumah Anda (sebut saja mesin Anda ) ke server (sebut saja server ) melalui ssh ? Anda ingin memulai program dengan jendela grafis di server melalui mesin Anda? Jika itu benar dari semua, baca terus.
Mari kita panggil program untuk memulai gedit
tetapi prosesnya sama untuk semua. Tergantung di mana Anda ingin melihat jendela grafis lewati ke arah kanan.
Jika Anda ingin melihat dan menggunakan jendela gedit di mesin jarak jauh Anda tetapi mulai di server, Anda ingin sesi shell Anda terlihat seperti ini:
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
Jangan pedulikan peringatannya, itu normal - jendela gedit akan muncul di layar mesin jarak jauh Anda seperti yang terlihat di server. Caranya adalah dengan menggunakan opsi "-X" ssh -X
yang memungkinkan X-tunneling dan mengatur DISPLAY
variabel dengan benar.
Ini mengasumsikan bahwa Anda menggunakan klien SSH yang mendukung X11 dan bahwa server Anda menjalankan X-server (beberapa tanpa perlu GUI tidak menjalankan X-server). Terutama pada windows ini mungkin menjadi masalah karena kebanyakan jendela program terminal tidak memiliki X. Sebagai izx menyatakan MobaXTerm adalah salah satu dari banyak klien SSH untuk jendela yang memiliki X-Server sekalipun.
Untuk server yang kekurangan X11, Anda harus menginstalnya.
Anda juga dapat memulai instance di layar server Anda dengan memanggil gedit seperti ini:
ssh user@server
DISPLAY=:0.0 gedit
Anda harus mengganti nilai yang tepat alih-alih :0.0
mendapatkannya di layar-X yang tepat (hanya penting jika beberapa layar terhubung ke server Anda atau jika itu agak aneh dalam konfigurasinya).
Di sini skenario yang paling umum untuk itu tidak berfungsi adalah jika Server tidak memiliki X11-Server tetapi daripada itu tidak akan memiliki monitor yang terhubung atau tidak memiliki antarmuka pengguna grafis dan Anda tidak akan membaca ini: D.
Saya bukan ahli dalam hal ini, tapi cara saya berpikir kerjanya adalah, bahwa setiap layar fisik, yaitu masing-masing monitor yang terhubung ke komputer individu mendapat sejumlah berjalan dalam bentuk 0.0
, 1.0
, 2.0
, ...
Nomor ini diberikan oleh X-Window-System alias X11. Itu adalah lapisan untuk menyediakan jaringan dan antarmuka grafis dasar yang dapat dibangun oleh Unity, Gnome, KDE dan sejenisnya.
Anda dapat melihat berapa banyak tampilan yang dimiliki mesin dan angka apa yang digunakan dengan menjalankan for x in /tmp/.X11-unix/X*; do echo ":${x##*X}"; done
pada mesin tersebut. * Kemudian setiap komputer yang dikonfigurasi untuk membuat layarnya tersedia dan menjalankan server X memiliki nama host. Anda dapat menggunakan layar host dari mesin apa pun di jaringan yang sama dengan mengatur DISPLAY
variabel Anda sesuai dengan DISPLAY=hostname:0.0
. Ssh melakukan ini untuk Anda dengan cara yang masuk akal jika Anda memberikan -X
opsi.
* Catatan: Saya kira ada cara yang lebih baik daripada for-loop ini.
Gunakan editor teks shell. vi
, vim
, nano
Dan emacs
adalah yang paling umum dan setidaknya salah satu dari mereka akan diinstal dan operasional. Dari mereka nano
adalah yang termudah dan paling jelas.
for
loop sedikit .. sekarang hanya akan menampilkan alamat tampilan misalnya:0
:0.0
. Jangan ragu untuk kembali jika Anda pikir itu bukan yang Anda inginkan ..Apa kata con-f-use .
Pada dasarnya Anda memiliki terminal melalui SSH dan Gedit adalah program GUI. Jawaban con-f-use akan membuatnya bekerja dari sesi klien GUI Linux.
Pilihan lainnya adalah menggunakan editor non GUI seperti nano, Vi atau banyak lainnya.
sumber