-
Use ubuntu (or debian works too for this guide) because i dont know the other distros lmao
-
Run
sudo dpkg --add-architecture i386
to enable 32 bits package lists -
Run
sudo apt update
to make sure package lists are updated -
Run
sudo apt install libstdc++6:i386
to get the dependencies for BYOND -
Find the download link for BYOND's linux version from http://www.byond.com/download/, looks like
http://www.byond.com/download/build/513/513.1536_byond_linux.zip
-
Run
wget <theurlyougot>
-
Decompress the file you just downloaded somewhere
unzip 513.1536_byond_linux.zip
replacing the filename with the actual filename you have -
CD into the newly extracted
byond
directory -
You have two options here:
- Install system wide
- Install for your own user without admin rights
Option 1: Install system wide Option 2: Install for your own user without admin rights 1. Run sudo make install
1. Run make here
2. Its going to give you a command to run that looks like source /somepath/byond/bin/byondsetup
, run that command3. (Optional) Add that command to your startup script (.bash_profile/.profile). This step is optional if youre fine with running this command each time you open a shell you want to use BYOND in -
Run
DreamDaemon
, you should get the usage information -
(Optional) Run
ldd yoursofile.so
on each .so file in your codebase to verify that linkage is working properly. You should be looking for something that says its not found. If everything is OK move on to the next step. -
Run
DreamDaemon yourcodebase.dmb -trusted
Troubleshooting:
Running ldd says that the file is not a dynamically linked executable
Try installing gcc-multilib with sudo apt install gcc-multilib
Im getting spammed with runtimes of Cannot load library <something>.so
- Verify that the .so file actually exists
- Verify that the user running DreamDaemon has the execute permission to the .so file (use ls -l to check the permissions and ownership)
- Try to ldd the .so file and check if any library is marked as "(not found)" or is missing a version (
/usr/lib/libstdc++.so.6: version
GLIBCXX_3.X.XX' not found ` is a common one and is somewhat easy to miss) - Run
strace DreamDaemon yourcodebase.dmb | grep <something>.so
to try to find what its trying to load and where and figure it out from there
The game is expecting an .so file but it doesnt exist!
If its rust_g, you can download a release from https://github.com/tgstation/rust-g/releases or follow the instructions https://github.com/tgstation/rust-g to compile it yourself. If it is not rust_g, contact whatever smart dude your codebase has.
LDD says a library is not found, so now what?
Google ubuntu <yourlibraryfile thats not found> not found
and chances are youll hit a stack overflow page that tells you what package to install to get the library
Running DreamDaemon says No such file or directory /somepath/byond/bin/DreamDaemon
Make sure libstdc++6:i386 is installed
wget/make/unzip not found
Run these commands depending on whats missing
- wget: sudo apt install wget
- make: sudo apt install make
- unzip: sudo apt install zip
How do I do X on Y distro?
I dont know mane, this is a guide for ubuntu so stackoverflow.com or askubuntu.com are your friends