2018-11-21 14:43:43 +00:00
# Setting Up Development Dependencies on Linux
2018-11-22 15:28:55 +00:00
You will need to install these tools on your machine:
2018-11-21 14:43:43 +00:00
2019-04-18 14:28:21 +00:00
- Node.js
2018-11-22 15:37:46 +00:00
- Yarn
2021-05-13 02:01:43 +00:00
- Python 3
2018-11-22 15:28:55 +00:00
- Electron dependencies
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
## Node.js
2018-11-21 14:43:43 +00:00
2019-04-18 14:28:21 +00:00
The NodeJS project has instructions for installing across a variety of
2018-11-22 15:28:55 +00:00
distributions and package managers.
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
Find your distribution on [this list ](https://nodejs.org/en/download/package-manager/ )
and follow the instructions to install the version you require.
2018-11-21 14:43:43 +00:00
2018-11-23 13:38:12 +00:00
Ensure that you also choose the option for building native Node modules, as
those are used in some dependencies used in GitHub Desktop.
2018-11-22 15:37:46 +00:00
## Yarn
Follow [this guide ](https://yarnpkg.com/en/docs/install ) to install
a system-level `yarn` for your distribution. GitHub Desktop uses a local version
of `yarn` , but it needs a version on your `PATH` to bootstrap itself.
This is important because `yarn` uses lock files to pin dependencies. If you
find yourself changing packages, this will prevent mismatches in versions
between machines.
If you're not familiar with `yarn` , please read [this document ](./working-with-packages.md )
to help familiarize yourself with how to do the common package tasks that are
relevant to Desktop.
2021-05-13 02:01:43 +00:00
## Python 3
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
Refer to your distributions package manager to obtain the latest version of the
2021-05-13 02:01:43 +00:00
Python 3 series.
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
## Electron dependencies
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
There are some additional dependencies which are required as part of building
and running GitHub Desktop locally:
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
- `libsecret-1.so.0` for reading and writing credentials using [`keytar` ](https://github.com/atom/node-keytar )
- `libXss.so.1` - the library for the X11 screen saver extension
2018-11-23 13:38:12 +00:00
- `libgconf-2-4.so.4` - library for accessing GNOME configuration database
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
Where to find these will vary based on your distribution, but below are some
examples of distributions we've tested.
2018-11-21 14:43:43 +00:00
2018-11-22 15:28:55 +00:00
### Fedora 26 and later
2018-11-21 14:43:43 +00:00
```shellsession
2018-11-22 15:28:55 +00:00
$ sudo dnf install -y libsecret-devel libXScrnSaver
2018-11-21 14:43:43 +00:00
```
2018-11-22 15:28:55 +00:00
### Ubuntu 14.04 and later
2018-11-21 14:43:43 +00:00
```shellsession
2018-11-23 13:38:12 +00:00
$ sudo apt install libsecret-1-dev libgconf-2-4
2018-11-21 14:43:43 +00:00
```
2019-04-18 14:28:21 +00:00
## Back to setup
2019-04-18 15:15:04 +00:00
Once you've installed the necessary dependencies, head back to the [setup page ](https://github.com/desktop/desktop/blob/development/docs/contributing/setup.md ) to finish getting set up.