-
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 command |
|
3. (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
Try installing gcc-multilib with sudo apt install gcc-multilib
- 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
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.
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
Make sure libstdc++6:i386 is installed
Run these commands depending on whats missing
- wget: sudo apt install wget
- make: sudo apt install make
- unzip: sudo apt install zip
I dont know mane, this is a guide for ubuntu so stackoverflow.com is your friend