[GH-ISSUE #1969] Poor missing dependency handling #1546

Closed
opened 2026-02-27 02:57:44 +03:00 by kerem · 4 comments
Owner

Originally created by @transelement on GitHub (Jul 28, 2018).
Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/1969

This issue was brought up and conveniently ignored in #1966 however still remains.

When a missing dependency is identified by the installer it should STOP or PROMPT the user to resolve the error at hand, rather than continuing the install leaving the missing dependency 5 pages in scrollback.

As it stands the following flashes by the terminal:

[ERROR ] Install $SERVER: Checking dependencies: missing: $DEPENDENCY 

Warning! $USER does not have sudo access. Manually install dependencies.
        sudo dpkg --add-architecture i386; sudo apt update; sudo apt install $DEPENDENCY

Which "isn't enough."

Notwithstanding the fact that you should never recommend that a game server user have sudo rights to apt to install anything.

Originally created by @transelement on GitHub (Jul 28, 2018). Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/1969 This issue was brought up and conveniently ignored in #1966 however still remains. When a missing dependency is identified by the installer it should STOP or PROMPT the user to resolve the error at hand, rather than continuing the install leaving the missing dependency 5 pages in scrollback. As it stands the following flashes by the terminal: ``` [ERROR ] Install $SERVER: Checking dependencies: missing: $DEPENDENCY Warning! $USER does not have sudo access. Manually install dependencies. sudo dpkg --add-architecture i386; sudo apt update; sudo apt install $DEPENDENCY ``` Which "isn't enough." Notwithstanding the fact that you should never recommend that a game server user have sudo rights to apt to install _anything_.
Author
Owner

@UltimateByte commented on GitHub (Jul 28, 2018):

I agree with that, sudo should not be recommended imo.
Also agree that the process should stop if a missing dependency is noticed.

I think a major refacor of the dependency check function would be welcome, possibly with arrays just like core_getopt.sh does, which would help handling cases like this.
Arrays would contain at least:

  • Which package name for which distro
  • Which package check for which distro
  • Which package is critical or not and for which command
  • What to do if missing package is found
<!-- gh-comment-id:408625232 --> @UltimateByte commented on GitHub (Jul 28, 2018): I agree with that, sudo should not be recommended imo. Also agree that the process should stop if a missing dependency is noticed. I think a major refacor of the dependency check function would be welcome, possibly with arrays just like core_getopt.sh does, which would help handling cases like this. Arrays would contain at least: - Which package name for which distro - Which package check for which distro - Which package is critical or not and for which command - What to do if missing package is found
Author
Owner

@dgibbs64 commented on GitHub (Nov 23, 2018):

Dependency checker now stops if dependencies for SteamCMD are missing. Preventing SteamCMD from failing to run.

Also if you run ./gameserver install as root it will now install dependencies only.

I am reluctant to prevent server installation if all dependencies are not met as there are sometimes issues with dependency detection. However a review of this would be a good idea

<!-- gh-comment-id:441242904 --> @dgibbs64 commented on GitHub (Nov 23, 2018): Dependency checker now stops if dependencies for SteamCMD are missing. Preventing SteamCMD from failing to run. Also if you run `./gameserver install` as root it will now install dependencies only. I am reluctant to prevent server installation if all dependencies are not met as there are sometimes issues with dependency detection. However a review of this would be a good idea
Author
Owner

@dgibbs64 commented on GitHub (Mar 9, 2020):

A missing dependency is highlighted every time a server starts and various refactoring has been completed that should have improved dependency checking. I will close this and it can be re-raised if more work is required

<!-- gh-comment-id:596818091 --> @dgibbs64 commented on GitHub (Mar 9, 2020): A missing dependency is highlighted every time a server starts and various refactoring has been completed that should have improved dependency checking. I will close this and it can be re-raised if more work is required
Author
Owner

@github-actions[bot] commented on GitHub (Mar 14, 2021):

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

<!-- gh-comment-id:798804954 --> @github-actions[bot] commented on GitHub (Mar 14, 2021): This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#1546
No description provided.