Install dependencies

Salt and the Salt services require various packages to be present in order to run effectively. If you host your own custom built repository of Salt, you must also ensure these packages are present in the repository. For example, if your system is air-gapped and uses a minimal repository, these packages must be present in order for the Salt services to run correctly.

The following list the package dependencies for each operating system for onedir packages.

Installing dependencies in onedir versions of Salt

When you install a onedir version of Salt (3006 and later), Salt installs its own local version of Python and the dependencies needed for the core functionality of Salt. See Salt dependencies for a list of packages that come installed with Salt.

After installing a onedir verison of Salt, your system has both a global version of Python at the system level and a local version of Python used by Salt. This architecture change means that the Salt onedir paths for Python are different and you need to change how you install third-party Python dependencies that you use with Salt, including your state files.

The recommended approach is to install dependencies is to use Salt to reinstall any existing third-party Python packages. Reinstalling the packages ensures they are in the correct onedir path:

  1. Use salt-call pip.list to view existing modules that may need to be installed.

    Note

    See Salt dependencies for a list of the packages that are installed with onedir. Any package that is not on this list needs to be reinstalled.

  2. You can use two possible methods to reinstall packages:

    • salt-pip install <package name>

    • Use the pip.installed Salt state.

    Note

    In order to install software such as Python libraries and Salt extensions, you’ll need to use salt-pip to install packages into the onedir directory. For more information, see the pip.state module documentation.

  3. After upgrading to onedir, you might need to update any state files that use pip.installed if you need to install Python packages into the system Python environment. In the state file, provide the pip_bin or bin_env to the pip state module.

    For example:

    lib-foo:
      pip.installed:
        - pip_bin: /usr/bin/pip3
    lib-bar:
      pip.installed:
        - bin_env: /usr/bin/python3
    
  4. After upgrading to onedir, you might also need to update any salt gitfs formula branches if the formula has changed because of onedir-specific fixes.

List of dependencies by operating system

Amazon Linux 2

Service

Packages

salt

  • /bin/bash

  • /bin/sh

  • /usr/bin/env

  • config(salt) = 3005.1-2.amzn2

  • dmidecode

  • libc.so.6

  • libdl.so.2

  • libpthread.so.0

  • libz.so.1

  • openssl

  • pciutils

  • rpmlib

  • rtld

  • systemd-units

  • which

salt-minion

  • /bin/bash

  • /bin/sh

  • config(salt-minion) = 3005.1-2.amzn2

  • rpmlib

  • salt = 3005.1

salt-master

  • /bin/bash

  • /bin/sh

  • config(salt-master) = 3005.1-2.amzn2

  • rpmlib

  • salt = 3005.1-2.amzn2

salt-api

  • /bin/bash

  • /bin/sh

  • rpmlib

  • salt-master = 3005.1-2.amzn2

salt-cloud

  • /bin/bash

  • config(salt-cloud) = 3005.1-2.amzn2

  • rpmlib

  • salt-master = 3005.1-2.amzn2

salt-ssh

  • /bin/bash

  • config(salt-ssh) = 3005.1-2.amzn2

  • rpmlib

  • salt = 3005.1-2.amzn2

salt-syndic

  • /bin/bash

  • /bin/sh

  • rpmlib

  • salt-master = 3005.1-2.amzn2

Debian 11

Service

Packages

salt

Recommends:

  • lsb-release

Suggests:

  • ifupdown

salt-minion

Depends:

  • bsdmainutils

  • dctrl-tools

  • salt-common (= 3005.1+ds-2)

Recommends:

  • debconf-utils

  • dmidecode

  • net-tools

salt-master

Depends:

  • salt-common (= 3005.1+ds-2)

salt-api

Depends:

  • salt-master

salt-cloud

Depends:

  • salt-common (= 3005.1+ds-2)

salt-ssh

Depends:

  • salt-common (= 3005.1+ds-2)

  • openssh-client

salt-syndic

Depends:

  • salt-master (= 3005.1+ds-2)

RedHat 7

Service

Packages

salt

  • /bin/bash

  • /bin/sh

  • /usr/bin/env

  • config(salt) = 3005.1-2.el7

  • dmidecode

  • libc.so.6

  • libdl.so.2

  • libpthread.so.0

  • libz.so.1

  • openssl

  • pciutils

  • rpmlib

  • rtld

  • systemd-units

  • which

salt-minion

  • /bin/bash

  • /bin/sh

  • config(salt-minion) = 3005.1-2.el7

  • rpmlib

  • salt = 3005.1-2.el7

salt-master

  • /bin/bash

  • /bin/sh

  • config(salt-master) = 3005.1-2.el7

  • rpmlib

  • salt = 3005.1-2.el7

salt-api

  • /bin/bash

  • /bin/sh

  • config(salt-master) = 3005.1-2.el7

  • rpmlib

  • salt = 3005.1-2.el7

salt-cloud

  • /bin/bash

  • config(salt-cloud) = 3005.1-2.el7

  • rpmlib

  • salt-master = 3005.1-2.el7

salt-ssh

  • /bin/bash

  • config(salt-ssh) = 3005.1-2.el7

  • rpmlib

  • salt = 3005.1-2.el7

salt-syndic

  • /bin/bash

  • /bin/sh

  • rpmlib

  • salt-master = 3005.1-2.el7

RedHat 8

Service

Packages

salt

  • /bin/bash

  • /bin/sh

  • /usr/bin/sh

  • config(salt) = 3005.1-2.el8

  • dmidecode

  • libc.so.6

  • libdl.so.2

  • libpthread.so.0

  • libz.so.1

  • openssl

  • pciutils

  • rpmlib

  • rtld

  • systemd-units

  • which

salt-minion

  • /bin/bash

  • /bin/sh

  • config(salt-minion) = 3005.1-2.el8

  • rpmlib

  • salt = 3005.1-2.el8

salt-master

  • /bin/bash

  • /bin/sh

  • config(salt-master) = 3005.1-2.el8

  • rpmlib

  • salt = 3005.1-2.el8

salt-api

  • /bin/bash

  • /bin/sh

  • rpmlib

  • salt-master = 3005.1-2.el8

salt-cloud

  • /bin/bash

  • config(salt-cloud) = 3005.1-2.el8

  • rpmlib

  • salt-master = 3005.1-2.el8

salt-ssh

  • /bin/bash

  • config(salt-ssh) = 3005.1-2.el8

  • rpmlib

  • salt = 3005.1-2.el8

salt-syndic

  • /bin/bash

  • /bin/sh

  • rpmlib

  • salt-master = 3005.1-2.el8

RedHat 9

Service

Packages

salt

  • /usr/bin/bash

  • /usr/bin/sh

  • config(salt) = 3005.1-2.el9

  • dmidecode

  • libc.so.6

  • libdl.so.2

  • libpthread.so.0

  • libz.so.1

  • openssl

  • pciutils

  • rpmlib

  • rtld

  • systemd-units

  • which

salt-minion

  • /bin/sh

  • /usr/bin/bash

  • config(salt-minion) = 3005.1-2.el9

  • rpmlib

  • salt = 3005.1-2.el9

salt-master

  • /bin/sh

  • /usr/bin/bash

  • config(salt-master) = 3005.1-2.el9

  • rpmlib

  • salt = 3005.1-2.el9

salt-api

  • /bin/sh

  • /usr/bin/bash

  • rpmlib

  • salt-master = 3005.1-2.el9

salt-cloud

  • /usr/bin/bash

  • config(salt-cloud) = 3005.1-2.el9

  • rpmlib

  • salt-master = 3005.1-2.el9

salt-ssh

  • /usr/bin/bash

  • config(salt-ssh) = 3005.1-2.el9

  • rpmlib

  • salt = 3005.1-2.el9

salt-syndic

  • /bin/sh

  • /usr/bin/bash

  • rpmlib

  • salt-master = 3005.1-2.el9

Ubuntu 18.04

Service

Packages

salt

Recommends:

  • lsb-release

Suggests:

  • ifupdown

salt-minion

Depends:

  • bsdmainutils

  • dctrl-tools

  • salt-common (= 3005.1+ds-2)

Recommends:

  • debconf-utils

  • dmidecode

  • net-tools

salt-master

Depends:

  • salt-common (= 3005.1+ds-2)

salt-api

Depends:

  • salt-master

salt-cloud

Depends:

  • salt-common (= 3005.1+ds-2)

salt-ssh

Depends:

  • salt-common (= 3005.1+ds-2)

  • openssh-client

salt-syndic

Depends:

  • salt-master (= 3005.1+ds-2)

Ubuntu 20.04

Service

Packages

salt

Recommends:

  • lsb-release

Suggests:

  • ifupdown

salt-minion

Depends:

  • bsdmainutils

  • dctrl-tools

  • salt-common (= 3005.1+ds-2)

Recommends:

  • debconf-utils

  • dmidecode

  • net-tools

salt-master

Depends:

  • salt-common (= 3005.1+ds-2)

salt-api

Depends:

  • salt-master

salt-cloud

Depends:

  • salt-common (= 3005.1+ds-2)

salt-ssh

Depends:

  • salt-common (= 3005.1+ds-2)

  • openssh-client

salt-syndic

Depends:

  • salt-master (= 3005.1+ds-2)

Ubuntu 22.04

Service

Packages

salt

Recommends:

  • lsb-release

Suggests:

  • ifupdown

salt-minion

Depends:

  • bsdmainutils

  • dctrl-tools

  • salt-common (= 3005.1+ds-2)

Recommends:

  • debconf-utils

  • dmidecode

  • net-tools

salt-master

Depends:

  • salt-common (= 3005.1+ds-2)

salt-api

Depends:

  • salt-master

salt-cloud

Depends:

  • salt-common (= 3005.1+ds-2)

salt-ssh

Depends:

  • salt-common (= 3005.1+ds-2)

  • openssh-client

salt-syndic

Depends:

  • salt-master (= 3005.1+ds-2)