Обновлённый гайд для запуска BYOND (DreamDaemon) на Debian/Ubuntu
================
---
Оригинал https://www.byond.com/forum/post/2780956
Пост переведён на Русский язык от последнего изменения 9 апреля 2022 года.
---
Это руководство является кросспостом из моего GitHub Gist. [Вы можете найти оригинал здесь](https://gist.github.com/alexkar598/9a5624decad39ce40c5dadef8231fbd3)
1. Используйте Ubuntu (или Debian тоже подходит для этого руководства), потому что я не знаю других дистрибутивов лол.
2. Введи `sudo dpkg --add-architecture i386` чтобы включить 32-битные пакеты
3. Введи `sudo apt update` чтобы убедиться, что пакеты обновлены
4. Введи `sudo apt install libstdc++6:i386` чтобы получить зависимости для BYOND
5. Найди ссылку для загрузки Linux-версии BYOND с [http://www.byond.com/download/](https://www.byond.com/download/), например такую `http://www.byond.com/download/build/513/513.1536_byond_linux.zip`
6. Введи `wget <ссылка_на_BYOND>`
7. Распакуй файл введя `unzip 513.1536_byond_linux.zip` заменив имя файла на ту что скачали (посмотри в конец ссылки бастард *прим. пер.*).
8. Перейди в `byond` директорию (`cd byond` *прим. пер.*)
9. У тебя два варианта:
1. Установить для всех пользователей
2. Установить только для своего пользователя без прав администратора
| Вариант 1: Установить для всех пользователей | Вариант 2: Установить только для своего пользователя без прав администратора |
| -------- | -------- |
| 1\. Введи `sudo make install` | 1\. Введи `make here` |
| | 2\. Это даст комманду которая выглядит примерно так `source /somepath/byond/bin/byondsetup`, введи её |
| | 3\. (Необязательно) Добавьте эту команду в сценарий запуска (.bash_profile/.profile). Этот шаг является необязательным, если вы можете запускать эту команду выше каждый раз, когда открываете терминал, в которой хотите использовать BYOND. |
10. Введи `DreamDaemon`, и ты увидишь как надо пользоваться
11. (Необязательно) Введи `ldd библиотека.so` в вашей папке с кодом, чтобы убедиться, что связь между библиотекой и пакетами работает правильно. Если все в порядке, переходите к следующему шагу.
12. Введи `DreamDaemon твойкод.dmb -trusted`
Находим проблему:
================
### Ввод ldd комманды, что файл не является динамически подключаемым исполняемым файлом.
Попробуйте установить gcc-multilib с помощью `sudo apt install gcc-multilib`
* * *
### Я получаю спам рантаймами типа `Cannot load library <something>.so`
* Убедитесь, что файл .so действительно существует
* Убедитесь, что у пользователя, запускающего DreamDaemon, есть разрешение на выполнение файла .so (используйте ls -l для проверки разрешений на владельца)
* Введи `ldd файл.so` и посмотрите, не помечена ли какая-либо библиотека как `(not found)` или у неё нету версии (`/usr/lib/libstdc++.so.6: versionGLIBCXX_3.X.XX' not found` обычно распространённая проблема)
* Введи `strace DreamDaemon твойбилд.dmb | grep <твоябиблиотека>.so` чтобы попытаться найти то что он пытается загрузить
* * *
### `The game is expecting an .so file but it doesnt exist!`
Если это rust\_g, то его можно скачать отсюда [https://github.com/tgstation/rust-g/releases](https://github.com/tgstation/rust-g/releases) или следуя инструкции отсюда (англ.) [https://github.com/tgstation/rust-g](https://github.com/tgstation/rust-g) что-бы скомпилировать rust\_g самому. Если это не rust\_g, обратись к умному чуваку которого ты знаешь.
* * *
### LDD говорит, что библиотека не найдена (not found), и что теперь?
Гугли `ubuntu <твоя библиотека что не найдена> not found` и, скорее всего, вы попадете на страницу стаковерфлоу, на которой указано, какой пакет установить, чтобы получить библиотеку.
* * *
### Когда запускаю DreamDaemon пишет `No such file or directory /somepath/byond/bin/DreamDaemon`
Установи libstdc++6:i386
* * *
### `wget/make/unzip not found`
Введи эти команды в зависимости от того, чего не хватает
* wget: `sudo apt install wget`
* make: `sudo apt install make`
* unzip: `sudo apt install zip`
* * *
### Как мне сделать X в операционной системе Y?
Я не знаю, stackoverflow.com и askubuntu.com тебе помогут найти решение. Ну или же можете зайти [сюда](https://discord.gg/fRsn7RxdQp) и задать вопрос.