I followed the instructions for compiling GNOME Shell and it did compile with a few errors here and there but it didn't run. I installed GNOME Shell using sudo apt-get install gnome-shell but I got version 2.31.x, while the latest is 2.91.5 or something. So is there a way for me to install the latest build?

Is there some repository available for the latest build?


12 Answers 12


Installing from the Software Center (11.10 and newer)

Open the software center search for "gnome shell" and install it, or just click this button:

Install via the software center

enter image description here

After it installs, log out.

  • For 11.10

    at the login screen click the little gear icon and select "GNOME" from the menu.

    Screenshot credited to datengrund.de/wp-content/uploads/2012/03/1.png

  • For 12.04 and 12.10

    At the login screen click the icon show and select "GNOME" from the menu.

    enter image description here

    Screenshot credited to 3.bp.blogspot.com/-2Z6BaRDokKs/T5pFnOu92sI/AAAAAAAADtg/bD8BAJuEh5M/s320/Gnome-Shell-session-menu.png

After that just put in your password and login:

The login manager will remember the last session you went into so you only need to select GNOME once, after that you can just login normally.

Customizing it further

You can also use the fallback mode if you prefer an old-school experience:

And if you use auto logins you might need to tell lightdm to always use shell:

Other Goodies to install with it

Command Line Instructions:

 sudo apt-get install gnome-shell

Where to report problems:

  • Discussion about GNOME3 packaging (Mailing list link on the bottom left): https://launchpad.net/~gnome3-team
    • Most problems and issues with this set of packages can go on this list, it should be the first place you report problems and issues.
  • Bug reports that are NOT packaging related: https://bugzilla.gnome.org/
    • If GNOME3 isn't working well it could be packaging related, so please don't just randomly report bugs to GNOME unless you are confident that it's an upstream GNOME problem.
    • If you're not sure if you should report the bug upstream then ask someone either on IRC or on the mailing list above if you need help determining if something should be reported to GNOME.
  • does this work the same in 12.10 ? Commented Dec 2, 2012 at 5:08
  • After following this method, the Unity and Unity 2D options were replaced by a single one called Ubuntu (Default) and I can't launch Unity in 2D anymore. What went wrong? Commented Jan 3, 2013 at 13:57
  • @marc-andrebenoit Yes, I updated the answer. Commented Jan 3, 2013 at 13:57
  • For 12.04 and 12.10 Look at his username in the screenshot... Ha Ha Ha... Commented Mar 25, 2014 at 11:06

Building GNOME Shell from source

(Last content update: 11. Feb. 2011, based on the official guide, feel free to edit.)

0. Warnings/errors during compilation

GNOME Shell is under heavy development and sources are often updated a couple of times a day. While below instructions generally should work, it can happen that successful compilation needs some hacks or is not possible at all.

If you encounter any problems, check:

Current problems:

  • It's necessary to remove a couple of files in the library directories, else compilation will fail. When doing system updates, those files could return: read this for an explanation why it's necessary to remove those files and how to prevent upgrades to re-install them.

    sudo rm -rf /usr/lib*/*.la

    (No worries, this won't harm your system!)

  • Before being able to run GNOME Shell, you need to remove a file after the build process:

    rm ~/gnome-shell/install/lib*/gtk-3.0/modules/libcanberra-gtk-module.so

1. Building GNOME Shell

(Tested on Ubuntu 10.10 32-bit and the development version of Ubuntu 11.04 64-bit.)

The following will download, compile, and install GNOME Shell in a sandbox-like way - meaning, it won't touch the rest of your system!

  • Install dependencies:

    sudo apt-get install curl dpkg-dev autopoint libedataserverui1.2-dev \
    libecal1.2-dev evolution-data-server-dev libcups2-dev libupower-glib-dev \
    libgnome-keyring-dev libxklavier-dev libvorbis-dev libltdl-dev \
    libgstreamer0.10-dev libcroco3-dev xserver-xephyr xulrunner-dev \
    python-dev libpam0g-dev mesa-utils mesa-common-dev libxml2-dev \
    libreadline5-dev libpulse-dev liborbit2-dev libgl1-mesa-dev libwnck-dev \
    libtiff4-dev libstartup-notification0-dev libpng12-dev libjpeg62-dev \
    libjasper-dev libgtop2-dev libgnome-desktop-dev libgnome-menu-dev \
    libffi-dev libexpat1-dev libdbus-glib-1-dev icon-naming-utils \
    gtk-doc-tools gnome-common git-core gettext flex bison automake cvs
  • Get GNOME Shell's setup script:

    curl -O https://git.gnome.org/browse/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh
  • Build the build tool jhbuild and download configuration files:

    /bin/bash gnome-shell-build-setup.sh
  • This will install jhbuild to ~/bin, which you need to add to your PATH-variable:

    . ~/.profile
  • [Optional]: You can change several jhbuild options like the path for downloading sources, etc. via editing the file ~/.jhbuildrc-custom.

  • Start the build process:

    jhbuild build

This will (currently) compile 33 modules. Get a cup of coffee, take a nap -> it will take some time.

Once you see *** success *** [33/33] you are done. Congratulations, you've just compiled GNOME Shell!

2. Running GNOME Shell

  • If you're running Compiz, you first need to stop it (by starting Metacity) or else GNOME Shell won't start:

    metacity --replace &
  • Finally, run:

    cd ~/gnome-shell/source/gnome-shell/src
    ./gnome-shell --replace

That's it, you hopefully should now be running GNOME Shell.

3. Making GNOME Shell the default window manager

In Ubuntu 10.10, you can simply replace the GNOME session's window manager via changing a GConf key:

  • Create a local .desktop launcher for GNOME Shell:

    ln -s ~/gnome-shell/install/share/applications/gnome-shell.desktop ~/.local/share/applications/gnome-shell.desktop
  • Then change the session's window manager to be GNOME Shell:

    gconftool-2 -s /desktop/gnome/session/required_components/windowmanager "gnome-shell" -t string
  • To revert the change, run:

    gconftool-2 -s /desktop/gnome/session/required_components/windowmanager "gnome-wm" -t string

In Ubuntu 11.04, changing the windowmanager key doesn't seem to work. Instead you can add a new session item that you can select at the GDM login screen. Therefor you need to create the local .desktop file like above and then create two files:

  1. A session file: /usr/share/gnome-sessions/sessions/gnome-shell.session:

    [GNOME Session]
  2. The session item pointing to the session file: /usr/share/xsessions/gnome-shell.desktop:

    [Desktop Entry]
    Name=GNOME Shell
    Comment=This session logs you into Ubuntu
    Exec=gnome-session --session=gnome-shell

Log out, and you should be able to choose GNOME Shell as session.

4. Updating GNOME Shell

  • Running

    jhbuild build

    should update the sources and rebuild what's necessary.

  • If it fails for a module, e.g. you get something like this:

    fatal: git-write-tree: error building trees
    Cannot save the current index state
    *** Error during phase checkout of gdk-pixbuf: ########## Error running git stash save jhbuild-stash *** [7/33]

    then you can try to wipe the current module directory and start with clean sources by choosing option 6:

    [6] Go to phase "wipe directory and start over"
  • If that doesn't help, you can start from scratch by running:

    jhbuild build -afc

Still not compiling? Then check the places mentioned in 0.

  • building on ubuntu 10.10 I had to install libmutter-dev to get the file Meta-2.91.gir
    – user13686
    Commented Apr 6, 2011 at 0:37
  • In natty, you need to have lcms2 installed using a ppa : The Darktable PPA, required for lcms2 dependency: sudo add-apt-repository ppa:pmjdebruijn/darktable-release sudo apt-get update && sudo apt-get install lcms2*
    – Ubuntuser
    Commented May 23, 2011 at 8:45

For 12.04 and later

If you have the latest stable release you can upgrade the packages to the next gnome version minus a few that will be kept at the previous version for stability reasons. You can add two gnome testing ppas that contain the additional packages that dont make it into the latest stable however there is a chance these will break your system.

It is highly unlikely that it will be considered "stable" for at least a month, probably more.

sudo add-apt-repository ppa:gnome3-team/gnome3
sudo add-apt-repository ppa:ricotz/testing 

Then update your system.

Warning: If you try this immediately on a new release of Gnome-Shell, it will break a lot of stuff. Really, it will.

You can still use these ppas but you should expect lots of breakages. At your own risk, add those ppas, then:

sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install gnome-shell
  • So these ppas provide the latest Gnome shell one can possibly get via ppas? sudo add-apt-repository ppa:gnome3-team/gnome3 sudo add-apt-repository ppa:ricotz/testing
    – Bucic
    Commented Dec 16, 2012 at 15:10

As far as I know, there isn't a daily build PPA of Gnome Shell. That said, building it from source isn't hard at all.

You should follow the guide here.

Add the Vala PPA:

sudo add-apt-repository ppa:vala-team/ppa && sudo apt-get update

Get some prerequisite packages:

sudo apt-get install build-essential curl autopoint automake bison flex gettext git-core gnome-common gtk-doc-tools gvfs gvfs-backends icon-naming-utils libdbus-glib-1-dev libexpat-dev libffi-dev libgnome-menu-dev libgnome-desktop-dev libgtop2-dev libjasper-dev libjpeg-dev libpng-dev libstartup-notification0-dev libtiff-dev libwnck-dev libgl1-mesa-dev liborbit2-dev libpulse-dev libreadline5-dev libxml2-dev mesa-common-dev mesa-utils libpam-dev python-dev python-gconf python-gobject xulrunner-dev xserver-xephyr gnome-terminal libcroco3-dev libgstreamer0.10-dev gstreamer0.10-plugins-base gstreamer0.10-plugins-good libltdl-dev libvorbis-dev libxklavier-dev libgnome-keyring-dev libupower-glib-dev libcups2-dev evolution-data-server-dev libecal1.2-dev libedataserverui1.2-dev

Get the install script:

curl -O http://git.gnome.org/browse/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh
/bin/bash gnome-shell-build-setup.sh

Delete your .la files. If your kernel is 32bit:

sudo rm -rf /usr/lib*/*.la

OR if it's 64bit:

rm ~/gnome-shell/install/lib64/*.la

Add ~/.bin to your path:

export PATH=$PATH:~/bin

Start the build:

jhbuild build


Run it:

cd ~/gnome-shell/source/gnome-shell/src
./gnome-shell --replace

If you like it a lot and want it to start at login do this:

ln -s ~/gnome-shell/install/share/applications/gnome-shell.desktop ~/.local/share/applications/gnome-shell.desktop
gconftool-2 -s /desktop/gnome/session/required_components/windowmanager "gnome-shell" -t string

Should you encounter any problems, consult the guide. You can find a slightly more detailed guide at webupd8.

Good luck and have fun!

  • You are right. I'm going to edit my post a bit later.
    – mhmhmhmh
    Commented Feb 4, 2011 at 19:29
  • Ok, I've edited my answer. The install script adds jhbuild. I've also added a line that installs all the prerequisite packages.
    – mhmhmhmh
    Commented Feb 5, 2011 at 16:53
  • As of now, this doesn't seem to work for me. Did you test your answer? Commented Feb 5, 2011 at 22:20
  • Of course. At this moment it doesn't work because jhbuild needs libxklavier 5.1 as of today. Ubuntu comes with 5.0. There is no release for 5.1 ATM. Solutions are either to build from source or to change libxklavier.pc to show that it's actually 5.1. Check this thread from the gnome-shell mailing list for solutions : bit.ly/i2qAoe . Hope this helps.
    – mhmhmhmh
    Commented Feb 5, 2011 at 23:20

Follow Jon's advice. It may happen, however, that after the installation your Gnome won't look like you would expect it.

I've followed Jon's advice myself and one thing he and others have neglected to mention was the fact you may need to remove gnome-accessibility-themes and install gnome-themes-standard, in case these are not the ones installed by default. Otherwise Gnome 3 and its window decorations won't look so pretty.

You may do so graphically or from the terminal:

sudo apt-get remove gnome-accessibility-themes
sudo apt-get install gnome-themes-standard

If your desktop still doesn't look like like you can see it on screenshots on the net you may need to run gnome-tweak-tool (installing it if you haven't done so yet), go to the Interface section and in fields "Gtk+ Theme" and "Cursor theme" choose Adwaita and as the Icon Theme - "gnome". It should result in the default Gnome 3 look.

An extra optional step is to install the gnome-backgrounds package which adds default Gnome desktop wallpapers, which you can later set in System Settings->Background.


Be more especific with your Ubuntu version I suppose you use Maverick and for Maverick don´t know any repository at this time but if you want to try and compile again look at this first:


Luck :)


According to a quick Google search, Gnome-shell should be in the 11.10 repos, so you should be able to install it via apt-get. Then, you just log out, set your shell to Gnome, and log back in.

I can't speak for certain about Gnome-shell on 11.10, but I installed the entire Gnome 3 setup on 11.04 and it was quite stable (as long as you don't do what I did and dig through all the settings and extensions and try playing with them and try to force incompatible extensions to run and whatnot). It's also stable enough that Fedora uses it, and you should be using Gnome 3 as a base already.

Whether it's worth it depends on what you're looking to get out of it. It follows the same paradigm as Unity, but I found it more enjoyable to use, personally, in part for the insane customization ability (if you're willing to get your hands dirty in CSS and/or JavaScript). It also felt more intuitive as far as that paradigm goes. If you're unsure whether you'd like it, you could fire up Fedora 15 in a virtual machine, or just dive into it directly and see. Since 11.10 should be running on a Gnome 3 base, it shouldn't be an issue to switch between Unity and Gnome-shell.

tl;dr - It should be easy to install via apt-get and it should be quite stable for you to do so. It should also be easy to switch between it and Unity, since 11.10 should be on Gnome 3.


simply run sudo apt-get install gnome-shell


GNOME 3.10 for Ubuntu 13.10

GNOME 3.10 has not been officially released yet, but will be released on September 25. However, when it does get released, it will not make it into the official Ubuntu 13.10 repositories. If you still want to install it in Ubuntu 13.10, you can use the GNOME3 Next PPA which the Ubuntu GNOME team has set up:

sudo apt-add-repository ppa:gnome3-team/gnome3-next
sudo apt-get update
sudo apt-get install gnome3-next

For Ubuntu-Gnome-Desktop

sudo add-apt-repository ppa:gnome3-team/gnome3-next && sudo apt-get update
sudo apt-get update && sudo apt-get install gnome-shell ubuntu-gnome-desktop

This will installs Ubuntu gnome desktop in your Ubuntu.

Checked in Ubuntu 13.10


You can install Gnome3 (not gnome classic) like this:

sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell

Now be sure to reboot your computer and when you are prompted with your login screen you have the following additional options (click on the little Ubuntu icon next to your login name):

enter image description here

use the first option, Gnome

enter image description here



Ubuntu 14.04 & 15.10

If you want to test the latest Gnome version (testing) :

sudo apt-add-repository ppa:gnome3-team/gnome3
sudo apt-add-repository ppa:gnome3-team/gnome3-staging

sudo apt-get update

sudo apt-get install gnome-shell 

=== WARNING ===
The packages here have been deemed not ready for general use, they have known bugs and/or regressions, sometimes of a critical nature. Mostly things should run smoothly but be prepared to use ppa-purge, when you encounter issues!

If they break your system, you get to keep both halves.
- Gnome Staging PPA

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .