Come posso creare Unity dall'origine?

64

Mi piacerebbe sapere come vorrei creare Unity dal codice sorgente nella versione di sviluppo corrente. Si prega di coprire i seguenti argomenti:

  • Quali pacchetti sono necessari per compilare Unity?
  • Dove dovrei ottenere il codice sorgente corrente?
  • Quali sono i passaggi per configurare e compilare effettivamente Unity?
  • È possibile eseguire tranquillamente l'ultima versione insieme alla versione dai repository?
posta htorque 28.02.2011 - 20:50

6 risposte

65

Edificio Unitario dall'origine

In questa guida costruirai una versione separata di Unity trunk (installata localmente nella tua home directory), quindi non dovrai preoccuparti di corrompere la versione dai repository di Ubuntu e non avrai bisogno di root permessi durante l'intero processo (eccetto per l'installazione delle dipendenze di compilazione).

0. Installazione delle dipendenze di build

Dovrai eseguirlo una volta per installare tutte le dipendenze di build necessarie:

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

Se hai repository di codice sorgente (aka deb-src ) abilitato, puoi usare invece:

sudo apt-get build-dep unity

1. Preparazione dell'ambiente

Sostituisci SOURCE e PREFIX con le directory che desideri siano i file di origine e di generazione. In questo esempio ho inserito entrambi nella mia home directory:

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. Costruire Nux

Probabilmente dovrai prendere l'ultima versione di Nux per ottenere la compilazione del tronco Unity:

bzr branch lp:nux
cd nux
./autogen.sh --disable-examples --disable-gputests --disable-tests --prefix="$PREFIX"
make -j4
make install
cd ..

Suggerimento : la maggior parte dei desktop e laptop moderni ha più core. Puoi velocizzare enormemente la raccolta sfruttando questo. Il comando make ha un supporto incorporato per questo che puoi attivare usando l'opzione -jN dove N è il numero di lavori da eseguire in parallelo. Una buona regola è eseguire 2 volte il numero di core sul processore. Quindi, su un normale computer dual core, dovresti eseguire make -j4 per minimizzare il tempo di compilazione.

3. Building Unity

Ora acquisisci l'ultimo codice Unity e costruisci:

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

Ecco fatto, scollegati e torna di nuovo e dovresti eseguire l'ultima Unity. In alternativa , puoi eseguire

setsid $PREFIX/bin/unity

4. Aggiornamento

Assicurati di preparare l'ambiente come descritto nel passaggio 1, quindi inserisci semplicemente entrambe le directory di primo livello nux e unity , esegui bzr pull , ricostruisci e reinstalla.

Ti suggerisco di rimuovere e ricreare la directory build nella directory unity , per assicurarti che nessun vecchio file abbia problemi con la tua build.

5. Rimozione di Unity

Rimuovi le tre directory $SOURCE , $PREFIX e ~/.compiz-1 .

Link utile:

  • link
risposta data htorque 12.01.2013 - 11:09
9

Ho creato uno script basato sullo script di build Wayland e queste istruzioni per automatizzare l'installazione dei prerequisiti, la clonazione, l'aggiornamento, la configurazione e la creazione di Unity.

link

    
risposta data Cam 27.03.2011 - 08:11
7

Creazione nella directory home

A volte per motivi di test è utile creare Unity e nux nella tua home directory in modo che tu possa provare a vedere se qualcosa è stato risolto nel bagagliaio senza aggiungere pacchetti e / o PPA. Ho chiesto a Jason Smith (Unity Dev) come costruisce Unity e mi ha spiegato il suo metodo:

  1. Assicurati di avere tutte le compilazione delle dipendenze da questa risposta.

  2. Prima crea una directory nella tua casa chiamata "staging", dove costruiremo Unity. Crea un piccolo script che preparerà l'ambiente di costruzione, sostituisci la directory home con la tua:

    #!/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/"
    

    Lo chiamo unity.sh e lo eseguo ogni volta che voglio creare Unity. Quindi fondamentalmente chmod +x unity.sh e poi ./unity.sh quando vuoi costruire.

  3. Costruisci nux:

    bzr branch lp:nux
    cd nux
    ./autogen.sh --prefix=/home/jorge/staging
    make -j4
    make install
    cd ..
    
  4. Build 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
    

NOTA: Questo crea nux e unity nella tua home directory, non c'è bisogno di sudo qui o qualcosa del genere.

  • La disconnessione e l'accesso eseguiranno automaticamente questa versione di Unity / nux da quando è stata creata in ~/.compiz
  • Per ripristinare i pacchetti normali basta effettuare il logout, eliminare ~/.compiz e riconnettersi.
risposta data Jorge Castro 20.08.2011 - 03:28
6

Il codice sorgente per l'ambiente predefinito (Unity) può essere trovato nel pacchetto unity . Installa il sorgente con apt-get source unity , le dipendenze per costruirlo con sudo apt-get build-dep unity e rimuovi.

Questo ti permetterà di posizionare il launcher a destra, in basso, in alto, ecc.

    
risposta data ish 29.06.2012 - 03:53
4

C'è un'eccellente documentazione ufficiale qui - Sviluppo dell'Unità .

Ecco un estratto da questo sulla costruzione di Unity: installazione da sorgente e compilazione

  

Edificio Unity

     

Queste istruzioni ti aiuteranno a costruire unità dalla fonte. Però,   ci sono alcune cose da considerare:

     
  • Si consiglia di non copiare mai qualcosa che hai creato localmente al di fuori della tua home directory. Fare così è chiedere guai,   soprattutto perché stiamo costruendo l'intera shell del desktop. Se tu gestisci   rovinare il tuo desktop shell di sistema sarai molto triste   programmatore!
  •   
  • Si presume che tu stia utilizzando l'esatta versione di Ubuntu.
  •   
  • Si presume anche che tu voglia costruire unità dal tronco (cioè lp: unity).
  •   

Ottenere il codice sorgente:

     

Se non hai già installato Bazaar, installalo ora:

sudo apt-get install bzr
     

Dovrai creare una cartella per il codice di unità. Fare   qualcosa di simile:

mkdir -p ~/code/unity
cd ~/code/unity
     

Prendiamo il codice dal launchpad:

bzr branch lp:unity trunk
     

Questo potrebbe richiedere del tempo.
Installazione delle dipendenze di creazione:

     

Abbiamo bisogno di ottenere le dipendenze di costruzione per l'unità. Per fortuna, apt-get   rende questo banale:

sudo apt-get build-dep unity
     

Compilazione di unità:

     

Usa questo set di funzioni bash per rendere questo passo molto più semplice.   Per usarli, copia il seguente codice bash in un file nella tua casa   directory chiamata .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
}
     

Ora esegui questo in un terminale:

echo ". ~/.bash_functions" >> ~/.bashrc
     

Questo assicura che la prossima volta che apri una shell bash le funzioni   sopra elencati saranno disponibili per te. Per evitare di dover chiudere e   riaprire un terminale, possiamo leggerli manualmente solo una volta:

. ~/.bash_functions
     

Ora dovresti essere in grado di eseguire:

remake-unity
     

dalla directory trunk/ creata in precedenza. Questo è tutto - tu sei   costruzione dell'unità!

    
risposta data Nitin Venkatesh 07.01.2013 - 16:00
2

L'installazione è diventata più complicata di recente: un nuovo modulo è stato aggiunto a Compiz chiamato GTK Load (o si bloccherà in XInternAtom). Abbiamo bisogno di attivare questo modulo per utilizzare 4.0.1, ma attivandolo si romperà unità 3.8.

È difficile mantenere entrambi. Il modo in cui l'ho fatto è stato:

  • vai nella cartella compiz-1 e rinomina tutto .so per .so1, ad eccezione di libgtkloader.so
  • riavvia compiz con unità 4.0.1
  • attiva il modulo gtk Load in compizconfig-settings-manager
  • rinomina nuovamente le librerie in .so
  • restart compiz.
risposta data Yann 05.07.2011 - 15:58

Leggi altre domande sui tag