ソースからUnityをビルドするにはどうすればよいですか?


64

現在の開発リリースでソースコードからUnityをビルドする方法を知りたいです。次のトピックをカバーしてください:

  • Unityをコンパイルするにはどのパッケージが必要ですか?
  • 現在のソースコードはどこで入手できますか?
  • Unityを実際に構成およびコンパイルする手順は何ですか?
  • リポジトリのバージョンと一緒に最新バージョンを安全に実行することは可能ですか?

回答:


65

ソースからUnityを構築する

このガイドでは、Unityトランクの別個のバージョン(ホームディレクトリにローカルにインストールされる)を構築します。そのため、Ubuntuリポジトリからバージョンが破損することを心配する必要はなく、また、root権限を取得する必要もありません。プロセス全体(ビルド依存関係のインストールを除く)。

0.ビルド依存関係のインストール

必要なすべてのビルド依存関係をインストールするには、これを1回実行する必要があります。

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

ソースコードリポジトリ(別名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の構築

NuxUnityトランクをコンパイルするには、おそらく最新バージョンを入手する必要があります。

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. 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で説明したように環境を準備してから、トップレベルディレクトリnuxunity、実行bzr pull、再構築、再インストールの両方を入力するだけです。

古いファイルがビルドに干渉しないように、buildディレクトリ内のunityディレクトリを削除して再作成することをお勧めします。

5. Unityの削除

3つのディレクトリを削除し$SOURCE$PREFIXそして~/.compiz-1


便利なリンク:


私はUbuntuの12.04で、たとえば、私は木の実最新バージョンのクローンを作成しようとした、と木の実を使用するので、それは、厄介行って、私たちが現在使用してバージョンをクローニングし、非常に重要なことがあると思うsharedptrが、12.04にgccがないようですサポートするか、メイクファイルに追加するフラグが必要です。したがって、私のシステムに適した正確なバージョンを複製することは非常に重要です。
ムハンマドヒューディ

パート0のどちらも14.04に取り組んでいない...-
ゴダード

xserver-xorg-video-dummy:依存:xorg-video-abi-15依存:xser​​ver-xorg-core(> = 2:1.14.99.902)
ゴダード


7

ホームディレクトリに構築する

テストの理由から、ホームディレクトリにUnityとnuxをビルドすると、パッケージやPPAをいじることなく、トランクで何かが修正されているかどうかを確認できることがあります。Jason Smith(Unity Dev)にUnityのビルド方法を尋ね、彼の方法を説明してくれました。

  1. この回答からすべてのビルドの依存関係があることを確認してください。

  2. まず、ホームに「ステージング」というディレクトリを作成します。これが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. Unityのビルド:

    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、再度ログインします。

6

デフォルト環境(Unity)のソースコードは、パッケージにありますunity。を使用してソースをインストールしapt-get source unity、依存関係を作成してsudo apt-get build-dep unity、ハックします。

これにより、ランチャーを右、下、上などに配置できます。


位置を正確に変更する方法を詳しく教えてください。修正するファイルまたは構成を知っているだけで素晴らしいでしょう。
PitaJ

4

ここには優れた公式ドキュメントがあります-Unityの開発

Unityのビルドに関する抜粋を以下に示します-ソースからインストールしてコンパイルする

団結の構築

これらの手順は、ソースから統一を構築するのに役立ちます。ただし、考慮すべきことがいくつかあります。

  • ローカルに構築したものは、ホームディレクトリの外部に決してコピーしないことをお勧めします。特にデスクトップシェル全体を構築しているので、そうすることは問題を求めています。システム全体のデスクトップシェルを台無しにした場合、非常に悲しいプログラマーになります。
  • 正確なUbuntuリリースを実行していることを前提としています。
  • また、トランク(つまり、lp:unity)から単一性を構築することも想定されています。

ソースコードの取得:

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

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/前に作成したディレクトリから。それだけです-あなたは団結を築いています!


2

最近、インストールが複雑になりました:GTK Loadという名前の新しいモジュールがcompizに追加されました(またはXInternAtomでクラッシュします)。4.0.1を使用するにはこのモジュールをアクティブにする必要がありますが、アクティブにするとUnity 3.8がクラッシュします。

両方を維持するのは難しくなっています。私がやった方法は:

  • compiz-1フォルダーに移動し、libgtkloader.soを除くすべての.soの名前を.so1に変更します。
  • Unity 4.0.1でcompizを再起動します
  • compizconfig-settings-managerでgtk Loadモジュールをアクティブにします
  • ライブラリの名前を.soに戻します
  • compizを再起動します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.