Linux
/File/en/Translation.png
Эта статья переводится с английского языка на русский: en/Archive/Compilation and Ports/Compiling on GNU∕Linux and 🟉BSD.
Процент: 99%
  
Пожалуйста, помогите улучшить перевод.
  • Используйте руководство по стилю для правильного изложения перевода.
  • Помните, что необходимо удалить данный шаблон, когда статья будет полностью переведена.

Настоящее руководство содержит информацию, которая будет полезна пользователям ОС Linux и других Unix-подобных ОС, желающим принять участие в разработке OpenTTD. Для получения помощи по компиляции на различных платформах зайдите на канал #openttd на OFTC.

Contents

Необходимое ПО

Большинство необходимых для разработки пакетов (типа GCC), скорее всего, уже присутствуют в вашей системе. Помимо них, OpenTTD нуждается в SDL. Также очень желательно иметь zlib, liblzo2 и/или liblzma (используется для сжатия и открытия сжатых файлов сохраненных игр). Наконец, OpenTTD может использовать libpng для сохранения скриншотов в формате PNG вместо BMP. Все упомянутые библиотеки должны быть установлены в варианте для разработки, если ваш дистрибутив делает такое различие.

Если вы желаете иметь доступ к самому свежему коду, вам также понадобится клиент subversion.

Mandriva

(проверено на Mandriva 2009 Spring)

Для установки перечисленного можно выполнить команду:

urpmi gcc gcc-c++ libsdl-devel zlib1-devel subversion patch patchutils

Debian и Ubuntu

Для установки перечисленного выполните команду:

sudo apt-get install build-essential libsdl1.2-dev subversion zlib1g-dev liblzo2-dev timidity dpatch liblzma-dev

В Ubuntu 9.04 или новее выполните также:

sudo apt-get install libsdl1.2debian-pulseaudio

Как минимум, в одном случае для полной установки на сборке Debian под PowerPC потребовался пакет "libsdl1.2debian-all". Без установки данного пакета собирался лишь выделенный сервер. [1]

Fedora

(проверено на FC6, Fedora 7, 8 & 11)

Если у вас установлен yum, выполните из-под рута следующую команду:

$ yum install gcc gcc-c++ SDL-devel zlib-devel subversion timidity++ esound -y

openSUSE 11.3

Используйте YaST, чтобы установить:

Также можно использовать консольную утилиту `zypper':

$ zypper install gcc-c++ SDL-devel zlib-devel libpng-devel libicu-devel lzo-devel freetype2-devel subversion timidity

Gentoo

Из-под рута выполните:

$ emerge -avo openttd

Это приведет к установке всех зависимостей OpenTTD, но без самого OpenTTD.

Если вы желаете работать с самой свежей версией исходников (т.н. TRUNK/SVN), выполните из-под рута следующую команду:

$ emerge subversion

Arch Linux

Из-под рута выполните:

$ pacman -S openttd

Это приведет к установке OpenTTD и всех его зависимостей. В официальных репозиториях также доступны свободные наборы графики (openttd-opengfx) и звуков (openttd-opensfx).

PKGBUILD'ы для Openttd-beta, openttd-svn и openttd-32bpp доступны в AUR.

FreeBSD

Чтобы скачать, собрать и установить все необходимые зависимости, выполните из-под рута:

$ cd /usr/ports/games/openttd && make depends clean

Если вы собираетесь брать OpenTTD из subversion, также выполните из-под рута следующую команду:

$ cd /usr/ports/devel/subversion && make install clean

NetBSD

Чтобы скачать, собрать и установить все необходимые зависимости, выполните:

$ cd /usr/pkgsrc/games/openttd && make depends clean

Если вы собираетесь брать OpenTTD из subversion, также выполните:

$ cd /usr/pkgsrc/devel/subversion-base && make install clean

После сборки пакетов перед их установкой вам нужно будет ввести пароль root.

Получение исходников

Релизы

Вы можете скачать исходники в виде архивов .tar.gz на веб-сайте OpenTTD. После распаковки архива вы получите директорию с названием openttd-<версия>, где <версия> — скачанная вами версия исходников. Войдите в эту директорию и переходите к шагу 3.

Ночные сборки

Как и в случае релизов, свежий снимок исходников (который создается ежедневно в 19:00 GMT) можно взять на веб-сайте OpenTTD. Распакуйте архив и зайдите в директорию с исходниками. Переходите к шагу 3.

Самая свежая версия (т.н. Trunk/SVN)

Самая свежая версия официальных исходников хранится в репозитории subversion. Subversion упрощает отслеживание различных версий и предоставляет в общее пользование единое пространство для хранение кода. Для вас, как пользователя, это означает быстрый доступ к самой свежей версии исходного кода.

Первичная загрузка

Чтобы получить исходники с сервера subversion, выполните следующую команду:

$ svn checkout svn://svn.openttd.org/trunk openttd

Это поместит код в директорию openttd/. Отныне эту директорию мы будем называть вашей "рабочей копией". Кроме того, мы теперь будем предполагать, что все команды svn вы отдаете, находясь в директории openttd/.

Если вы просто желаете собрать самую свежую версию OpenTTD, можете переходить к шагу 3.

Обновление

Если вы уже ранее скачали код и стала доступна новая его версия (иначе говоря, появились новые ревизии), вы можете обновить свою рабочую копию. Для этого, находясь внутри нее, выполните:

$ svn update

Если вы подправили код в своей рабочей копии, ваши правки сохранятся и будут совмещены со свежими "официальными" изменениями. В случае конфликта правок о нем будет сообщено (пометки "C" в выводе svn status), при этом все равно сохраняются локальные изменения. За информацией о разрешении таких конфликтов обратитесь к SVN Book.

Создание файла-патча

Если вы внесли изменения в исходный код и желаете ими поделиться, вы можете заставить svn сгенерировать файл diff. Команда

$ svn diff > mypatch.diff

создает файл diff (также известный как "патч"), который вы можете затем отправить разработчикам.

Откат изменений

Можно отменить внесенные в файл изменения, выполнив следующую команду:

$svn revert filename

То же можно проделать и со всем деревом директорий проекта:

$svn revert -R .

Наложение патча

Чтобы применить патч (файл diff) на исходный код, сначала обновите его до версии, для которой предназначается патч. Допустим, патч был сделан к версии r1234. Это можно увидеть в первых строках патч-файла:

Index: foo.c
===================================================================
--- foo.c (revision 1234)
+++ foo.c (working copy)

Чтобы обновить код в своей рабочей копии до ревизии r1234, выполните:

$ svn update -r 1234

Теперь вы готовы применить патч:

$ patch -p0 < mydiff.diff

Затем (опционально) обновите код до последней версии:

$ svn update

Если в итоге возникают конфликты (файлы отмечены символом "C"), то это значит, что патч не годится для последней ревизии (в принципе, вам ничто не мешает откатиться, снова наложить патч и использовать старую пропатченную ревизию).

Сборка и запуск

Для сборки OpenTTD сначала выполните:

$ ./configure

Будет создан Makefile. Затем запустите сборку:

$ make

Если вы внесли изменения в исходники или обновили код с сервера subversion, перекомпилированы будут лишь измененные файлы.

Оригинальные файлы данных TTD (опционально)

Скопируйте файлы GRF от Transport Tycoon Deluxe в директорию data/:

Версия TTD для Windows Версия TTD для DOS

Запуск

Запустить OpenTTD можно следующим образом:

$ cd bin
$ ./openttd

Команда cd сменит рабочую директорию на bin, в которой находится исполняемый файл openttd. Вторая команда, собственно, запустит OpenTTD.

Кроме того, вы можете установить игру в /usr/local/ или куда-нибудь еще, но это больше касается создателей пакетов. Это требует знания некоторых особенностей установки ПО и OpenTTD в частности; полезную информацию вы можете найти в Makefile.

Музыка в игре

Если вы желаете слушать оригинальную музыку TTD, скопируйте всю директорию gm/. Кроме того, вам понадобится TiMidity.

Debian/Ubuntu

Установите timidity и freepats

$ sudo apt-get install timidity freepats
/File/en/Klipper.png
To Do
Указать, к какой версии Gnome применимо дальнейшее (и при каких дополнительных условиях), а также правильно перевести названия меню и т.п.

Если вы пользуетесь Gnome, откройте окно "Параметры системы", кликните по иконке "Звук" и перейдите на вкладку "Оборудование", затем кликните по "Select the Midi Device" и выберите "Timidity port 0 - Alsa device" (может называть иначе, но слово timidity там будет), после чего кликните по кнопке "Применить".

Fedora

Сначала установите timidity++

$ yum install timidity++
/File/en/Klipper.png
To Do
Для какой рабочей среды это и для каких версий? Перевести названия меню в соответствии с их переводом в первоисточнике.

Timidity должна взаимодействовать с ESD, так что понадобится "enable software sound mixing (ESD)" (System → Preferences → Sound).

Запуск OpenTTD с музыкой

Для запуска OpenTTD с поддержкой музыки выполните:

$ ./openttd -m extmidi

Создания пакета Debian

Вы можете создать пакет Debian из свежих исходников, используя прилагающуюся директорию debian. Вы также можете проделать описанные здесь действия вместо шага 3. В соответствии со стандартами OpenTTD, эта директория размещается в директории os/ и сначала должна быть перемещена на уровень выше:

$ mv os/debian .

После этого для сборки пакета используйте стандартный инструментарий Debian:

$ dpkg-buildpackage -rfakeroot -uc -us

Для установки выполните из-под рута следующее:

$ dpkg -i ../openttd-<version>_<something>.deb

Все, OpenTTD установлен.

На шаге 3 вы должны будете скопировать файлы данных в директорию /usr/share/games/openttd/data, т.к. они не включаются в пакет .deb по лицензионным соображениям.

Для запуска OpenTTD вместо $ ./openttd вы теперь можете просто ввести $ openttd.

На шаге 6 вам нужно будет скопировать файлы с музыкой из директории gm в директорию /usr/share/games/openttd.