Skip to content

[Bug]: Having dpkg installed on RHEL-like distributions breaks the dependency checker #4251

@Znuff

Description

@Znuff

User story

Trying to install a game-server on AlmaLinux that coincidentally has dpkg installed breaks dependency detection

Game

Rustserver

Linux distro

RedHat 8

Command

command: install

Further information

The check-deps module is incorrectly written to check the existence of the dpkg-query, dnf or rpm commands to check for dependency, regardless of OS detection.

Installing dpkg with dnf install dpkg under RHEL-compatible distributions breaks this detection.

After a failure in dependency checking, the installer will suggest using apt:

Warning! Missing dependencies: bc binutils bzip2 cpio curl epel-release file glibc.i686 gzip hostname jq libstdc++ libstdc++.i686 nmap-ncat python36 tar tmux unzip util-linux wget xz zlib-devel
Warning! rustserver does not have sudo access. Manually install dependencies.
sudo apt update; sudo apt install bc binutils bzip2 cpio curl epel-release file glibc.i686 gzip hostname jq libstdc++ libstdc++.i686 nmap-ncat python36 tar tmux unzip util-linux wget xz zlib-devel
Failure! Missing dependencies required to run SteamCMD.
fetching GitHub core_exit.sh...OK

If dpkg is not present (as it should be on most RHEL-installs), the dependency checker works properly:

+++++ sleep 0.1
+++++ unset depstatus
+++++ '[' 0 == 1 ']'
+++++ for deptocheck in ${array_deps_required[*]}
+++++ fn_deps_detector
+++++ '[' zlib-devel == libsdl2-2.0-0:i386 ']'
+++++ '[' zlib-devel == steamcmd ']'
+++++ '[' zlib-devel == steamcmd ']'
+++++ [[ zlib-devel == \o\p\e\n\j\d\k* ]]
+++++ [[ zlib-devel == \j\a\v\a* ]]
+++++ '[' zlib-devel == mono-complete ']'
++++++ command -v dpkg-query
+++++ '[' '' ']'
++++++ command -v dnf
+++++ '[' /usr/bin/dnf ']'
+++++ dnf list installed zlib-devel
+++++ depstatus=0
+++++ '[' '' == 1 ']'
+++++ '[' 0 == 0 ']'
+++++ missingdep=0
+++++ '[' INSTALL == INSTALL ']'
+++++ echo -e '\e[32mzlib-devel\e[0m'
zlib-devel

But once you have dpkg installed, this fails:

+++++ sleep 0.1
+++++ '[' -n 258550 ']'
+++++ for steamcmddeptocheck in ${array_deps_required_steamcmd[*]}
+++++ '[' xz '!=' steamcmd ']'
+++++ '[' xz == glibc.i686 ']'
+++++ for steamcmddeptocheck in ${array_deps_required_steamcmd[*]}
+++++ '[' xz '!=' steamcmd ']'
+++++ '[' xz == libstdc++.i686 ']'
+++++ unset depstatus
+++++ '[' 1 == 1 ']'
+++++ array_deps_missing+=("${deptocheck}")
+++++ for deptocheck in ${array_deps_required[*]}
+++++ fn_deps_detector
+++++ '[' zlib-devel == libsdl2-2.0-0:i386 ']'
+++++ '[' zlib-devel == steamcmd ']'
+++++ '[' zlib-devel == steamcmd ']'
+++++ [[ zlib-devel == \o\p\e\n\j\d\k* ]]
+++++ [[ zlib-devel == \j\a\v\a* ]]
+++++ '[' zlib-devel == mono-complete ']'
++++++ command -v dpkg-query
+++++ '[' /usr/bin/dpkg-query ']'
+++++ dpkg-query -W '-f=${Status}' zlib-devel
+++++ grep -q -P '^install ok installed'
+++++ depstatus=1
+++++ '[' '' == 1 ']'
+++++ '[' 1 == 0 ']'
+++++ '[' 1 '!=' 0 ']'
+++++ missingdep=1
+++++ '[' INSTALL == INSTALL ']'
+++++ echo -e '\e[31mzlib-devel\e[0m'
zlib-devel

Relevant log output

No response

Steps to reproduce

  1. Install fresh AlmaLinux 8.x
  2. Install the EPEL repositories: dnf install epel-release
  3. Install the dpkg package manager: dnf install dpkg
  4. Try installing Rustserver according to the instructions here: https://linuxgsm.com/servers/rustserver/
  5. Encounter the issue

Removing dpkg will fix the dependency checker.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions