首頁 > 軟體

Xmanager遠端連線CentOS 7 XFCE

2020-06-16 17:18:51

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

Xfce是一個自由軟體,執行在類Unix作業系統 (如Linux、FreeBSD 和 Solaris)上,提供輕量級桌面環境。什麼是桌面環境?看看這裡 Linux桌面環境GNOME,KDE,XFCE,LXDE 比較  http://www.linuxidc.com/Linux/2011-08/40224.htm

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,重新安裝。一切順利,沒有任何報錯

glib2-2.42.2可以到Linux公社資源站下載:

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

使用者名稱與密碼都是www.linuxidc.com

具體下載目錄在 /2017年資料/3月/21日/Xmanager遠端連線CentOS 7 XFCE/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

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企業版中各軟體功能簡介  http://www.linuxidc.com/Linux/2017-03/142009.htm

用Xstart連線linux遠端桌面,為了省事找了個不用安裝的Xmanager,地址:http://www.linuxidc.com/Linux/2017-03/142010.htm

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

   

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

   

然後就大功告成了!

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的統一的風格和工作方式。

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時所傳送的訊息

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) 的執行結果為何。

什麼是視窗管理器?

        很多人不知道視窗管理器是怎麼回事。他們認為 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程式。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-03/142008.htm


IT145.com E-mail:sddin#qq.com