소스에서 Unity를 어떻게 빌드합니까?


64

현재 개발 릴리스의 소스 코드에서 Unity를 빌드하는 방법을 알고 싶습니다. 다음 주제를 다루십시오.

  • Unity를 컴파일하려면 어떤 패키지가 필요합니까?
  • 현재 소스 코드는 어디서 구할 수 있습니까?
  • 실제로 Unity를 구성하고 컴파일하는 단계는 무엇입니까?
  • 리포지토리의 버전과 함께 최신 버전을 안전하게 실행할 수 있습니까?

답변:


65

소스에서 유니티 구축

이 가이드에서는 별도의 버전의 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. 환경 준비

교체 SOURCEPREFIX디렉토리 당신은 소스를 좋아하고 가서 파일을 만들 것입니다. 이 예에서는 홈 디렉토리에 둘 다 넣었습니다.

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 코드를 잡고 빌드하십시오.

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. 유니티 제거

세 개의 디렉토리를 제거 $SOURCE, $PREFIX하고 ~/.compiz-1.


유용한 링크 :


Ubuntu 12.04와 같이 현재 사용중인 버전을 복제하는 것이 매우 중요하다고 생각합니다 .Nux 최신 버전을 복제하려고 시도했지만 Nux를 사용했기 때문에 지저분 해졌 sharedptr지만 12.04의 gcc가 그렇지 않은 것 같습니다. 지원하거나 make 파일에 플래그를 추가해야합니다. 따라서 내 시스템에 맞는 정확한 버전을 복제하는 것이 매우 중요합니다.
Muhammad Hewedy

파트 0 중 하나도 14.04에서 작업하지 않습니다 ...
Goddard

xserver-xorg-video-dummy : 의존 : xorg-video-abi-15 의존 : xserver-xorg-core (> = 2 : 1.14.99.902)
Goddard


7

홈 디렉토리에 구축

때로는 테스트를 위해 홈 디렉토리에 Unity 및 nux를 빌드하는 것이 유용하므로 패키지 및 / 또는 PPA와 충돌하지 않고 트렁크에 무언가가 고정되어 있는지 확인할 수 있습니다. 제이슨 스미스 (유니티 데브)에게 어떻게 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.shUnity를 빌드하려고 할 때마다 실행합니다. 기본적으로 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와 unity를 빌드하므로 sudo 또는 그와 같은 것을 필요로하지 않습니다.

  • 로그 아웃했다가 다시 로그인하면이 버전의 Unity / nux가 내장 된 이후 자동으로 실행됩니다. ~/.compiz
  • 일반 패키지로 되돌리려면 로그 아웃하고 삭제 한 ~/.compiz후 다시 로그인하십시오.

6

기본 환경 (Unity)의 소스 코드는 package에서 찾을 수 있습니다 unity. 소스를 설치하고 apt-get source unity의존성으로 빌드 sudo apt-get build-dep unity하고 해킹하십시오.

런처를 오른쪽, 아래쪽, 상단 등에 배치 할 수 있습니다.


위치를 정확히 변경하는 방법을 확장 할 수 있습니까? 수정할 파일이나 구성을 아는 것만으로도 좋습니다.
PitaJ

4

여기에는 훌륭한 공식 문서가 있습니다 -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/앞서 만든 디렉토리 에서 그게 다야-당신은 화합을 구축하고 있습니다!


2

최근에 설치가 더 까다로워졌습니다. GTK Load라는 이름의 compiz에 새 모듈이 추가되었습니다 (또는 XInternAtom에서 충돌합니다). 4.0.1을 사용하려면이 모듈을 활성화해야하지만 활성화하면 3.8이 충돌합니다.

둘 다 유지하기가 점점 어려워지고 있습니다. 내가 한 방식은 다음과 같습니다.

  • compiz-1 폴더로 가서 libgtkloader.so를 제외한 모든 .so의 이름을 .so1로 바꿉니다.
  • unity 4.0.1로 compiz를 다시 시작하십시오
  • compizconfig-settings-manager에서 gtk로드 모듈 활성화
  • 라이브러리 이름을 다시 .so로 바꿉니다.
  • compiz를 다시 시작하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.