HOWTO: Install the latest Eclipse IDE on CentOS 8 stream

I was following this guide, from where I take the picture above. This post is one stupid log of how to do the same for CentOS 8 stream. First we get the java packages:

## > dnf install java-1.8.0-openjdk-devel
Last metadata expiration check: XXX
Dependencies resolved.
=======================
Package Architecture Version Repository Size
========================
Installing:
java-1.8.0-openjdk-devel
Installing dependencies:
java-1.8.0-openjdk
ttmkfdir
xorg-x11-fonts-Type1
===
Install 4 Packages

Now that we have java we just wget the tarball:

wget https://download.eclipse.org/technology/epp/downloads/release/2023-12/R/eclipse-java-2023-12-R-linux-gtk-x86_64.tar.gz

Unzip it, and go in

tar -xvf eclipse-java-2023-12-R-linux-gtk-x86_64.tar.gz
cd eclipse

And run it (./eclipse). First time it runs it’s going to ask you for a workspace folder (eclipse-workspace). It throws on terminal/konsole a lot of messages but I get the IDE window, so fine. Extra content: here medium productivity tips and here tutorialtips for eclipse. I’m not sure I’m going to move quickly to this one but I just wanted to know how to run it on CentOS 8 stream. And it runs 🙂

HOWTO: change hostname and reload it without reboot on CentOS 8 stream

Well another mini-post that goes back in time because I’m still willing to write something meaningful today. But this bit can’t be forgotten.

Problem: I have one computer that doesn’t report its name as I want. For example,

#> hostname
mycomputer.domain.org

Solution: We edit /etc/hostname and reload it using the old system tool. In brief:

#> more /etc/hostname
mycomputer.domain.org
# edit the file, change it to mycomputer
#> more /etc/hostname
mycomputer
#> hostname
mycomputer.domain.org
# now we force the hostname to be reloaded
#> hostname -F /etc/hostname
#> hostname
mycomputer

There you go. That’s it. Back in time with it!

HOWTO: Install a specific openmpi 3.1.6 on CentOS 8 stream

Sorry it’s again Monday and on Monday some of us work. My work so far is to install this or that here or there. As you heard me complain about it before, we now handle quite some different systems, but my favourite so far is CentOS 8 stream. Because “some” things from CentOS 7 still work on CentOS 8 stream, and being the lazy bastard I am this means I will not need to do it again. Anyway. Non-default openmpi installation. Below my pipeline with comments (so do not cut & copy)

# wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.6.tar.bz2
# tar -xf openmpi-3.1.6.tar.bz2
# cd openmpi-3.1.6
# mkdir build
# cd build
# ../configure --prefix=/opt/openmpi-3.1.6

... some checks here, it may take for a while...

config.status: executing libtool commands

Open MPI configuration:
-----------------------
Version: 3.1.6
Build MPI C bindings: yes
Build MPI C++ bindings (deprecated): no
Build MPI Fortran bindings: no
MPI Build Java bindings (experimental): no
Build Open SHMEM support: yes
Debug build: no
Platform file: (none)

Miscellaneous
-----------------------
CUDA support: no
PMIx support: internal
 
Transports
-----------------------
Cisco usNIC: no
Cray uGNI (Gemini/Aries): no
Intel Omnipath (PSM2): no
Intel SCIF: no
Intel TrueScale (PSM): no
Mellanox MXM: no
Open UCX: no
OpenFabrics OFI Libfabric: no
OpenFabrics Verbs: no
Portals4: no
Shared memory/copy in+copy out: yes
Shared memory/Linux CMA: yes
Shared memory/Linux KNEM: no
Shared memory/XPMEM: no
TCP: yes
 
Resource Managers
-----------------------
Cray Alps: no
Grid Engine: no
LSF: no
Moab: no
Slurm: yes
ssh/rsh: yes
Torque: no
 
OMPIO File Systems
-----------------------
Generic Unix FS: yes
Lustre: no
PVFS2/OrangeFS: no

# make

... some make here, it may take for a while...

# make install-strip

Obviously we can build an ansible formula out of this. It will look like this:

---
- name: Install OpenMPI
  hosts: all
  become: yes
  vars:
    openmpi_version: "3.1.6"
    openmpi_install_dir: "/opt/openmpi-{{ openmpi_version }}"
    openmpi_download_url: "https://download.open-mpi.org/release/open-mpi/v{{ openmpi_version | regex_replace('\.', '') }}/openmpi-{{ openmpi_version }}.tar.bz2"

  tasks:
    - name: Install necessary packages
      package:
        name: 
          - wget
          - tar
          - gcc
          - g++
        state: present

    - name: Download OpenMPI
      get_url:
        url: "{{ openmpi_download_url }}"
        dest: "~/Downloads/openmpi-{{ openmpi_version }}.tar.bz2"

    - name: Extract OpenMPI
      unarchive:
        src: "~/Downloads/openmpi-{{ openmpi_version }}.tar.bz2"
        dest: "~/Downloads"
        remote_src: yes

    - name: Create build directory
      file:
        path: "{{ openmpi_install_dir }}/build"
        state: directory

    - name: Configure OpenMPI
      command: >
        ./configure --prefix={{ openmpi_install_dir }}
      args:
        chdir: "~/Downloads/openmpi-{{ openmpi_version }}/build"

    - name: Make OpenMPI
      make:
        chdir: "~/Downloads/openmpi-{{ openmpi_version }}/build"

    - name: Install OpenMPI
      make:
        target: "install-strip"
        chdir: "~/Downloads/openmpi-{{ openmpi_version }}/build"

I hope you enjoyed this piece of computing wisdom. In other words, I’m sorry you read this. Thank you so much for coming so far 🙂

HOWTO: Install OpenProject on CentOS 8 stream

I was looking for a flexible and simple project management tool since I installed Taskcafe on a docker. It’s not that it’s free, it’s that it’s very easy to install, so easy that I’m so ashamed to write it down that I postponed the publication of this HOWTO. Lately I’m being lucky with the installs, I guess because I’m using a modern OS. Without further delay, here’s my installation story:

wget -O /etc/yum.repos.d/openproject.repo \
https://dl.packager.io/srv/opf/openproject/stable/13/installer/el/8.repo

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

yum install openproject

Yep. That’s it. No problems. Now we run the wizard.

openproject reconfigure #interactive - manual choices are stored in /etc/openproject/installer.dat

The wizard options may look tricky, but also, no big deal. Once done, we go to

http://machine.domain.org/myprefix.

And log in using the default user/password combination:

  • username = admin
  • password = admin

Here you have a handy HOWTO for the Gantt chats, that are probably the most interesting feature of this type of program. Happy planning!

HOWTO: install FragPipe on CentOS 8 stream

FragPipe is a Java Graphical User Interface (GUI) for a suite of computational tools enabling comprehensive analysis of mass spectrometry-based proteomics data. And I can’t continue reading without regretting about my life choices 🙂

Let’s install this. First of couse we need the right Java. We check the one we have installed, then remove it and install the “good” one.

## > java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b08)
OpenJDK 64-Bit Server VM (build 25.362-b08, mixed mode)
## > yum remove java-*
## > yum install java-11-openjdk-devel
Installed:
copy-jdk-configs-4.0-2.el8.noarch
java-11-openjdk-1:11.0.18.0.9-0.3.ea.el8.x86_64
java-11-openjdk-devel-1:11.0.18.0.9-0.3.ea.el8.x86_64
java-11-openjdk-headless-1:11.0.18.0.9-0.3.ea.el8.x86_64
javapackages-filesystem-5.3.0-2.module_el8.0.0+30+832da3a1.noarch
lksctp-tools-1.0.18-3.el8.x86_64
ttmkfdir-3.0.9-54.el8.x86_64
tzdata-java-2024a-1.el8.noarch
xorg-x11-fonts-Type1-7.5-19.el8.noarch

Complete!
## > java -version
openjdk version "11.0.18-ea" 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.18.0.9-0.3.ea.el8)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.18.0.9-0.3.ea.el8)

Now we download the zip file on a convenient location, unzip it, and go as indicated to the /bin subfolder. The GUI opens, even through ssh! Done. This is my output (for the records).

/opt/local/software/fragpipe/bin ## > ./fragpipe
DATE org.openide.util.ImageUtilities$CachedLookupLoader getLoader
WARNING: No interface org.openide.util.spi.SVGLoader
instance found in ProxyLookup(class=class
org.openide.util.Lookup$DefLookup)->
[MetaInfServicesLookup
[jdk.internal.loader.ClassLoaders$AppClassLoader@55054057],
SingletonLookup
[jdk.internal.loader.ClassLoaders$AppClassLoader@55054057]]
DATE org.openide.util.ImageUtilities getIcon
INFO: No SVG loader available for loading
jar:file:/opt/local/software/fragpipe/
lib/org-netbeans-swing-outline-RELEASE200.jar!
/org/netbeans/swing/etable/columns.svg

Note. If you don’t have the right Java the error looks like this:

## > ./fragpipe
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/dmtavt/fragpipe/FragPipeMain has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621)

Sorry to bother you with installations HOWTO. Remember that you don’t need to read everything you get. Also, I don’t try to please anyone, I just want to leave some record of how it is done. Anyway, thanks for coming!

Enable a web-based terminal on CentOS 8 with cockpit

We had cockpit installed before on CentOS 7. But the one on CentOS 8 is stand-alone, can be controlled as a service and it’s simply gorgeous. I took the image above from the tecmint installation guide here. For (my) records, it’s only:

yum install cockpit;
systemctl enable --now cockpit.socket
systemctl start cockpit.socket

That’s it. Comments: the web is accesible for all the system users, even AD users, on https://IP-OF-MACHINE:9090 (or, if you have a DNS name for it, on https://DNS-NAME:9090). The terminal, when chosen, will come also with the user shell configuration (colors and so on). It’s perfect for a quick check of what’s going on. Simpy try it! 🙂