Обновлённый гайд для запуска 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) и задать вопрос.