Как я могу создать Unity из исходного кода?

64

Я хотел бы знать, как я буду строить Unity из исходного кода в текущей версии разработки. Пожалуйста, рассмотрите следующие темы:

  • Какие пакеты необходимы для компиляции Unity?
  • Где я могу получить текущий исходный код?
  • Каковы шаги по настройке и компиляции Unity?
  • Можно ли безопасно запускать последнюю версию вместе с версией из репозиториев?
задан htorque 28.02.2011 в 20:50
источник

6 ответов

64

Создание единства из источника

В этом руководстве вы создадите разделенную версию соединительной линии Unity (локально установленную в ваш домашний каталог), поэтому вам не нужно беспокоиться о том, чтобы развратить версию из репозиториев Ubuntu, и вам также не понадобится root разрешений на протяжении всего процесса (за исключением установки зависимостей сборки).

0. Установка зависимостей сборки

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

sudo apt-get install bzr cmake compiz-dev gnome-common libbamf3-dev libboost-dev \
libboost-serialization-dev libgconf2-dev libgdu-dev libglewmx1.6-dev \
libgnome-desktop-3-dev libibus-1.0-dev libindicator3-dev libjson-glib-dev \
libnotify-dev libnux-2.0-dev libpci-dev libsigc++-2.0-dev libunity-dev \
libunity-misc-dev libutouch-geis-dev libxxf86vm-dev libzeitgeist-dev xsltproc

Если у вас есть репозитории исходного кода (aka deb-src ), вы можете использовать:

sudo apt-get build-dep unity

1. Подготовка среды

Замените SOURCE и PREFIX на каталоги, в которые вы хотите, чтобы файлы источника и сборки были отправлены. В этом примере я помещаю оба в свой домашний каталог:

export SOURCE=$HOME/source/unity
export PREFIX=$HOME/build/unity

export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
export LD_RUN_PATH="$PREFIX/lib:$LD_RUN_PATH"
export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS"

mkdir -p "$PREFIX"
mkdir -p "$SOURCE"
cd "$SOURCE"

2. Здание Nux

Вам, вероятно, понадобится захватить последнюю версию Nux , чтобы собрать соединительную линию Unity:

bzr branch lp:nux
cd nux
./autogen.sh --disable-examples --disable-gputests --disable-tests --prefix="$PREFIX"
make -j4
make install
cd ..

Совет . Большинство современных настольных компьютеров и ноутбуков имеют несколько ядер. Вы можете значительно ускорить компиляцию, воспользовавшись этим. Команда make имеет встроенную поддержку для этого, которую вы можете активировать с помощью переключателя -jN , где N - количество заданий, которые будут выполняться параллельно. Хорошее эмпирическое правило - запустить в 2 раза больше ядер на вашем процессоре. Таким образом, на обычном двухъядерном компьютере вы должны запустить make -j4 , чтобы свести к минимуму время компиляции.

3. Building Unity

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

bzr branch lp:unity
cd unity
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DGSETTINGS_LOCALINSTALL=ON -DCMAKE_INSTALL_PREFIX="$PREFIX"
make -j4
make install

Вот и все, выйдите из системы и снова включитесь, и вы должны запустить последнее Unity. В качестве альтернативы вы можете запустить

setsid $PREFIX/bin/unity

4. Обновление

Обязательно подготовьте среду, как описано в шаге 1, затем просто введите оба каталога верхнего уровня nux и unity , запустите bzr pull , перестройте и переустановите.

Я предлагаю удалить и воссоздать каталог build в каталоге unity , чтобы убедиться, что старые файлы не возились с вашей сборкой.

5. Удаление единства

Удалите три каталога $SOURCE , $PREFIX и ~/.compiz-1 .

Полезная ссылка:

  • Ссылка
ответ дан htorque 12.01.2013 в 11:09
источник
9

Я создал сценарий на основе сценария сборки Wayland и эти инструкции для автоматизации установки необходимых компонентов, клонирования, обновления, настройки и создания Unity.

Ссылка

    
ответ дан Cam 27.03.2011 в 08:11
7

Создание в вашем домашнем каталоге

Иногда для тестирования полезно создавать Unity и nux в вашем домашнем каталоге, чтобы вы могли проверить, не исправлено ли что-то в багажнике, не сбрасывая пакеты и / или PPA. Я спросил Джейсона Смита (Unity Dev), как он строит Unity, и он объяснил мне его метод:

  1. Убедитесь, что у вас есть все создания зависимостей из этого ответа.

  2. Сначала создайте каталог в своем доме под названием "staging", вот где мы построим Unity. Создайте небольшой скрипт, который подготовит среду сборки, замените домашний каталог на свой собственный:

    #!/bin/bash
    
    PREFIX=/home/jorge/staging
    
    export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS"
    export LD_LIBRARY_PATH="$PREFIX/lib/"
    export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig/"
    

    Я вызываю этот unity.sh , и я запускаю его каждый раз, когда хочу создать Unity. Итак, в основном chmod +x unity.sh , а затем ./unity.sh , когда вы хотите построить.

  3. Построение nux:

    bzr branch lp:nux
    cd nux
    ./autogen.sh --prefix=/home/jorge/staging
    make -j4
    make install
    cd ..
    
  4. Построение единства:

    bzr branch lp:unity
    cd unity
    mkdir build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=/home/jorge/staging/ -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DGSETTINGS_LOCALINSTALL=ON
    make -j4
    make install
    

ПРИМЕЧАНИЕ. . Это создает nux и единство в вашем домашнем каталоге, здесь нет необходимости в sudo или что-то в этом роде.

  • Выход из системы и обратно запустит эту версию Unity / nux автоматически, так как она была построена в ~/.compiz
  • Чтобы вернуться к обычным пакетам, просто выйдите из системы, удалите ~/.compiz и войдите в систему.
ответ дан Jorge Castro 20.08.2011 в 03:28
6

Исходный код среды по умолчанию (Unity) можно найти в пакете unity . Установите источник с apt-get source unity , зависимостями, чтобы построить его с sudo apt-get build-dep unity и взломать.

Это позволит вам расположить пусковую установку справа, внизу, сверху и т. д.

    
ответ дан izx 29.06.2012 в 03:53
4

Здесь есть отличная официальная документация - Разработка единства .

Вот выдержка из него по созданию Unity - установка из источника и компиляция

  

Building Unity

     

Эти инструкции помогут вам построить единство из источника. Однако,   есть несколько вещей, которые следует учитывать:

     
  • Рекомендуется, чтобы вы никогда не копировали ничего, что вы создали локально вне вашего домашнего каталога. Это требует неприятностей,   тем более, что мы создаем всю оболочку рабочего стола. Если вы справляетесь   для того, чтобы разрушить системную оболочку рабочего стола, вы будете очень грустны   программист!
  •   
  • Предполагается, что вы используете точный выпуск Ubuntu.
  •   
  • Предполагается также, что вы хотите построить единство из туловища (то есть lp: единство).
  •   

Получение исходного кода:

     

Если у вас еще нет Bazaar, установите его сейчас:

sudo apt-get install bzr
     

Вы хотите сделать себе папку для кода единства. Делать   что-то вроде этого:

mkdir -p ~/code/unity
cd ~/code/unity
     

Давайте возьмем код с панели запуска:

bzr branch lp:unity trunk
     

Это может занять некоторое время.
Установка зависимостей сборки:

     

Нам нужно получить зависимости от сборки для единицы. К счастью, apt-get   делает это тривиальным:

sudo apt-get build-dep unity
     

Компиляция единства:

     

Используйте этот набор функций bash, чтобы сделать этот шаг значительно проще.   Чтобы использовать их, скопируйте следующий код bash в файл в вашем доме   каталог с именем .bash_functions :

function recreate-build-dir()
{
   rm -r build
   mkdir build
   cd build
}

function remake-autogen-project()
{
    ./autogen.sh --prefix=$HOME/staging --enable-debug
    make clean && make && make install
}

function remake-unity()
{
    recreate-build-dir
    cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DCMAKE_INSTALL_PREFIX=$HOME/staging/ -DGSETTINGS_LOCALINSTALL=ON
    make  && make install
}

function unity-env
{
 export PATH=~/staging/bin:$PATH
 export XDG_DATA_DIRS=~/.config/compiz-1/gsettings/schemas:~/staging/share:/usr/share:/usr/local/share
 export LD_LIBRARY_PATH=~/staging/lib:${LD_LIBRARY_PATH}
 export LD_RUN_PATH=~/staging/lib:${LD_RUN_PATH}
 export PKG_CONFIG_PATH=~/staging/lib/pkgconfig:${PKG_CONFIG_PATH}
 export PYTHONPATH=~/staging/lib/python2.7/site-packages:$PYTHONPATH
}
     

Теперь запустите это в терминале:

echo ". ~/.bash_functions" >> ~/.bashrc
     

Это гарантирует, что при следующем открытии оболочки bash функции   перечисленные выше, будут доступны вам. Во избежание закрытия и   повторно открыть терминал, мы можем прочитать их вручную только один раз:

. ~/.bash_functions
     

Теперь вы можете запустить:

remake-unity
     

из каталога trunk/ , который мы создали ранее. Вот и все - ты   единство строительства!

    
ответ дан Nitin Venkatesh 07.01.2013 в 16:00
2

В последнее время установка стала более сложной: добавлен новый модуль для компиляции с именем GTK Load (или он будет сбой в XInternAtom). Нам нужно активировать этот модуль, чтобы использовать 4.0.1, но активизация его приведет к сбою единства 3.8.

Трудно сохранить их обоих. Так я сделал это:

  • зайдите в папку compiz-1 и переименуйте все .so по .so1, за исключением libgtkloader.so
  • перезапустить compiz с единицей 4.0.1
  • активировать модуль загрузки gtk в compizconfig-settings-manager
  • переименуйте библиотеки обратно в .so
  • перезапустить compiz.
ответ дан Yann 05.07.2011 в 15:58