2. Software management#

This section describes the differences of UCS with respect to software management. In this section, the term software management refers to the lifecycle of software on a computer system, such as installing software on a computer system, updating, and removing existing software.

As an enterprise Linux distribution, UCS has defined maintenance cycles for its version levels and uses terms such as errata updates or patch level releases.

See also

2.1. Default software on UCS#

Univention uses many open source products and adapts them to UCS, such as OpenLDAP, OpenSSL, Samba, Apache HTTP Server. The product capability relies on these products. Replacing the existing packages with the personal favorite breaks UCS. For example, using nginx instead of the UCS default Apache HTTP Server.

Principle #2

Use the standard software packages that UCS installs to provide core product capabilities.

Don’t replace these software packages with software of your own personal taste.

2.2. Software repositories and packages#

As a Linux distribution based on Debian GNU/Linux, UCS uses software packages in the deb file format and the corresponding package repositories. Univention provides and maintains software packages in package repositories. The packages have two different maintenance statuses: maintained and unmaintained.

See also

2.3. Commands for software management#

To install, update, and remove software packages from a Debian GNU/Linux system, the Debian Project provides the commands apt for interaction with the package manager and apt-get for non-interactive interaction. For graphical interaction, there are tools such as aptitude and synaptic. As a Debian GNU/Linux or Ubuntu administrator you are familiar with these tools.

UCS provides the following command line tools as wrappers around apt-get:

univention-install

to install software packages from a software repository on UCS. This command also implicitly updates the package cache on a UCS system.

univention-upgrade

to update installed software packages on a UCS system, for example errata updates or patch level releases.

univention-remove

to remove installed software packages from UCS.

univention-app

to install, update, or remove apps in the App Center on UCS.

Principle #3

Use the univention-* tools to perform actions for installing, updating and removing software packages and apps on UCS.

In contrast to apt and apt-get, the univention-* commands take care of the following additional aspects of software management on UCS:

  1. Not all administrators run apt update before installing software. univention-install always updates the local software package cache before installing software. This ensures that the package manager installs the latest stable software version.

  2. univention-install ensures the transfer of configuration settings, for example from UCR variables or join scripts.

    For example, when installing Postfix with apt, the standard wizard of the package asks for the type of the mail system, such as Internet Site, Internet with smarthost, Satellite system, or Local only. univention-install doesn’t run the wizard. Instead, it applies the relevant system configuration settings so that the mail server works after the installation and is ready for your adjustments, if required.

  3. The installation of meta packages ensures that the package manager uses UCS mechanisms during the installation, such as the correct configuration of the software package and information storage in the domain.

See also

For further information about the mentioned commands, see the following sections in Univention Corporate Server - Manual for users and administrators [2]:

2.4. Automatic software updates#

UCS uses policies to define automatic software updates for systems in a domain.

See also

For more information, see the following sections in Univention Corporate Server - Manual for users and administrators [2]:

2.5. Beyond software packages#

In addition to the well-known software packages, Univention also distributes software as apps through Univention App Center. Apps provide a connector between UCS and the software. The app can be standalone or accompanied by the software itself. For example, to install apps such as UCS components, for example Active Directory-compatible Domain Controller, or third-party software such as Nextcloud or ownCloud, you must use the App Center, either the corresponding UMC module or the univention-app command. Most apps use Docker images and offer a ready-to-use integration with UCS.

See also

For more information, see the following resources:

2.6. Third party sources#

As a Debian GNU/Linux or Ubuntu administrator you know about the ability to add third-party software repositories to install additional software on your system.

You can also add third-party repositories to UCS by editing the sources lists or adding files to /etc/apt/sources.list.d. While this is possible, it’s not recommended. Be aware of the possible negative consequences, such as breaking existing services.

For example, adding PHP packages from another PHP repository interferes with the existing PHP packages and may negatively affect other software from the UCS software repository that relies on the default PHP version in UCS. Product tests only cover software packages from the Univention software repository.

With regard to additional Python packages, don’t install packages through pip into your system-wide Python environment, but into a virtual environment instead. See venv - Creation of virtual environments. Installing or updating Python packages with pip in the system-wide Python environment of UCS, can overwrite existing files and can cause problems that are difficult to diagnose.

Principle #4

Before installing third-party software packages:

  1. Always verify the App Center and the standard Univention software repositories to see if the software is already available there.

  2. Make sure that the packages don’t overwrite existing packages.

  3. Prefer Docker images to Debian packages.

  4. Use pip in virtual Python environments only.