# Install problems

## CentOS 8 package dependencies

If you are running a non-standard version of CentOS 8, make sure the following packages required by the Aerospike Enterprise Edition are installed. The version numbers for some packages are also shown.

-   /bin/sh
-   /usr/bin/env
-   config(aerospike-server-enterprise) = 4.8.0.5-1.el8
-   ld-linux-x86-64.so.2()(64bit)
-   ld-linux-x86-64.so.2(GLIBC\_2.2.5)(64bit)
-   ld-linux-x86-64.so.2(GLIBC\_2.3)(64bit)
-   libc.so.6()(64bit)
-   libc.so.6(GLIBC\_2.14)(64bit)
-   libc.so.6(GLIBC\_2.17)(64bit)
-   libc.so.6(GLIBC\_2.2.5)(64bit)
-   libc.so.6(GLIBC\_2.28)(64bit)
-   libc.so.6(GLIBC\_2.3)(64bit)
-   libc.so.6(GLIBC\_2.3.2)(64bit)
-   libc.so.6(GLIBC\_2.3.4)(64bit)
-   libc.so.6(GLIBC\_2.4)(64bit)
-   libc.so.6(GLIBC\_2.6)(64bit)
-   libc.so.6(GLIBC\_2.7)(64bit)
-   libc.so.6(GLIBC\_2.8)(64bit)
-   libc.so.6(GLIBC\_2.9)(64bit)
-   libcrypto.so.1.1()(64bit)
-   libcrypto.so.1.1(OPENSSL\_1\_1\_0)(64bit)
-   libdl.so.2()(64bit)
-   libdl.so.2(GLIBC\_2.2.5)(64bit)
-   libgcc\_s.so.1()(64bit)
-   libgcc\_s.so.1(GCC\_3.0)(64bit)
-   libgcc\_s.so.1(GCC\_3.3)(64bit)
-   liblber-2.4.so.2()(64bit)
-   libldap-2.4.so.2()(64bit)
-   libm.so.6()(64bit)
-   libm.so.6(GLIBC\_2.2.5)(64bit)
-   libpthread.so.0()(64bit)
-   libpthread.so.0(GLIBC\_2.2.5)(64bit)
-   libpthread.so.0(GLIBC\_2.3.2)(64bit)
-   libpthread.so.0(GLIBC\_2.3.4)(64bit)
-   librt.so.1()(64bit)
-   librt.so.1(GLIBC\_2.2.5)(64bit)
-   libssl.so.1.1()(64bit)
-   libssl.so.1.1(OPENSSL\_1\_1\_0)(64bit)
-   libssl.so.1.1(OPENSSL\_1\_1\_1)(64bit)
-   libstdc++.so.6()(64bit)
-   libstdc++.so.6(CXXABI\_1.3)(64bit)
-   libstdc++.so.6(CXXABI\_1.3.8)(64bit)
-   libstdc++.so.6(CXXABI\_1.3.9)(64bit)
-   libstdc++.so.6(GLIBCXX\_3.4)(64bit)
-   libstdc++.so.6(GLIBCXX\_3.4.20)(64bit)
-   libstdc++.so.6(GLIBCXX\_3.4.21)(64bit)
-   libstdc++.so.6(GLIBCXX\_3.4.9)(64bit)
-   libz.so.1()(64bit)
-   libz.so.1(ZLIB\_1.2.0)(64bit)
-   rpmlib(CompressedFileNames) <= 3.0.4-1
-   rpmlib(FileDigests) <= 4.6.0-1
-   rpmlib(PayloadFilesHavePrefix) <= 4.0-1
-   rpmlib(PayloadIsXz) <= 5.2-1
-   rtld(GNU\_HASH)

## Debian/Ubuntu python3 dependency

Debian/Ubuntu users - Python3 is not installed if you see the following error during installation:

```plaintext
Installing tools

dpkg -i aerospike-tools-6.0.3.debian10.x86_64.deb

Selecting previously unselected package aerospike-tools.

(Reading database ... 30041 files and directories currently installed.)

Preparing to unpack .../aerospike-tools-6.0.3.ubuntu20.04.x86_64.deb ...

Unpacking aerospike-tools (6.0.3) ...

Setting up aerospike-tools (6.0.3) ...

Installing /opt/aerospike

No Python interpreter found!

dpkg: error processing package aerospike-tools (--configure):

 installed aerospike-tools package post-installation script subprocess returned error exit status 1

Errors were encountered while processing:

 aerospike-tools
```

Aerospike recommends you use the Docker tools image directly to install the tools package if you are using Docker. Otherwise, to install the tools package manually on a Linux container, see the Python installation instructions for the tools package [here](https://aerospike.com/docs/database/tools/install/requirements/#python3-for-asloglatency).

## /opt/aerospike directory conflict

If you get the following error during installation (versions up to 3.3.5):

```plaintext
Preparing packages...

    file /opt/aerospike conflicts between attempted installs of aerospike-server-community-3.3.5-1.el6.x86_64 and aerospike-tools-3.2.13-1.el6.x86_64

    file /opt/aerospike/data conflicts between attempted installs of aerospike-server-community-3.3.5-1.el6.x86_64 and aerospike-tools-3.2.13-1.el6.x86_64

    file /opt/aerospike/doc conflicts between attempted installs of aerospike-server-community-3.3.5-1.el6.x86_64 and aerospike-tools-3.2.13-1.el6.x86_64
```

Rerun the rpm command using the —force option:

Terminal window

```bash
sudo rpm -i aerospike-server-community-<version>.el6.x86_64.rpm --force
```

## Directory and file conflicts require manual uninstall

If you have installed some previous versions of Aerospike or Citrusleaf, there may be conflicts.

For a perfect installation, we recommend checking for, and removing, older versions of Aerospike and Citrusleaf. This is not necessary for recent versions of Aerospike, but may be required for some older versions of Aerospike or Citrusleaf.

In Debian and Ubuntu,

```plaintext
sudo dpkg -l | fgrep aerospike

sudo dpkg -l | fgrep citrusleaf

sudo dpkg -r < package name >
```

In RedHat and Centos,

```plaintext
sudo rpm -qa | fgrep aerospike

sudo rpm -qa | fgrep citrusleaf

sudo rpm -e < package name >
```

## SELinux prevents adding user/group aerospike/aerospike

If you see the following error during installation:

```plaintext
Preparing packages...

Installing /opt/aerospike

Adding group aerospike

Adding user aerospike

useradd: cannot create directory /opt/aerospike

error: %pre(aerospike-tools-3.2.13-1.el6.x86_64) scriptlet failed, exit status 12

error: aerospike-tools-3.2.13-1.el6.x86_64: install failed

Adding group aerospike

groupadd: group 'aerospike' already exists

Adding user aerospike

useradd: cannot create directory /opt/aerospike

error: %pre(aerospike-server-community-3.3.5-1.el6.x86_64) scriptlet failed, exit status 12

error: aerospike-server-community-3.3.5-1.el6.x86_64: install failed
```

Use `sestatus` to determine the configuration for SELinux. If the mode is `enforcing`, disable it.

Disable SELinux during the installation process where the user and group are created. You can re-enable it later.

Some distributions support disabling SELinux temporarily:

Terminal window

```bash
sudo setenforce 0
```

To re-enable:

Terminal window

```bash
sudo setenforce 1
```

To quickly check:

Terminal window

```bash
getenforce
```

To disable SELinux permanently, edit the file `/etc/selinux/config` and reboot. Create the following directory and file if they do not exist.

Terminal window

```bash
sudo vi /etc/selinux/config
```

The contents of the file should set SELINUX to `disabled` instead of `enforcing`:

```plaintext
SELINUX=disabled

SELINUXTYPE=targeted
```