【Guacamole中文文档】二、用户指南—— 2.Guacamole源码安装
Guacamole源碼安裝
Guacamole分為兩部分:guacamole-server,提供Guacamole代理和相關(guān)庫(kù);以及guacamole-client,提供通過servlet容器(通常是Apache Tomcat)運(yùn)行服務(wù)的客戶端。
guacamole-client可以是二進(jìn)制形式,但guacamole-server必須從源代碼構(gòu)建。不要怕:源代碼方式構(gòu)建Guacamole的組件并不像聽起來(lái)那么難,而且構(gòu)建過程是自動(dòng)化的。你只需要確保提前安裝了必要的工具。有了必要的依賴關(guān)系,制作Guacamole只需幾分鐘。
構(gòu)建guacamole-server
guacamole-server包含Guacamole連接遠(yuǎn)程桌面所需的所有原生的服務(wù)端組件。它提供了一個(gè)通用的C庫(kù)libguac,所有其他原生組件都依賴它,并為每個(gè)受支持的協(xié)議提供了單獨(dú)的庫(kù),以及Guacamole的核心guacd。
guacd是在Guacamole服務(wù)器上運(yùn)行的代理守護(hù)進(jìn)程,它接受用戶通過Guacamole Web應(yīng)用程序進(jìn)行的隧道連接,然后代表用戶連接到遠(yuǎn)程桌面。構(gòu)建guacd會(huì)創(chuàng)建一個(gè)名為guacd的可執(zhí)行文件,可以手動(dòng)運(yùn)行,或者在計(jì)算機(jī)啟動(dòng)時(shí)自動(dòng)運(yùn)行。
構(gòu)建guacamole-server,需要一個(gè)C編譯器(如gcc)和guacamole-server的依賴庫(kù)。有些依賴項(xiàng)是必須的,而有些是可選的。存在可選依賴項(xiàng)則啟用了附加功能。
?重點(diǎn): 許多Linux發(fā)行版將庫(kù)包分為二進(jìn)制包和“開發(fā)”包;你需要安裝開發(fā)包。它們通常以“-dev”或“-devel”后綴結(jié)尾。必需的依賴項(xiàng)
構(gòu)建guacamole-server,需要Cairo、libjpeg(或libjpeg-turbo)、libpng以及l(fā)ibuuid(或OSSP UUID庫(kù))。任何情況下這些庫(kù)都是嚴(yán)格需要的,沒有則無(wú)法構(gòu)建Guacamole。
-
Cairo
libguac使用Cairo進(jìn)行圖形渲染。如果不安裝Cairo,Guacamole就不能運(yùn)轉(zhuǎn)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libcairo2-dev Fedora / CentOS / RHEL package cairo-devel -
libjpeg-turbo
libguac使用libjpeg-turbo來(lái)提供JPEG支持。如果沒有該庫(kù),Guacamole將無(wú)法構(gòu)建。
發(fā)行版庫(kù)名 Debian package libjpeg62-turbo-dev Ubuntu package libjpeg-turbo8-dev Fedora / CentOS / RHEL package libjpeg-turbo-devel 如果libjpeg-turbo在你的平臺(tái)不可用,且你不想從源碼構(gòu)建它,也可以使用libjpeg ,但沒有l(wèi)ibjpeg-turbo那么快。
發(fā)行版庫(kù)名 Debian / Ubuntu package libjpeg62-dev Fedora / CentOS / RHEL package libjpeg-devel -
libpng
libpng被libguac用于PNG圖像寫入,這是Guacamole協(xié)議使用的核心圖像類型。沒有l(wèi)ibpng,Guacamole無(wú)法運(yùn)轉(zhuǎn)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libpng12-dev Fedora / CentOS / RHEL package libpng-devel -
libtool
libtool在構(gòu)建過程中用于創(chuàng)建Guacamole所需的編譯庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libtool-bin Fedora / CentOS / RHEL package libtool -
libuuid(util-linux 的一部分)
libuuid被libguac用于為每個(gè)Guacamole用戶和連接分配唯一的內(nèi)部ID。這些唯一的ID是連接共享支持的基礎(chǔ)。
發(fā)行版庫(kù)名 Debian / Ubuntu package uuid-dev Fedora / CentOS / RHEL package libuuid-devel 如果libuuid不可用,也可以使用OSSP UUID庫(kù):
發(fā)行版庫(kù)名 Debian / Ubuntu package libossp-uuid-dev Fedora / CentOS / RHEL package uuid-devel
可選的依賴項(xiàng)
Guacamole的可選依賴項(xiàng)決定了將構(gòu)建Guacamole服務(wù)的哪些部分。這包括對(duì)各種遠(yuǎn)程桌面協(xié)議的支持,以及這些協(xié)議的任何附加功能:
- VNC協(xié)議支持依賴于libvncclient庫(kù),它是libVNCServer的一部分。
- RDP協(xié)議支持依賴于FreeRDP的最新版本(2.0.0或更高版本,但不要使用git中的非發(fā)行版本)。
- SSH協(xié)議支持依賴于libss2、OpenSSL和Pango(Guacamole的內(nèi)置終端模擬器使用的字體呈現(xiàn)和文本布局庫(kù))。
- Telnet協(xié)議支持依賴于libtelnet和Pango。
- Kubernetes協(xié)議支持依賴于libwebsockets、OpenSSL和Pango
guacenc使用程序由guacamole-server提供,用于將屏幕錄制轉(zhuǎn)換成視頻,它依賴于FFmpeg,并且僅在至少安裝了FFmpeg提供的libavcodec、libavformat、libavutil和libswscale庫(kù)的情況下才會(huì)被構(gòu)建。
?重點(diǎn): 如果缺少這些依賴項(xiàng),則依賴它們的功能或協(xié)議將無(wú)法啟用。在決定不安裝可選依賴項(xiàng)之前,請(qǐng)仔細(xì)閱讀本章節(jié)。-
FFmpeg
在轉(zhuǎn)換Guacamole會(huì)話的錄像時(shí),guacenc使用FFmpeg提供的libavcodec、libavformat、libavutil和libswscale庫(kù)對(duì)視頻流進(jìn)行編碼。如果沒有FFmpeg,guacenc實(shí)用程序?qū)⒑?jiǎn)單地不被構(gòu)建。
如果您不想對(duì)Guacamole會(huì)話進(jìn)行圖形化錄制,或不希望將此類錄像轉(zhuǎn)換為視頻,則不需要FFmpeg。
發(fā)行版庫(kù)名 Debian / Ubuntu package libavcodec-dev, libavformat-dev,
libavutil-dev, libswsccale-devFedora / CentOS / RHEL package ffmpeg-devel -
FreeRDP
RDP支持需要FreeRDP 2.0.0或更高版本。如果不想構(gòu)建RDP支持,則不需要此庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package freerdp2-dev Fedora / CentOS / RHEL package freerdp-devel -
Pango
Pango是一個(gè)文本布局庫(kù),Guacamole使用它為需要終端(Kubernetes、SSH和telnet)的協(xié)議呈現(xiàn)文本。如果不希望構(gòu)建任何基于終端的協(xié)議支持,則不需要此庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libpango1.0-dev Fedora / CentOS / RHEL package pango-devel -
libssh2
SSH和SFTP支持需要libssh2庫(kù)。如果你不想構(gòu)建SSH或SFTP支持,則不需要該庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libssh2-1-dev Fedora / CentOS / RHEL package libssh2-devel -
libtelnet
telnet支持需要libtelnet庫(kù)。如果不想構(gòu)建telnet支持,則不需要該庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libtelnet-dev Fedora / CentOS / RHEL package libtelnet-devel -
libVNCServer
VNC支持需要libVNCServer提供的libvncclient庫(kù)。如果不想構(gòu)建VNC支持,則不需要該庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libvncserver-dev Fedora / CentOS / RHEL package libvncserver-devel -
libwebsockets
Kubernetes支持需要libwebsockets庫(kù)。如果不想構(gòu)建Kubernetes支持,則不需要該庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libwebsockets-dev Fedora / CentOS / RHEL package libwebsockets-devel -
PulseAudio
PulseAudio提供libpulse,Guacamole的VNC支持使用libpulse提供實(shí)驗(yàn)性音頻支持。如果不打算使用VNC的實(shí)驗(yàn)性音頻支持,那么就不需要這個(gè)庫(kù)。
發(fā)行版庫(kù)名 Debian / Ubuntu package libpulse-dev Fedora / CentOS / RHEL package pulseaudio-libs-devel -
OpenSSL
OpenSSL提供SSL和TLS支持,這兩種常見的加密方案構(gòu)成了大部分加密web流量。
如果安裝了libssl,那么guacd將以SSL支持方式構(gòu)建,從而允許對(duì)web應(yīng)用程序和guacd之間的加密通信。對(duì)于SSH支持、操作公鑰或私鑰、Kubernetes支持以及到Kubernetes服務(wù)的SSL/TLS連接,也需要這個(gè)庫(kù)。
離開SSL支持,就沒有g(shù)uacd加密通信的選項(xiàng),也無(wú)法構(gòu)建對(duì)SSH和Kubernetes的支持。
發(fā)行版版本 Debian / Ubuntu package libssl-dev Fedora / CentOS / RHEL package openssl-devel -
libvorbis
libvorbis為Ogg Vorbis提供支持,Ogg Vorbis是一種免費(fèi)開放的聲音壓縮標(biāo)準(zhǔn)。如果安裝了libguac,將構(gòu)建支持Ogg Vorbis,并且支持音頻的協(xié)議將在可能的情況下使用Ogg Vorbis壓縮。
否則,聲音將僅編碼為WAV(未壓縮),并且僅在瀏覽器也支持WAV時(shí)才可用。
發(fā)行版庫(kù)名 Debian / Ubuntu package libvorbis-dev Fedora / CentOS / RHEL package libvorbis-devel -
libwebp
libwebp被libguac用于WebP圖像寫入。盡管Guacamole協(xié)議沒有強(qiáng)制要求支持WebP,但如果瀏覽器和libguac都支持,則將使用WebP圖像。
由于缺乏WebP支持,Guacamole將只在它更喜歡WebP的情況下使用JPEG。
發(fā)行版庫(kù)名 Debian / Ubuntu package libwebp-dev Fedora / CentOS / RHEL package libwebp-devel
獲取源代碼
你可以從Guacamole項(xiàng)目網(wǎng)站獲取guacamole-server源代碼的副本。這些版本都是經(jīng)過充分測(cè)試的最新代碼的穩(wěn)定快照,Guacamole團(tuán)隊(duì)認(rèn)為它們適合公眾消費(fèi)者。從項(xiàng)目網(wǎng)站下載的源碼都以.tar.gz形式打包,你可以通過以下命令解壓:
$ tar -xzf guacamole-server-1.4.0.tar.gz $ cd guacamole-server-1.4.0/ $如果你想獲得絕對(duì)最新版本的源碼,且不關(guān)心代碼是否像穩(wěn)定版本那樣經(jīng)過充分測(cè)試,你也可以通過Guacamole團(tuán)隊(duì)的git倉(cāng)庫(kù)獲取源碼:
$ git clone git://github.com/apache/guacamole-server.git Cloning into 'guacamole-server'... remote: Counting objects: 6769, done. remote: Compressing objects: 100% (2244/2244), done. remote: Total 6769 (delta 3058), reused 6718 (delta 3008) Receiving objects: 100% (6769/6769), 2.32 MiB | 777 KiB/s, done. Resolving deltas: 100% (3058/3058), done. $構(gòu)建過程
一旦guacamole-server的源碼已經(jīng)被下載和解壓,你需要運(yùn)行configure腳本。這是一個(gè)由GNU Autotools自動(dòng)生成的shell腳本,GNU Autotools是一個(gè)流行的構(gòu)建系統(tǒng),Guacamole項(xiàng)目用它來(lái)進(jìn)行g(shù)uacamole-server的構(gòu)建。運(yùn)行configure將確定系統(tǒng)上有哪些庫(kù),并根據(jù)實(shí)際安裝的組件選擇適當(dāng)?shù)慕M件進(jìn)行構(gòu)建。
?重點(diǎn): 直接從git下載源碼將不包含configure腳本,因?yàn)樽詣?dòng)生成的代碼沒有包含在項(xiàng)目倉(cāng)庫(kù)中。如果直接從項(xiàng)目的git倉(cāng)庫(kù)下載代碼,則需要手動(dòng)生成configure腳本: $ cd guacamole-server/ $ autoreconf -fi $ 進(jìn)行這項(xiàng)操作需要安裝GNU Autotools。 從項(xiàng)目網(wǎng)站下載的源碼包已經(jīng)包含configure腳本和其他必要的構(gòu)建文件,因此不需要再構(gòu)建機(jī)器上安裝GNU Autotools。運(yùn)行configure后,您可以看到找到了哪些庫(kù),以及它確定應(yīng)該構(gòu)建哪些庫(kù):
$ ./configure --with-init-dir=/etc/init.d checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes ...------------------------------------------------ guacamole-server version 1.4.0 ------------------------------------------------Library status:freerdp2 ............ yespango ............... yeslibavcodec .......... yeslibavformat ......... yeslibavutil ........... yeslibssh2 ............. yeslibssl .............. yeslibswscale .......... yeslibtelnet ........... yeslibVNCServer ........ yeslibvorbis ........... yeslibpulse ............ yeslibwebsockets ....... yeslibwebp ............. yeswsock32 ............. noProtocol support:Kubernetes .... yesRDP ........... yesSSH ........... yesTelnet ........ yesVNC ........... yesServices / tools:guacd ...... yesguacenc .... yesguaclog .... yesInit scripts: /etc/init.dSystemd units: noType "make" to compile guacamole-server.$如上所示,--with-init-dir=/etc/init.d指定將guacd的啟動(dòng)腳本構(gòu)建安裝到/etc/init.d目錄,以便我們可以在稍后輕松配置guacd開機(jī)自啟動(dòng)。如果你不想guacd開機(jī)自啟動(dòng),請(qǐng)關(guān)閉--with-init-dir選項(xiàng)。如果你的發(fā)行版系統(tǒng)的啟動(dòng)目錄不是/etc/init.d,請(qǐng)用正確的目錄替換它。你可能需要查閱發(fā)行版的文檔或在/etc中進(jìn)行查找以確定正確的位置。
在這里,configure已經(jīng)找到了一切,包括所有可選庫(kù),并將構(gòu)建所有協(xié)議支持,甚至支持RDP中的Ogg Vorbis聲音。如果缺少一些庫(kù),上面的一些yes回答將顯示為no。如果缺少嚴(yán)格要求的庫(kù),腳本將徹底失敗,你需要安裝缺少的依賴項(xiàng)。如果在運(yùn)行configure后發(fā)現(xiàn)缺少對(duì)所需內(nèi)容的支持,只需安裝相應(yīng)的依賴項(xiàng),然后再次運(yùn)行configure。
?重點(diǎn): 所有需要終端的協(xié)議(Kubernetes、SSH和telnet)都要求在Guacamole服務(wù)器上安裝字體才能正常工作,因?yàn)榻K端的輸出無(wú)法以其他方式呈現(xiàn)。如果未安裝字體,對(duì)這些協(xié)議的支持可以很好的構(gòu)建,但使用時(shí)將無(wú)法連接: # Aug 23 14:09:45 my-server guacd[5606]: Unable to get font "monospace" 如果基于終端的連接不起作用,并且您在syslog中看到這樣的消息,您應(yīng)該確保安裝了字體,然后重試。configure執(zhí)行完成后,只需鍵入make,guacamole-server就會(huì)編譯:
$ make Making all in src/libguac make[1]: Entering directory `/home/mjumper/guacamole/guacamole-server/src/libguac' ... make[1]: Leaving directory `/home/mjumper/guacamole/guacamole-server/src/protocols/vnc' make[1]: Entering directory `/home/mjumper/guacamole/guacamole-server' make[1]: Nothing to be done for `all-am'. make[1]: Leaving directory `/home/mjumper/guacamole/guacamole-server' $在編譯所有組件時(shí),屏幕上將滾動(dòng)輸出很多內(nèi)容。
安裝
完成所有操作后,接下來(lái)只需鍵入make install安裝生成的組件,然后鍵入ldconfig更新系統(tǒng)已安裝庫(kù)的緩存:
# make install Making install in src/libguac make[1]: Entering directory `/home/mjumper/guacamole/guacamole-server/src/libguac' make[2]: Entering directory `/home/mjumper/guacamole/guacamole-server/src/libguac' ... ---------------------------------------------------------------------- Libraries have been installed in:/usr/local/libIf you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following:- add LIBDIR to the `LD_LIBRARY_PATH' environment variableduring execution- add LIBDIR to the `LD_RUN_PATH' environment variableduring linking- use the `-Wl,-rpath -Wl,LIBDIR' linker flag- have your system administrator add LIBDIR to `/etc/ld.so.conf'See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/home/mjumper/guacamole/guacamole-server/src/protocols/vnc' make[1]: Leaving directory `/home/mjumper/guacamole/guacamole-server/src/protocols/vnc' make[1]: Entering directory `/home/mjumper/guacamole/guacamole-server' make[2]: Entering directory `/home/mjumper/guacamole/guacamole-server' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/home/mjumper/guacamole/guacamole-server' make[1]: Leaving directory `/home/mjumper/guacamole/guacamole-server' # ldconfig #此時(shí),所有東西都已經(jīng)安裝,但guacd并沒有運(yùn)行。在安裝了客戶端組件后,需要運(yùn)行g(shù)uacd才能使用Guacamole。
注意,即使安裝了guacd及其啟動(dòng)腳本,你仍可能需要激活該服務(wù)才能自動(dòng)啟動(dòng)。如何激活服務(wù)因發(fā)行版而異,但每個(gè)發(fā)行版都會(huì)有說(shuō)明如何做到這一點(diǎn)的文檔。
guacamole-client
?重點(diǎn): 正常情況下,你不需要構(gòu)建guacamole-client,因?yàn)樗荍ava編寫的并且跨平臺(tái)的。你可以輕松地從Guacamole項(xiàng)目網(wǎng)站的發(fā)行包中獲取最新版本的guacamole-client,包括所有支持的擴(kuò)展,而無(wú)需自己構(gòu)建。如果你不想通過源碼構(gòu)建guacamole-client,只需從Guacamole項(xiàng)目網(wǎng)站下載guacamole.war以及任何所需的擴(kuò)展,然后跳轉(zhuǎn)到《部署Guacamole》章節(jié)。guacamole-client包含所有Guacamole的Java和JavaScript組件(guacamole,guacamole-common,guacamole-ext以及guacamole-common-js)。這些組件最終構(gòu)成了Web應(yīng)用程序,為連接到服務(wù)的用戶提供HTML5 Guacamole客戶端服務(wù)。然后該應(yīng)用程序?qū)⑦B接到guacd,這是guacamole-server的一部分,以便為連接用戶提供任何它們有權(quán)訪問的遠(yuǎn)程桌面。
編譯guacamole-client,需要準(zhǔn)備Apache Maven和一份Java SDK副本。多數(shù)Linux發(fā)行版都有提供相應(yīng)軟件包。
你可以從Guacamole項(xiàng)目網(wǎng)站獲取一份guacamole-client的源碼副本。這些版本都是經(jīng)過充分測(cè)試的最新代碼的穩(wěn)定快照,Guacamole團(tuán)隊(duì)認(rèn)為適合公眾需求。從項(xiàng)目網(wǎng)站下載的源碼以.tar.gz形式打包,你可以通過下面的命令解壓:
$ tar -xzf guacamole-client-1.4.0.tar.gz $ cd guacamole-client-1.4.0/ $和guacamole-server一樣,如果你想獲得絕對(duì)最新的代碼,且不關(guān)心是否經(jīng)過像穩(wěn)定版本那樣的充分測(cè)試,你也可以從Guacamole團(tuán)隊(duì)的git倉(cāng)庫(kù)中克隆代碼。
$ git clone git://github.com/apache/guacamole-client.git Cloning into 'guacamole-client'... remote: Counting objects: 12788, done. remote: Compressing objects: 100% (4183/4183), done. remote: Total 12788 (delta 3942), reused 12667 (delta 3822) Receiving objects: 100% (12788/12788), 3.23 MiB | 799 KiB/s, done. Resolving deltas: 100% (3942/3942), done. $與guacamole-server不同的是,即使從git倉(cāng)庫(kù)獲取代碼,在構(gòu)建之前也不需要運(yùn)行任何東西。在構(gòu)建之前沒有需要生成的腳本,Maven僅需要隨源碼提供的pom.xml文件。
構(gòu)建guacamole-client,僅需要運(yùn)行mvn package。這將調(diào)用Maven自動(dòng)構(gòu)建和打包所有組件,生成一個(gè)單一的.war文件,該文件包含整個(gè)Web應(yīng)用程序。
$ mvn package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] guacamole-common [INFO] guacamole-ext [INFO] guacamole-common-js [INFO] guacamole [INFO] guacamole-auth-cas [INFO] guacamole-auth-duo [INFO] guacamole-auth-header [INFO] guacamole-auth-jdbc [INFO] guacamole-auth-jdbc-base [INFO] guacamole-auth-jdbc-mysql [INFO] guacamole-auth-jdbc-postgresql [INFO] guacamole-auth-jdbc-sqlserver [INFO] guacamole-auth-jdbc-dist [INFO] guacamole-auth-ldap [INFO] guacamole-auth-openid [INFO] guacamole-auth-quickconnect [INFO] guacamole-auth-totp [INFO] guacamole-example [INFO] guacamole-playback-example [INFO] guacamole-client ... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] guacamole-common ................................... SUCCESS [ 21.852 s] [INFO] guacamole-ext ...................................... SUCCESS [ 9.055 s] [INFO] guacamole-common-js ................................ SUCCESS [ 1.988 s] [INFO] guacamole .......................................... SUCCESS [ 18.040 s] [INFO] guacamole-auth-cas ................................. SUCCESS [ 4.203 s] [INFO] guacamole-auth-duo ................................. SUCCESS [ 2.251 s] [INFO] guacamole-auth-header .............................. SUCCESS [ 1.399 s] [INFO] guacamole-auth-jdbc ................................ SUCCESS [ 1.396 s] [INFO] guacamole-auth-jdbc-base ........................... SUCCESS [ 3.266 s] [INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [ 4.665 s] [INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [ 3.764 s] [INFO] guacamole-auth-jdbc-sqlserver ...................... SUCCESS [ 3.738 s] [INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [ 1.214 s] [INFO] guacamole-auth-ldap ................................ SUCCESS [ 1.991 s] [INFO] guacamole-auth-openid .............................. SUCCESS [ 2.204 s] [INFO] guacamole-auth-quickconnect ........................ SUCCESS [ 2.983 s] [INFO] guacamole-auth-totp ................................ SUCCESS [ 8.154 s] [INFO] guacamole-example .................................. SUCCESS [ 0.895 s] [INFO] guacamole-playback-example ......................... SUCCESS [ 0.795 s] [INFO] guacamole-client ................................... SUCCESS [ 7.478 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:41 min [INFO] Finished at: 2018-10-15T17:08:29-07:00 [INFO] Final Memory: 42M/379M [INFO] ------------------------------------------------------------------------ $一旦Guacamole Web應(yīng)用程序構(gòu)建完畢,就可以在相對(duì)于當(dāng)前目錄(運(yùn)行mvn命令的目錄)的guacamole/target/子目錄看到一個(gè).war文件,準(zhǔn)備好部署在Tomcat這樣的servlet容器中。
部署Guacamole
Guacamole的web應(yīng)用程序部分被打包為一個(gè)完全獨(dú)立的.war文件。如果你從Guacamole的主項(xiàng)目網(wǎng)站下載,該文件被命名為guacamole.war。部署它需要將文件復(fù)制到你的servlet容器用于.war文件的目錄中。對(duì)于Tomcat來(lái)說(shuō),是CATALINA_HOME/webapps/。CATALINA_HOME會(huì)因Tomcat的安裝方式而異,但通常是/var/lib/tomcat,/var/lib/tomcat7,或類似的:
cp guacamole.war /var/lib/tomcat/webapps如果你從源碼構(gòu)建guacamole-client,可以從guacamole/target/目錄獲取需要的.war文件,該文件帶有一個(gè)版本后綴。因?yàn)門omcat將通過.war文件的名稱確定Web應(yīng)用程序的位置,你可以在拷貝時(shí)簡(jiǎn)單地將其命名為guacamole.war:
cp guacamole/target/guacamole-1.4.0.war /var/lib/tomcat/webapps/guacamole.war同樣,如果你使用不同的servlet容器或Tomcat安裝位置不同,你需要檢查servlet容器、發(fā)行版或兩者的文檔,以確定guacamole.war文件部署的正確位置。
.war文件放置好后,你需要重啟Tomcat以強(qiáng)制Tomcat部署新的web應(yīng)用程序,如果guacd守護(hù)進(jìn)程尚未運(yùn)行,則必須啟動(dòng)它。重啟Tomcat和guacd的命令將因發(fā)行版而異。通常,你可以通過使用restart選項(xiàng)運(yùn)行相應(yīng)的初始化腳本來(lái)實(shí)現(xiàn)重啟:
# /etc/init.d/tomcat7 restart Stopping Tomcat... OK Starting Tomcat... OK # /etc/init.d/guacd start Starting guacd: SUCCESS guacd[6229]: INFO: Guacamole proxy daemon (guacd) version 1.4.0 started # ?重點(diǎn): 如果你希望Guacamole開機(jī)自啟動(dòng),你需要配置Tomcat和guacd服務(wù)自動(dòng)運(yùn)行。你的發(fā)行版本會(huì)提供相應(yīng)的配置文檔。在重啟Tomcat和guacd后,Guacamole就成功的安裝了,但不會(huì)完全地運(yùn)行。在當(dāng)前狀態(tài)下,它完全未配置,需要進(jìn)一步添加至少一個(gè)Guacamole用戶和幾個(gè)連接。這將在《配置Guacamole》中介紹。
WebSocket呢?
如果瀏覽器和你的servlet容器支持WebSocket,Guacamole將會(huì)自動(dòng)使用WebSocket。如果Guacamole無(wú)法使用WebSocket連接,它將立即明顯地返回到使用HTTP連接。
Guacamole在Tomcat 7.0.37或更高版本,Jetty 8或更高版本以及任何支持JSR 356(WebSocket標(biāo)準(zhǔn)化Java API)的servlet容器中支持WebSocket連接。
總結(jié)
以上是生活随笔為你收集整理的【Guacamole中文文档】二、用户指南—— 2.Guacamole源码安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么少女怀孕越来越普遍
- 下一篇: NFT 有哪些不同类型