Day: July 28, 2024

  • Guacamole – Day 2.5

    Guacamole – Day 2.5

    Ok, back at it. I’m starting at the dependencies section in the Guacamole manual here. I think I’ll just use this page to build the command to make things easy. I probably already have a bunch of these installed, but apt will sort that out for me. Much quicker than stare and compare. I’m pretty much installing all required and optional dependencies. The optional ones I know I need are for RDP, VNC, and SSH support. I’m not sure if I’ll ever use telenet, session recording, or audio over VNC, but it’s nice to have the option.

    $ sudo apt install libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin \
    uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
    freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev \
    libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev

    And this is what I got. The dependencies have dependencies, which also have dependencies, and those dependencies also have dependencies… I should have just gone with docker, but I’m only working with 100 GB of space, and I need that extra ~1 ms of speed I get from bare metal.

    cweb@thecweb:~$ sudo apt install libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin \
    uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
    freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev \
    libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev
    [sudo] password for cweb:
    
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    
    The following packages were automatically installed and are no longer required:
      libasn1-8-heimdal libcommon-sense-perl libffi7 libgssapi3-heimdal libhcrypto4-heimdal
      libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libicu66 libjson-perl libjson-xs-perl
      libkrb5-26-heimdal libldap-2.4-2 libllvm10 libllvm14 libroken18-heimdal libtypes-serialiser-perl
      libwind0-heimdal sysstat
    Use 'sudo apt autoremove' to remove them.
    
    The following additional packages will be installed:
      autoconf automake autotools-dev cpp cpp-11 gcc gcc-11 gcc-11-base gir1.2-freedesktop
      gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 i965-va-driver icu-devtools intel-media-va-driver libaacs0
      libasan6 libasyncns0 libatomic1 libavcodec58 libavformat58 libavutil56 libbdplus0 libblkid-dev
      libbluray2 libbrotli-dev libc-dev-bin libc-devtools libc6-dev libcairo-gobject2
      libcairo-script-interpreter2 libcairo2 libcap-dev libcc1-0 libchromaprint1 libcodec2-1.0
      libcrypt-dev libdatrie-dev libdatrie1 libev-dev libev4 libevent-2.1-7 libexpat1-dev libffi-dev
      libflac8 libfontconfig-dev libfontconfig1-dev libfreerdp-client2-2 libfreerdp-server2-2
      libfreerdp-shadow-subsystem2-2 libfreerdp-shadow2-2 libfreerdp2-2 libfreetype-dev libfreetype6-dev
      libfribidi-dev libgcc-11-dev libgcrypt20-dev libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
      libgdk-pixbuf2.0-common libglib2.0-dev libglib2.0-dev-bin libgme0 libgmp-dev libgmpxx4ldbl
      libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libgpg-error-dev libgraphite2-dev
      libgsm1 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libice-dev libicu-dev libidn2-dev
      libigdgmm12 libisl23 libitm1 liblsan0 libltdl-dev liblzo2-dev libmfx1 libmount-dev libmp3lame0
      libmpc3 libmpg123-0 libnorm1 libnsl-dev libogg-dev libogg0 libopenmpt0 libopus0 libp11-kit-dev
      libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpcre16-3 libpcre2-16-0
      libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpgm-5.3-0
      libpixman-1-0 libpixman-1-dev libpng-tools libpthread-stubs0-dev libpulse-mainloop-glib0 libpulse0
      libquadmath0 librabbitmq4 librsvg2-2 librsvg2-common libsasl2-dev libselinux1-dev libsepol-dev
      libshine3 libsm-dev libsnappy1v5 libsndfile1 libsoxr0 libspeex1 libsrt1.4-gnutls libssh-gcrypt-4
      libssh2-1 libswresample-dev libswresample3 libswscale5 libtasn1-6-dev libtasn1-doc libtelnet2
      libthai-data libthai-dev libthai0 libtheora0 libtirpc-dev libtool libtsan0 libtwolame0 libubsan1
      libudfread0 libunbound8 libuv1 libuv1-dev libva-drm2 libva-x11-2 libva2 libvdpau1 libvncclient1
      libvncserver1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx7 libwebsockets16 libwinpr-tools2-2
      libwinpr2-2 libwinpr2-dev libx11-dev libx264-163 libxau-dev libxcb-render0 libxcb-render0-dev
      libxcb-shm0-dev libxcb1-dev libxdamage1 libxdmcp-dev libxext-dev libxft-dev libxrender-dev
      libxvidcore4 libzmq5 libzvbi-common libzvbi0 linux-libc-dev m4 manpages-dev mesa-va-drivers
      mesa-vdpau-drivers nettle-dev ocl-icd-libopencl1 pango1.0-tools pkg-config rpcsvc-proto
      va-driver-all vdpau-driver-all winpr-utils x11proto-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
    
    Suggested packages:
      autoconf-archive gnu-standards autoconf-doc gettext cpp-doc gcc-11-locales gcc-multilib make flex
      bison gdb gcc-doc gcc-11-multilib gcc-11-doc i965-va-driver-shaders libcuda1 libnvcuvid1
      libnvidia-encode1 libbluray-bdj glibc-doc libcairo2-doc libdatrie-doc freerdp2-x11 freetype2-doc
      libgcrypt20-doc libgirepository1.0-dev libglib2.0-doc libxml2-utils gmp-doc libgmp10-doc libmpfr-dev
      dns-root-data gnutls-bin gnutls-doc libgraphite2-utils libice-doc icu-doc libtool-doc opus-tools
      p11-kit-doc libpango1.0-doc pulseaudio librsvg2-bin libsm-doc speex libssl-doc libtelnet-utils
      libthai-doc gfortran | fortran95-compiler gcj-jdk libx11-doc libxcb-doc libxext-doc m4-doc
      opencl-icd graphicsmagick dpkg-dev libvdpau-va-gl1
    
    The following NEW packages will be installed:
      autoconf automake autotools-dev cpp cpp-11 freerdp2-dev gcc gcc-11 gcc-11-base gir1.2-freedesktop
      gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 i965-va-driver icu-devtools intel-media-va-driver libaacs0
      libasan6 libasyncns0 libatomic1 libavcodec-dev libavcodec58 libavformat-dev libavformat58
      libavutil-dev libavutil56 libbdplus0 libblkid-dev libbluray2 libbrotli-dev libc-dev-bin
      libc-devtools libc6-dev libcairo-gobject2 libcairo-script-interpreter2 libcairo2 libcairo2-dev
      libcap-dev libcc1-0 libchromaprint1 libcodec2-1.0 libcrypt-dev libdatrie-dev libdatrie1 libev-dev
      libev4 libevent-2.1-7 libexpat1-dev libffi-dev libflac8 libfontconfig-dev libfontconfig1-dev
      libfreerdp-client2-2 libfreerdp-server2-2 libfreerdp-shadow-subsystem2-2 libfreerdp-shadow2-2
      libfreerdp2-2 libfreetype-dev libfreetype6-dev libfribidi-dev libgcc-11-dev libgcrypt20-dev
      libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libglib2.0-dev libglib2.0-dev-bin
      libgme0 libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28
      libgpg-error-dev libgraphite2-dev libgsm1 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0
      libice-dev libicu-dev libidn2-dev libigdgmm12 libisl23 libitm1 libjpeg-turbo8-dev liblsan0
      libltdl-dev liblzo2-dev libmfx1 libmount-dev libmp3lame0 libmpc3 libmpg123-0 libnorm1 libnsl-dev
      libogg-dev libogg0 libopenmpt0 libopus0 libp11-kit-dev libpango-1.0-0 libpango1.0-dev
      libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpcre16-3 libpcre2-16-0 libpcre2-32-0
      libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpgm-5.3-0 libpixman-1-0
      libpixman-1-dev libpng-dev libpng-tools libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0
      libpulse0 libquadmath0 librabbitmq4 librsvg2-2 librsvg2-common libsasl2-dev libselinux1-dev
      libsepol-dev libshine3 libsm-dev libsnappy1v5 libsndfile1 libsoxr0 libspeex1 libsrt1.4-gnutls
      libssh-gcrypt-4 libssh2-1 libssh2-1-dev libssl-dev libswresample-dev libswresample3 libswscale-dev
      libswscale5 libtasn1-6-dev libtasn1-doc libtelnet-dev libtelnet2 libthai-data libthai-dev libthai0
      libtheora0 libtirpc-dev libtool libtool-bin libtsan0 libtwolame0 libubsan1 libudfread0 libunbound8
      libuv1 libuv1-dev libva-drm2 libva-x11-2 libva2 libvdpau1 libvncclient1 libvncserver-dev
      libvncserver1 libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 libvpx7 libwebp-dev
      libwebsockets-dev libwebsockets16 libwinpr-tools2-2 libwinpr2-2 libwinpr2-dev libx11-dev libx264-163
      libxau-dev libxcb-render0 libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxdamage1 libxdmcp-dev
      libxext-dev libxft-dev libxrender-dev libxvidcore4 libzmq5 libzvbi-common libzvbi0 linux-libc-dev m4
      manpages-dev mesa-va-drivers mesa-vdpau-drivers nettle-dev ocl-icd-libopencl1 pango1.0-tools
      pkg-config rpcsvc-proto uuid-dev va-driver-all vdpau-driver-all winpr-utils x11proto-dev
      xorg-sgml-doctools xtrans-dev zlib1g-dev
    0 upgraded, 215 newly installed, 0 to remove and 0 not upgraded.
    Need to get 130 MB/131 MB of archives.
    After this operation, 459 MB of additional disk space will be used.
    Do you want to continue? [Y/n]

    Huh, guess I didn’t have any of them already installed.

    Better get the suggested packages also. I can always remove them later.

    $ sudo apt install autoconf-archive gnu-standards autoconf-doc gettext \
    cpp-doc gcc-11-locales gcc-multilib make flex bison gdb gcc-doc \
    gcc-11-multilib gcc-11-doc i965-va-driver-shaders \
    libbluray-bdj glibc-doc libcairo2-doc libdatrie-doc \
    freerdp2-x11 freetype2-doc libgcrypt20-doc libgirepository1.0-dev \
    libglib2.0-doc libxml2-utils gmp-doc libgmp10-doc libmpfr-dev dns-root-data \
    gnutls-bin gnutls-doc libgraphite2-utils libice-doc icu-doc libtool-doc \ 
    speex libssl-doc libtelnet-utils libthai-doc gfortran \
    libx11-doc libxcb-doc libxext-doc m4-doc graphicsmagick \
    dpkg-dev libvdpau-va-gl1

    I had to remove like ten packages from the suggested list because apt couldn’t find them. Crap I didn’t need anyway like nvidia and cuda libraires. Wait, did I just fucking install fortran?

    Setting up gfortran-11 (11.4.0-1ubuntu1~22.04) ...
    Setting up gfortran (4:11.2.0-1ubuntu1) ...
    update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f95 (f95) in auto mode
    update-alternatives: using /usr/bin/gfortran to provide /usr/bin/f77 (f77) in auto mode
    Processing triggers for libc-bin (2.35-0ubuntu3.8) ...

    Guess so…

    It’s quarter past ten at night and I’m tired and hungry. And if installing packages was this much of a pain then I really don’t want to start compiling Guacamole from source right now. Glancing over what I’ve wrote it really doesn’t look like it took that long, but there was a lot of trial and error figuring out which packages Ubuntu didn’t have. Probably would have been quicker to just add the nvidia repository instead of playing wack-a-mole by removing the packages one by one. But that would have messed up my pure FOSS system with that evil closed source nvidia software.

    Peace! I’m out!

    I truly do love anyone who bothers reading this crap.
  • Guacamole – Day 2

    Guacamole – Day 2

    So… Now that I’m back at it I can load the test page but the highlighted links give me a Tomcat 404 error page, so something is wrong. I found this guide to setting up Tomcat on Ubuntu LTS 22 here. First I need to a user setup in /etc/tomcat9/tomcat-users.xml.

    </tomcat-users>
            <role rolename="admin-gui"/>
    
            <role rolename="manager-gui"/>
    
            <user username="tomcat" password="pass" roles="admin-gui,manager-gui"/>

    That should do the ticket for testing purposes. So ‘systemctl restart tomcat9’ and see what we get!

    Nope. Still 404. I browsed through the server.xml config file and didn’t see anything wrong… Maybe I should confirm those files actually exist. I checked /var/www but nothing there, although I did notice that for some reason all users had write access to /var/www/thecweb.com (which is something a fucking moron would do if they ran into a permissions issue setting up their website…) So ‘chmod go-w thecweb.com’.

    Back to tomcat! After some googling to find out where the missing files should be on disk I found that they simply weren’t in /usr/share like they should be. And ‘apt list –installed | grep tomcat’ finally gave me my answer!

    cweb@thecweb:/var/lib/tomcat9/webapps/ROOT/META-INF$ apt list --installed | grep tomcat
    
    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    
    libtomcat9-java/jammy-updates,now 9.0.58-1ubuntu0.1 all [installed,automatic]
    tomcat9-common/jammy-updates,now 9.0.58-1ubuntu0.1 all [installed,automatic]
    tomcat9/jammy-updates,now 9.0.58-1ubuntu0.1 all [installed]
    

    I somehow only managed to install tomcat9 and tomcat9-common packages. So I installed the missing packages and voila!

    I’m going to take a break for now, but there is a small change I’ll jump back in later. It’s only 1 pm… And I’d like to get this running before my next work week starts.