Xmanager遠程Centos 7 Xfce


        最近發現遠程除了使用VNC還可以用Xmanager,孤陋寡聞了,通過這個遠程軟件,又把不怎么關注的Xwindow給了解了一遍。

Xfce是一個自由軟件,運行在類Unix操作系統 (如Linux、FreeBSD 和 Solaris)上,提供輕量級桌面環境。什么是桌面環境?看看這里linux桌面環境gnome,kde,xfce,lxde 使用比較(轉)

LightDM,即:Light Display Manager,是一個全新的、輕量的Linux桌面的桌面顯示管理器,而傳統的Ubuntu用的是GNOME桌面標准的GDM。

0x00  失敗安裝lightdm

想要安裝lightdm,然后最直接的想到yum install lightdm,果然不是順利完成。本機配置只有光盤和epel源

Error: Package: lightdm-gobject-1.10.6-4.el7.x86_64 (epel)
           Requires: glib2(x86-64) >= 2.42.2
           Installed: glib2-2.36.3-5.el7.x86_64 (@anaconda)
               glib2(x86-64) = 2.36.3-5.el7

 

於是乎想到了源碼安裝,源碼安裝最不爽的就是解決一堆依賴關系。折騰了好一會,最終還是回到原點。且看下述依賴關系的解決過程。

1、configure: error: PAM not found,這個我在yum安裝pam-devel就解決了

2、接着congfigure,提示少了五個包,那就一一解決。

checking for LIGHTDM... no
configure: error: Package requirements (
    glib-2.0 >= 2.30
    gio-2.0 >= 2.26
    gio-unix-2.0
    xdmcp
    xcb
) were not met:

No package 'glib-2.0' found
No package 'gio-2.0' found
No package 'gio-unix-2.0' found
No package 'xdmcp' found
No package 'xcb' found

    安裝完 glib2-devel后就剩下兩個包未解決了
          No package 'xdmcp' found
          No package 'xcb' found

    yum安裝libxcb-devel最后就剩下一個

          No package 'xdmcp' found

    下載一個libXdmcp-devel安裝完也解決了

3、再次configure,這次出現的是,這個我的yum源也沒有,下載itstool

         configure: error: itstool not found

4、最后一個提示,發現沒有安裝intltool,yum源找到安裝。

        configure: error: Your intltool is too old.  You need intltool 0.35.0 or later.

5、最后終於configure成功了

config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po/stamp-it commands

                    Light Display Manager 1.10.6
                    ===========================

        prefix:                   /usr/local/lightdm
        Greeter session:          default
        Greeter user:             lightdm
        User session:             default
        liblightdm-gobject:       no
        GObject introspection:    no
        liblightdm-qt:            no
        liblightdm-qt5:           no
        libaudit support:         no
        Enable tests:             yes

然后就make,想不到繞了這么久最終居然還是回到了glib2這個原點。 

  CCLD     test-gobject-greeter
/usr/bin/ld: cannot find -llightdm-gobject-1
collect2: error: ld returned 1 exit status

[root@localhost lightdm-1.10.6]# rpm -ih lightdm-gobject-1.10.6-4.el7.x86_64.rpm
error: Failed dependencies:
        glib2(x86-64) >= 2.42.2 is needed by lightdm-gobject-1.10.6-4.el7.x86_64

    好吧,只要安裝新的glib2的rpm包就會提示軟件包內各種文件和現有的文件同名沖突,那么如果用源碼安裝glib2呢,這里真的是犯迷糊了,既然是文件沖突那么源碼安裝后的目錄里面一堆庫文件同樣也是沖突的啊,做了無用功,反正我導出到/etc/ld.so.conf.d后再configure是沒有效果的。

0x01  卸載升級glib2

一開始rpm -e發現glib2有太多的軟件包依賴於它,所以為了避免影響,不做強制安裝。

rpm –e --nodeps glib2
rpm –e --nodeps glib2-devel

下載新版本的glib2-2.42.2,重新安裝。一切順利,沒有任何報錯

附上找到的一個下載地址:http://ftp.gnome.org/pub/gnome/sources/glib/

0x02  安裝lightdm

解決了glib2的問題直接yum install lightdm安裝完成。

1、配置文件

 vim /etc/lightdm/lightdm.conf

修改或添加以下
[XDMCPServer]
enabled=true
port=177

2、關閉原有的gdm

systemctl stop gdmsystemctl start lightdm

3、安裝Xfce 在yum group list中發現Xfce這個軟件包組未安裝,yum groupinstall Xfce即可。但是又是一堆依賴性問題,這里的最終問題就是,我因為把默認系統的yum源都刪除了,只留下了epel和光盤自帶軟件,因為默認的Centos是國外站點,這里下載一個國內中科大的源。

--> Finished Dependency Resolution
Error: Package: orage-4.12.1-3.el7.x86_64 (epel)
           Requires: libicalvcal.so.1()(64bit)
Error: Package: orage-4.12.1-3.el7.x86_64 (epel)
           Requires: libical.so.1()(64bit)
Error: Package: xfce4-power-manager-1.6.0-2.el7.x86_64 (epel)
           Requires: upower >= 0.99
           Installed: upower-0.9.20-7.el7.x86_64 (@Iso)
               upower = 0.9.20-7.el7
Error: Package: tumbler-0.1.31-2.el7.x86_64 (epel)
           Requires: libpoppler-glib.so.18()(64bit)
Error: Package: xfce4-power-manager-1.6.0-2.el7.x86_64 (epel)
           Requires: libupower-glib.so.3()(64bit)
Error: Package: orage-4.12.1-3.el7.x86_64 (epel)
           Requires: libicalss.so.1()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

[root@localhost yum.repos.d]# wget -O BaseZKD.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3

現在可以安裝軟件組了,但是檢查依賴之后發現有一個已安裝軟件lvm2-2.02.105的文件跟要安裝的device-mapper沖突,於是乎我用yum update lvm2-2.02.105,先升級,再執行yum install xfce。順利安裝!

0x03  使用Xmanager

什么是Xmanager ?就像什么是office,office還包含了word,excel,ppt等。這可以認為就是一個軟件套裝,包含了各個用於遠程連接的工具。可以讓你用各種姿勢連接。

Xmanager企業版中各軟件功能簡介

用Xstart連接linux遠程桌面,為了省事找了個不用安裝的Xmanager,地址:http://www.zdfans.com/4555.html

打開Xbrowser,新建Xstart,只要有ssh登錄的賬號密碼就可以了。

    image

會話屬性要修改,因為使用的是xfce,執行命令如下。

    image

然后就大功告成了!

0x04  X-window知其然

什么是X-window,稱之為X11或X,X Window其實是一種規范,它有很多不同的實現,在Linux系統下的實現是Xorg和XFree86。目前依據X的規范架構所開發撰寫成的實現體中, 以X.Org最為普遍且最受歡迎。X.Org所用的協議 版本是X11,是在1987年9月所發布。在它的基礎上開發出了諸如Gnome和KDE等桌面環境。

都知道它是Unix/Linux下面的窗口系統,也都知道它基於Server/Clinet架構,好處是可以把服務器運行於和顯示器所在的機器不同的另一台機器上,X Window中的Server和Client的概念和我們平時接觸到的“Server/Client”概念剛好相反。X服務器將顯示輸出到屏幕,所以簡單理解,有顯示的就是X服務器端,需要被顯示的如程序界面就是客戶端。

X-Window的組成可以分為以下三個部分
     X-Server(服務器)
     X-Client(客戶端)
     X-Protocol(通信協議)

X-Server

  • X的服務器端,運行在有顯示設備的主機上。負責所有有關圖形顯示的操作。主要在處理來自 X-Client 應用程序的請求。
  • 在屏幕上繪制圖形 (所以又稱為 Display Server),並且負責管理可用的字形與屏幕可用的顏色等系統資源,讀取使用者的輸入 (來自鍵盤或鼠標),傳送鍵盤、鼠標事件與窗口狀態信息給 X-Client (也就是應用程序)。
  • X-Server負責和設備打交道,負責具體的管理的顯 卡,顯示器的顯示模式和參數設置(這也是整個X 系統中最復雜的部分)
  • X-Server還包括最低層的與設備相關的圖形庫,目 前主要是Xlib
  • 目前的X-Server主要有XFree86和Xorg兩個

X-Client

 

  • X的服務器端,任何一個X應用程序(文字處理、數 據庫應用、網絡軟件等),包括WM(窗口管理器) 在內都是X-Client
  • X-Client不負責任何圖形相關的具體操作,只和XServer交互,由X-server負責完成其圖形顯示任務, 這種交互一般來說是通過在底層調用Xlib實現的
  • X-Client的核心任務是計算和數據處理。更確切的 說是消息處理
  • X-Client可以運行在本地機器,也可以運行在網絡 上的不同主機。

X-Protocol

  • X-Protocol是X-Server與X-Client之間的通信協議。 從本質上來說,它是一種遠程顯示協議。
  • 在接觸更多X Programming 的信息后,會慢慢體會到它的存在,目前不妨暫時將 X-Protocol 在 XWindow 中所扮演的角色,想象為 HTTP 協議在 Web Server 與 Web Client (Browser) 間所扮演的溝通角色一樣。
  • 在 X-Window System 中比較特殊的一點,就是 X-Protocol 允許 X-Server 與 X-Client 能跨網絡來交換訊息,這意味着X-Server 與 X-Client 不限制都得在同一台機器上執行,可在不同的計算機上同時執行(網絡透明性)。不同機器上的XClient只要顯示在當前的X-Server上,他們就具有相似的行為,就服從當前X-Server的統一的風格和工作方式。

image

Request X-Client向X-Server發送窗口生成,窗口的操作,圖形的表示等等要求時使用的消息。另外,各種各樣的情報取得時,也會向X-Server發送Request消息。

Reply X-Server接收到X-Client發送的請求后,把必要情報返回給X-Client時發送的消息。發送請求的X-Client在Reply返回前會進入等待狀態。(窗口生成和圖形表示等要求時不會進入等待狀態)

Event X-Server將用戶的鍵盤輸入,鼠標操作等事件通知給X-Client時所發送的消息。

Error X-Server發生故障時,把故障通知給X-Client時所發送的消息

image

X-Window的C/S架構和我們平常看到的很多C/S 架構正好相反,對於大多數的C/S架構,Server 一般都是在網絡上提供某種服務的程序,如FTP,HTTP,BBS,Email等服務,而Client則是向這些Server要求服務的程序,比如Browser, Email-Client等。而在 X-Window System 中, X-Client 指的則是可在網絡上任何計算機上執行的各種應用程序,它們的執行結果必須傳到某個屏幕顯示器上,而負責將執行結果顯示到屏幕上 與管理各種系統資源的程序,便是 X-Server(一定是運行在使用者自己的計算機上)。我們可以在自己的計算機上激活 X-Server后,再Telnet 聯機至其它計算機,將其它計算機上XClient的執行結果傳回到自己的屏幕上。當然XServer 一定得在使用者自己的計算機上執行,這樣我們才能看到應用程序 (X-Clients) 的執行結果為何。

image

什么是窗口管理器?

        很多人不知道窗口管理器是怎么回事。他們認為 Gnome 和 KDE 是窗口管理器,認為窗口管理器就是能夠提供一個工具條,能夠配置桌面背景,能夠設置很多菜單的東西。而其實,窗口管理器只是 Gnome 和 KDE 的一部分,它的主要功能是你平時根本沒有注意,但是卻非常重要的操作。窗口管理器的主要功能是:移動窗口,改變窗口大小,圖標化(最小化)窗口,改變窗口層疊順序……

        通常的X客戶程序不需要知道有人想移動它,它只知道乖乖聽窗口管理器的話。如果沒有窗口管理器運行,你的程序會一個堆一個,你沒有辦法操縱被蓋在下面的程序,你只能使用最上面一個程序,而且你不能移動它,你不能改變它的大小。這樣的系統根本不能用!

        其實你的窗口上的標題,按鈕,漂亮的邊框,全都是窗口管理器提供的,而不是程序自己的,這樣你用窗口管理器就能改變任何窗口的樣式了。當你點擊關閉窗口的那個按鈕,你其實點擊的是窗口管理器放在你的程序窗口上面的一個小窗口,發現它受到點擊后,窗口管理器就會通知那個程序:“喂!有人想關掉你,你自己准備准備后事,然后退出吧。”

Gnome 和 KDE

        是“桌面系統”,一種很多程序和函數庫的集合。它們的設計目的是提供一致的方便的操作方式來滿足普通用戶的需要。它們不但包含窗口管理器,還有很多實用程序和應用程序,比如配置程序,工具條,編輯器,繪圖工具…… 其實 Gnome 可以和很多窗口管理器合作

顯示管理器(Display Manager)

X Server的啟動方式有兩種,一種是通過顯示管理器啟動,另一種是手動啟動。顯示管理器(Display Manager)是什么呢?display就是一個電腦配備的一套鍵盤鼠標和顯示器,那么顯示管理器就是這一套設備的管理器了。顯示管理器可以直接管理這些設備,所以它可以控制X Server的運行,由它來啟動X Server那是再合適不過了。系統啟動過程是這樣的:內核加載-->init程序運行-->顯示管理器運行-->X Server運行-->顯示管理器連接到X Server,顯示登錄界面-->用戶登錄后,登錄界面關閉,加載桌面環境。從上面的流程可以看出,顯示管理器是X Server的父進程,它負責啟動X Server,當X Server啟動后,它又變成了X Server的一個Client程序,連接到X Server顯示歡迎界面和登錄界面,最后,顯示管理器又是所有桌面環境的父進程,它負責啟動桌面環境需要的其它Client程序。

參考:

Xmanager 遠程連接CentOS linux和SUSE linux

Linux在遠程X Server上顯示圖形界面

linux服務之X windows

linux圖形界面基本知識(X、X11、Xfree86、Xorg、GNOME、KDE之間的關系)

X Window 運行原理與啟動過程

http://www.rhce.cc/?p=1117 Xwindow視頻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM