Answers:
在本指南中,您将构建一个单独版本的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
如果您deb-src
启用了源代码存储库(aka ),则可以使用:
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是要并行运行的作业数。一个好的经验法则是运行处理器内核数的两倍。因此,在普通的双核计算机上,您应该运行make -j4
以最小化编译时间。
3.建立团结
现在获取最新的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
取出三个目录$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),并向我解释了他的方法:
确保您具有此答案的所有构建依赖项。
首先在您的家中建立一个名为“ 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
当您要构建时。
构建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和unity,这里不需要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 shell时可以使用上面列出的功能。为了避免必须关闭并重新打开终端,我们可以手动读取一次:
. ~/.bash_functions
您现在应该可以运行:
remake-unity
从
trunk/
我们之前创建的目录中。就是这样–您正在建立团结!
sharedptr
但由于使用了Nux而变得混乱了,但是12.04上的gcc似乎没有支持,或需要将一些标志添加到生成文件中。因此,克隆适合我系统的确切版本非常重要。