回答:
このガイドでは、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の構築
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. 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. Unityの削除
3つのディレクトリを削除し$SOURCE
、$PREFIX
そして~/.compiz-1
。
便利なリンク:
Waylandビルドスクリプトとこれらの手順に基づいて、前提条件のインストール、Unityの複製、更新、構成、ビルドを自動化するスクリプトを作成しました。
https://github.com/bitshifter/Unity-Build/raw/master/build-unity.sh
テストの理由から、ホームディレクトリにUnityとnuxをビルドすると、パッケージやPPAをいじることなく、トランクで何かが修正されているかどうかを確認できることがあります。Jason Smith(Unity Dev)にUnityのビルド方法を尋ね、彼の方法を説明してくれました。
この回答からすべてのビルドの依存関係があることを確認してください。
まず、ホームに「ステージング」というディレクトリを作成します。これが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
あなたが構築したいとき。
ビルドnux:
bzr branch lp:nux
cd nux
./autogen.sh --prefix=/home/jorge/staging
make -j4
make install
cd ..
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などを実行する必要はありません。
~/.compiz
~/.compiz
、再度ログインします。ここには優れた公式ドキュメントがあります-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/
前に作成したディレクトリから。それだけです-あなたは団結を築いています!
最近、インストールが複雑になりました:GTK Loadという名前の新しいモジュールがcompizに追加されました(またはXInternAtomでクラッシュします)。4.0.1を使用するにはこのモジュールをアクティブにする必要がありますが、アクティブにするとUnity 3.8がクラッシュします。
両方を維持するのは難しくなっています。私がやった方法は:
sharedptr
が、12.04にgccがないようですサポートするか、メイクファイルに追加するフラグが必要です。したがって、私のシステムに適した正確なバージョンを複製することは非常に重要です。