.. vim: syntax=rst .. include:: ../global.rst .. _guide-ubt22: ================== Ubuntu 22.04 guide ================== Upgrade Announcement ==================== Sysnet is preparing to roll out Ubuntu Jammy Jellyfish release (22.04 LTS) beginning fall of 2022 to all managed desktops and servers. Ubuntu 22.04 LTS ================ We fully intended to roll out 20.04, but decided to move forward with 22.04. Ubuntu by default uses Xorg over Wayland so we feel confident all applications we support such as Tecplot, Matlab, Mathematica, etc..., will work with little or no issues. SSH === Here's a :ref:`comprehensive guide on SSH `. For example:: $ ssh myusername@hostname The default ssh port is 22, no need to specify the '-p' option. If you have modified your ~/.ssh/config, be sure to update it with the proper port. See the manual pages for other ssh options, man ssh and man ssh_config. How do I use Environmental Modules? =================================== The Oden Institute is hosting an NFS share where commercial and open source software will be placed. This is exported to all managed desktops and servers running our current desktop distribution. Commercial software like Matlab, Mathematica, Intel compilers, Maple, etc... will reside in /opt/apps/sysnet/. We will not be migrating or building packages in /opt/apps/ossw unless there is a specific need that is not satisfied by standard installable packages. Any request for software to be built and installed in ossw will be evaluated by Sysnet. We use Lmod implementation of `Environment Modules`_. Environment modules provide a convenient way to dynamically change the users' environment through modulefiles. This includes easily adding or removing directories to the PATH environment variable. A modulefile contains the necessary information to allow a user to run a particular application or provide access to a particular library. All of this can be done dynamically without logging out and back in. Modulefiles for applications modify the user's path to make access easy. Modulefiles for Library packages provide environment variables that specify where the library and header files can be found. Packages can be loaded and unloaded cleanly through the module system. All the popular shells are supported: bash, ksh, csh, tcsh, zsh. It is also very easy to switch between different versions of a package or remove it. Help! module command not found ------------------------------ If you are logging into your workstation on the console the first time and you open an xterm and you see the following:: $ module module: command not found There are a couple methods to resolve this issue. The first option presented below is probably the safest and easiest option. * Open a terminal window go to the menu bar and Edit->Preferences, under the Command tab, check 'Run command as login shell'. Close the terminal window and re-open and issue the module command again. This option only needs to be done once, the preference is saved for all login sessions. * If you are using *bash*, you can source */etc/profile* in your *~/.bashrc* file. * For csh, you can source */etc/csh/login.d/z00_module.csh* in your *~/.tcshrc* or *~/.cshrc*. Module commands --------------- To view the default available modules:: $ module avail ------------------------- /opt/apps/sysnet/modulefiles ------------------------- maple/2020 matlab/r2020b tecplot/2020r1 maple/2021.1 matlab/r2021a tecplot/2020r2 maple/2022 (D) matlab/r2022a (D) tecplot/2021r1 mathematica/12.3 pointwise/18.5r2 tecplot/2021r2 (D) mathematica/13.0 (D) tecplot/2018r2 trelis/14.0 mathematica/13.1 tecplot/2018 trelis/16.5 (D) matlab/r2020a tecplot/2019r1 ---------------------- /opt/apps/sysnet/intel/modulefiles ---------------------- intel/2022 intel/2022.2 (D) Where: D: Default Module If the avail list is too long consider trying: "module --default avail" or "ml -d av" to just list the default modules. "module overview" or "ml ov" to display the number of modules for each name. Use "module spider" to find all possible modules and extensions. Use "module keyword key1 key2 ..." to search for all possible modules matching To use the matlab module, issue:: module load matlab By default, this will load matlab r2022a .. note:: If you leave off the slash and any trailing version information, the default version (indicated with a D) will be loaded. If only one version of a particular module is available, that is taken as the default. To load a specific version of matlab:: module load matlab/r2021a Some modules depend on other modules (e.g. the intel compilers). Therefore, in order to load them, you need to first load the corresponding module:: $ module load intel/2022.2 You will get something like this:: $ ml av --------------- /opt/apps/sysnet/intel/oneapi/2022.2/modulefiles --------------- clck/latest icc32/2022.1.0 (D) clck/2021.6.0 (D) init_opencl/latest compiler-rt/latest init_opencl/2022.1.0 (D) compiler-rt/2022.1.0 (D) inspector/latest compiler-rt32/latest inspector/2022.1.0 (D) compiler-rt32/2022.1.0 (D) itac/latest compiler/latest itac/2021.6.0 (D) compiler/2022.1.0 (D) mkl/latest compiler32/latest mkl/2022.1.0 (D) compiler32/2022.1.0 (D) mkl32/latest debugger/latest mkl32/2022.1.0 (D) debugger/2021.6.0 (D) mpi/latest dev-utilities/latest mpi/2021.6.0 (D) dev-utilities/2021.6.0 (D) oclfpga/latest dpct/latest oclfpga/2022.1.0 (D) dpct/2022.1.0 (D) tbb/latest dpl/latest tbb/2021.6.0 (D) dpl/2021.7.0 (D) tbb32/latest icc/latest tbb32/2021.6.0 (D) icc/2022.1.0 (D) vtune/latest icc32/latest vtune/2022.2.0 (D) ------------------------- /opt/apps/sysnet/modulefiles ------------------------- maple/2020 matlab/r2020b tecplot/2020r1 maple/2021.1 matlab/r2021a tecplot/2020r2 maple/2022 (D) matlab/r2022a (D) tecplot/2021r1 mathematica/12.3 pointwise/18.5r2 tecplot/2021r2 (D) mathematica/13.0 (D) tecplot/2018r2 trelis/14.0 mathematica/13.1 tecplot/2018 trelis/16.5 (D) matlab/r2020a tecplot/2019r1 ---------------------- /opt/apps/sysnet/intel/modulefiles ---------------------- intel/2022 intel/2022.2 (L,D) Where: L: Module is loaded D: Default Module If the avail list is too long consider trying: "module --default avail" or "ml -d av" to just list the default modules. "module overview" or "ml ov" to display the number of modules for each name. Use "module spider" to find all possible modules and extensions. Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". Intel is now making their suite of compilers available for free. We need to add more here about this announcement. I don't see the module for XYZ ------------------------------ If you used a module on CentOS 18.04 and you don't see it available, for example:: $ module load gcc/8.2 Lmod has detected the following error: The following module(s) are unknown: "gcc/8.2" This is because we have installed the latest gcc package available for 22.04. This is just an example of the error you might see if you were trying to load modules on 22.04 that are no longer available. Update your .bashrc ------------------- If you are loading modules in your .bashrc script, you will need to update the modules you are attempting to load. An error in your .bashrc or .cshrc file can lead to odd behaviours including not being able to login remotely or locally. We made our best effort to install native packages over rebuilding software since Ubuntu does release updates and maintains newer versions of software. If you don't see something, you can try:: $ apt search texlive $ apt show texlive For complete list of installed packages:: $ dpkg -l FEnICS ------ This software has become very popular with researchers. This software does not play well with the module system, therefore there will be no module available or *sourcing* of any type of environment. For Ubuntu, there is an available package, it will not be installed by default on all desktops, if you need it installed on your desktop, send a help request to rt. If you require a newer version than what's available through Ubuntu's PPA's, we suggest you build it. Sysnet will not be able to help you build this software. Set up environment for custom modules ------------------------------------- Create a directory which will contain all your custom modules. For this example we will use ``/org/centers/foo/modulefiles``. Add the module path to your modules environment:: module use /org/centers/foo/modulefiles You should then be able to add any modulefiles you like to this directory. A sample modulefile is shown for reference:: #%Module1.0 proc ModulesHelp { } { puts stderr "The tig module file" } module-whatis "Name: tig" prepend-path PATH /org/centers/foo/apps/tig/0.11/bin prepend-path MANPATH /org/centers/foo/apps/tig/0.11/share/man For more information about writing modulefiles visit https://lmod.readthedocs.io/en/latest/ Unencrypting /workspace ======================= The /workspace partition on managed desktops is encrypted. When logging into a desktop's console after a reboot, the encrypted partition must be unencrypted, you should be prompted in the X session to decrypt /workspace. If your remotely log into a workstation and need access to /workspace, be aware that it might not have been unencrypted. If you see the file:: /workspace/WORKSPACE_IS_NOT_MOUNTED This means the workspace has **NOT** been unencrypted. To unencrypt /workspace, issue:: sudo /usr/local/sbin/deluks This will prompt for your Oden Institute credentials to unencrypt the encrypted partitions. Retrieving backups of home directory ==================================== Often times you can accidentally misplace or delete an important file. If you are in a situation where a file you need is missing it may be worthwhile to look through the snapshot directory for backups. * In your desktop menu, select :menuselection:`Places --> Home Folder` * Make sure you have hidden files enabled by choosing :menuselection:`View --> Show Hidden Files` Scroll down to a folder called ``.snapshots`` and open it. You will see a series of folders with numbers on them. These represents the different dates the backups were taken in yyyy/mm/dd format. Choose a recent time and open the folder. There will be a folder inside named ``tree``. Open it and you will see a copy of all your files in the home folder from the time period indicated on the parent folder. Simply copy whatever files you need to your current home folder to restore them. SUDO privileges =============== There are limited sudo privileges available on all manage desktops. To view the sudo commands, issue the following:: pebkac@suzerain:~$ sudo -l This will post results similar to the following:: Matching Defaults entries for pebkac on suzerain: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, ignore_local_sudoers User pebkac may run the following commands on suzerain: (root) NOPASSWD: /usr/local/bin/fail2showbans.sh (root) NOPASSWD: /usr/local/bin/fail2unban.sh (root) NOPASSWD: /usr/local/bin/dropvmcache.sh (root) NOPASSWD: /usr/local/sbin/deluks (root) /sbin/reboot, /usr/sbin/reboot (root) NOPASSWD: /usr/local/bin/invalidate-cache.sh On occasion we will grant sudo privileges for specific commands upon request, you must provide a specific use case, Sysnet will then take it under consideration. Unfortunately, we will not grant sudo privileges for *apt install* or *docker* related commands. Password Change =============== .. IMPORTANT:: We suggest reviewing Sysnet's policy on :ref:`password ` rules before changing your password. Visit our `Password Change`_ page. .. _Password Change: /sysnet/services/Sysnet_Profile_Manager/ How do I access my vnc server? ============================== .. WARNING:: These instructions need a little work, try at your own risk. If you think you found a solution, share it with us so we can stay up to date. From OSX and Linux using X forwarding. * $ ssh -X username@workstation.oden.utexas.edu "vinagre localhost:port" * The vnc client will open on your local computer From OSX and Linux using port forwarding. * $ ssh -l username -L port:localhost:port workstation.oden.utexas.edu * You should be able to point your VNC client at localhost:port where "port" is the port of your vnc server on the remote computer. From Windows using port forwarding. * Download and install the SSH client called PuTTY here http://www.chiark.greenend.org.uk/~sgtatham/putty/ * In "Session" -> "Host Name (or IP address)" input "workstation.oden.utexas.edu" * In "Session" -> "Port" input "22" * In "Connection" -> "SSH" -> "Tunnels" -> "Source port" input the VNC port. * In "Connection" -> "SSH" -> "Tunnels" -> "Destination" input "localhost:port" * In "Connection" -> "SSH" -> "Tunnels" -> "Add" * In "Connection" -> "SSH" -> "Tunnels" -> "Open" * Now connect your local vnc client to "localhost:port" while leaving the ssh window open Nvidia issues ============= Occasionally you might see an issue when trying to run a GPU job or when issuing nvidia-smi, you might see this:: $ nvidia-smi Failed to initialize NVML: Driver/library version mismatch This is due to the NVIDIA drivers having been upgraded but the run-time driver information is not up to date. The easiest fix for this condition is to reboot the workstation or server. Since most servers are multi-user, be sure to check that others are not running jobs. If others are logged in, reach out to them before issuing a reboot. How do I report a problem ========================= The transition to Ubuntu 18.04 is not perfect, if you find a problem please make an email describing your problem and address it to `RT`_