L4D2 dedicated server expects to dlopen steamclient.so via ~/.steam/sdk32 (and sdk64). Without those symlinks, srcds_run logs 'cannot open shared object file' and SteamAPI_Init fails, which means the server is invisible to the public Steam master server, Workshop addon downloads break, and Steam 'Join Game' / lobby joins do not reach the server (only direct-IP connect works). SteamInstaller.install_or_update now ensures the symlinks exist after SteamCMD finishes. Targets prefer SteamCMD's linux32/linux64 sibling dirs; falls back to <install_dir>/bin/ if the siblings cannot be located. Idempotent: re-running the install repairs or leaves the symlinks alone. Path.home() respects HOME, which the systemd web unit sets to /var/lib/left4me, so the symlinks land in the left4me user's home. Existing deploys can apply the fix by re-running 'Install' from /admin without a full redeploy. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| test_cli.py | ||
| test_initialize.py | ||
| test_install.py | ||
| test_lifecycle.py | ||
| test_logging.py | ||
| test_logs.py | ||
| test_paths.py | ||
| test_process.py | ||
| test_spec.py | ||
| test_status.py | ||