답변:
이 가이드에서는 별도의 버전의 Unity 트렁크 (홈 디렉토리에 로컬로 설치됨)를 구축하므로 Ubuntu 리포지토리에서 버전이 손상 될 염려가 없어야합니다. 또한 루트 전체에서 루트 권한을 얻을 필요가 없습니다. 전체 프로세스 (빌드 종속성 설치 제외).
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
)가 활성화 된 경우 대신 다음을 사용할 수 있습니다.
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 코드를 잡고 빌드하십시오.
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
.
유용한 링크 :
Wayland 빌드 스크립트와이 지시 사항을 기반으로 스크립트를 작성하여 전제 조건 설치, 복제, 업데이트, Unity 구성 및 빌드를 자동화했습니다.
https://github.com/bitshifter/Unity-Build/raw/master/build-unity.sh
때로는 테스트를 위해 홈 디렉토리에 Unity 및 nux를 빌드하는 것이 유용하므로 패키지 및 / 또는 PPA와 충돌하지 않고 트렁크에 무언가가 고정되어 있는지 확인할 수 있습니다. 제이슨 스미스 (유니티 데브)에게 어떻게 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 ..
유니티 구축 :
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
후 다시 로그인하십시오.여기에는 훌륭한 공식 문서가 있습니다 -Developing 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
유니티 컴파일 :
이 단계를 훨씬 쉽게하려면이 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을 사용하려면이 모듈을 활성화해야하지만 활성화하면 3.8이 충돌합니다.
둘 다 유지하기가 점점 어려워지고 있습니다. 내가 한 방식은 다음과 같습니다.
sharedptr
지만 12.04의 gcc가 그렇지 않은 것 같습니다. 지원하거나 make 파일에 플래그를 추가해야합니다. 따라서 내 시스템에 맞는 정확한 버전을 복제하는 것이 매우 중요합니다.