Operating System-Specific Notes

FreeBSD

At Operating System installation

  • Choose ZFS filesystem and encryption

  • Create the gnuhealth user at installation time

  • Select SSHD and NTP services at boot time

Install requirements

# pkg install python
# pkg install postgresql16-server
# pkg install wget bash patch rust
# pkg install cmake gmake libxml2 libxslt jpeg-turbo
# pkg install py311-pip

Manually install lxml

To avoid errors building lxml, run the following command (as gnuhealth admin)

# su - gnuhealth
$ CFLAGS="-Wno-error=incompatible-function-pointer-types" pip install --user --upgrade lxml
$ exit

Initialize PostgreSQL

# sysrc postgresql_enable=yes
# /usr/local/etc/rc.d/postgresql initdb
# service postgresql start

Change /bin/bash to /usr/local/bin/bash

The first line of script that starts gnuhealth (start_gnuhealth.sh) is pointing to /bin/bash. On FreeBSD you have to change that to /usr/local/bin/bash.

# pw usermod -s /usr/local/bin/bash -n gnuhealth

Next step: Creating the Operating System User

Requirements for GTK client

You have to install some requirements as system packages before installing the client using pip:

# pkg install gcc py311-gobject3 py311-pip

Debian

Download and install the Operating System

  • Download the Debian OS image

  • Check the partitioning and FS options (we use ext4 filesystem)

  • Choose XFCE (optional)

  • Enable SSHD server

  • Create the user “gnuhealth” when prompted at installation time.

Install the requirements

$ sudo apt-get install postgresql patch python3-pip unoconv wget libreoffice-nogui

Allow local pip installation

Starting with Python3.11 it is discouraged to install Python libraries system wide or user wide. Virtual environments will get introduced with next HIS release 5.0 to catch up with best practices. Until then we need to explicitly allow user wide pip installations with the following environment variable:

$ export PIP_BREAK_SYSTEM_PACKAGES=1

If you want this change to be permanent, you can add this environment variable at your $HOME/.gnuhealthrc file in case of the gnuhealth user or e.g. in $HOME/.bashrc for other operating system users having BASH. Don’t forget to reload the file afterwards (happens automatically during future logins):

$ nano $HOME/.bashrc
<insert line 'export PIP_BREAK_SYSTEM_PACKAGES=1' on the bottom>
<close and save by pressing 'Ctrl+x' and 'y'>
$ source $HOME/.bashrc

Next step: Creating the Operating System User

Requirements for GTK client

You have to install some requirements as system packages before installing the client using pip:

$ sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 libcairo2-dev libgirepository1.0-dev python3-dev python3-pip gcc

Void Linux

# xbps-install postgresql-16_1 postgresql16-client-16.1_1
# ln -s /etc/sv/postgresql16/ /var/service
  • Check the status of the installation and running server

# sv status postgresql16

Allow local pip installation

$ export PIP_BREAK_SYSTEM_PACKAGES=1

PureOS

Download and install the Operating System

  • Download PureOS

  • Create the user “gnuhealth” when prompted at installation time.

Install the requirements

$ sudo apt-get install ssh apt-get install postgresql python3-pip

Check firewalld service

The standard GNUHealth / Tryton server listens in port 8000. The default firewall rules in PureOS blocks this port, so you need to customize it. You can temporarily stop the firewall service until you customize it to listen to the needed ports:

$ sudo systemctl stop firewalld

This only stops the service in the current session.

Next step: Creating the Operating System User

openSUSE

Note

This section provides the instructions for the official and standard (vanilla) installation on openSUSE. If you want to use the openSUSE package based installation, please refer to the Community Pages

Download and install the Operating System

  • Download the openSUSE Leap Network CD image

  • Check the partitioning and FS options (we use ext4 filesystem)

  • Select SERVER (text only) installation

  • Enable SSHD server

  • Create the user “gnuhealth” when prompted at installation time

Install the requirements

We need to use Python3.11

$ sudo zypper in patch python311

Replace default Python 3.6 with 3.11:

$ ln -si python3.11 python

Install the rest of dependencies

$ sudo zypper in patch postgresql15-server postgresql15-server-devel gcc python311-devel libreoffice

Initialize the PostgreSQL environment. The next systemctl start command will generate the initial pg cluster.

$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql

Next step: Creating the Operating System User

Requirements for GTK client

You have to install some requirements as system packages before installing the client using pip:

$ sudo zypper in python3-pip gcc python3-devel cairo-devel gobject-introspection-devel typelib-1_0-Gtk-3_0 python3-gobject-Gdk

Ubuntu

  • Create the gnuhealth user at installation time

  • Enable SSH server

Update the Sources

$ sudo apt-get update

Install requirements

$ sudo apt-get install python3-pip postgresql libreoffice-nogui wget

Next step: Creating the Operating System User

Requirements for GTK client

You have to install some requirements as system packages before installing the client using pip:

$ sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 libcairo2-dev libgirepository1.0-dev python3-dev python3-pip gcc