Home / Reference / Cinnamon Tutorials

Part II. Building Cinnamon

Debian-based systems

Add APT sources repositories

Open /etc/apt/sources.list. For each deb line, add the same line with deb replaced with deb-src. For instance, here’s how it should look like in Linux Mint 22:

deb http://packages.linuxmint.com wilma main upstream import
deb-src http://packages.linuxmint.com wilma main upstream import

deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse

deb http://extras.ubuntu.com/ubuntu noble main
deb-src http://extras.ubuntu.com/ubuntu noble main

Get build dependencies

Then we install the packages needed to compile the Cinnamon stack. Run the following in a terminal (as root):

apt-get update
apt-get install dpkg-dev
sudo apt-get build-dep cinnamon cinnamon-control-center cinnamon-desktop cinnamon-menus cinnamon-screensaver cinnamon-session cinnamon-settings-daemon cinnamon-translations cjs muffin nemo

Now get the latest git code for everything. Run (not as root):

git clone git://github.com/linuxmint/cinnamon.git
git clone git://github.com/linuxmint/cinnamon-control-center.git
git clone git://github.com/linuxmint/cinnamon-desktop.git
git clone git://github.com/linuxmint/cinnamon-menus.git
git clone git://github.com/linuxmint/cinnamon-screensaver.git
git clone git://github.com/linuxmint/cinnamon-session.git
git clone git://github.com/linuxmint/cinnamon-settings-daemon.git
git clone git://github.com/linuxmint/cinnamon-translations.git
git clone git://github.com/linuxmint/cjs.git
git clone git://github.com/linuxmint/muffin.git
git clone git://github.com/linuxmint/nemo.git

Compile and install the stack

Build and install in the following order. Some packages are required to be installed prior to building later packages. See below for how to build and install.

cinnamon-translations
cinnamon-desktop
cinnamon-menus
**INSTALL PRECEDING PACKAGES**
cinnamon-session
cinnamon-settings-daemon
cinnamon-screensaver
cjs
**INSTALL PRECEDING PACKAGES**
cinnamon-control-center
muffin
**INSTALL PRECEDING PACKAGES**
cinnamon
nemo
**INSTALL PRECEDING PACKAGES**

To build a package:

cd *package-name*
dpkg-buildpackage
cd ..

To install a package:

sudo dpkg -i *packages produced*

Optional: Compiling from stable branch

The instructions above compile the Cinnamon stack from their “master” branch, which isn’t always stable. To compile from the stable branch, instead of the usual building procedure, you need to do the following (for all packages):

cd *package-name*
git checkout stable
dpkg-buildpackage
cd ..

Other systems

Get build dependencies

Install the following dependencies using your system’s package manager. For build-time dependencies, you may need the development headers (usually found in packages suffixed -dev or -devel). If a dependency is not available for your system, you can build and install it.

Python has to be installed, along with some Python modules. Install the following modules by using your system’s package manager, from PyPI by using pip, or by building and installing them:

Now get the latest git code for everything. Run (not as root):

git clone git://github.com/linuxmint/cinnamon.git
git clone git://github.com/linuxmint/cinnamon-control-center.git
git clone git://github.com/linuxmint/cinnamon-desktop.git
git clone git://github.com/linuxmint/cinnamon-menus.git
git clone git://github.com/linuxmint/cinnamon-screensaver.git
git clone git://github.com/linuxmint/cinnamon-session.git
git clone git://github.com/linuxmint/cinnamon-settings-daemon.git
git clone git://github.com/linuxmint/cinnamon-translations.git
git clone git://github.com/linuxmint/cjs.git
git clone git://github.com/linuxmint/muffin.git
git clone git://github.com/linuxmint/nemo.git

Compile and install the stack

Build and install in the following order. See below for how to build and install.

cinnamon-translations
cinnamon-desktop
cinnamon-menus
cinnamon-session
cinnamon-settings-daemon
cinnamon-screensaver
cjs
cinnamon-control-center
muffin
cinnamon
nemo

To build and install a package:

cd *package-name*
meson setup builddir
meson compile -C builddir
meson install -C builddir
cd ..

The procedure for building and installing cinnamon-translations is different:

cd cinnamon-translations
make
sudo cp -r usr /
cd ..

Optional: Compiling from stable branch

The instructions above compile the Cinnamon stack from their “master” branch, which isn’t always stable. To compile from the stable branch, instead of the usual building procedure, you need to do the following (for all packages except cinnamon-translations):

cd *package-name*
git checkout stable
meson setup builddir
meson compile -C builddir
meson install -C builddir
cd ..

For cinnamon-translations:

cd cinnamon-translations
git checkout stable
make
sudo cp -r usr /
cd ..