Updated Set up Build Environment on Linux (markdown)

Janek Bevendorff
2018-01-19 18:31:11 +01:00
parent aced46d07c
commit 8a15b4e436

@@ -3,19 +3,19 @@
### Install the C++ toolchain
**You can skip this step if you have a working C++ toolchain (g++, cmake and make)**
On Debian/Ubuntu:
On **Debian/Ubuntu**:
```bash
sudo apt install build-essential cmake g++
```
On Fedora/RHEL/CentOS:
On **Fedora/RHEL/CentOS**:
```bash
sudo dnf install make automake gcc-c++ cmake
```
On Arch Linux:
On **Arch Linux**:
```bash
sudo pacman -S cmake make gcc
@@ -27,48 +27,61 @@ sudo pacman -S cmake make gcc-multilib
### Install the required dependencies
On Debian/Ubuntu:
On **Debian/Ubuntu**:
```bash
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools \
libgcrypt20-dev zlib1g-dev
libgcrypt20-dev libargon2-0-dev zlib1g-dev
```
On Fedora/RHEL/CentOS:
**Ubuntu 14.04** and **16.04** require newer versions of libgcrypt20-dev, which can be installed from [our Ubuntu PPA](https://launchpad.net/~phoerious/+archive/ubuntu/keepassxc). To avoid clashes with the upstream `libgcrypt20-dev` package, our package is named `libgcrypt20-18` and installs to `/opt/libgcrypt20-18`. You therefore need to set the following environment variables, so CMake will find the required libraries:
> Note: CentOS may require more up-to-date packages, provided here: https://copr.fedorainfracloud.org/coprs/bugzy/keepassxc/
```bash
export CMAKE_INCLUDE_PATH="/opt/libgcrypt20-18/include:/opt/gpg-error-127/include"
export CMAKE_LIBRARY_PATH="/opt/libgcrypt20-18/lib/x86_64-linux-gnu:/opt/gpg-error-127/lib/x86_64-linux-gnu"
```
Alternatively, these can be passed as direct parameters to CMake later on (`-DCMAKE_INCLUDE_PATH=... -DCMAKE_LIBRARY_PATH=...`).
**Ubuntu 14.04** is also missing the required `libargon2-0-dev` package, which can be installed from the same PPA.
On **Fedora/RHEL/CentOS**:
```bash
sudo dnf install qt5-qtbase-devel qt5-linguist qt5-qttools \
libgcrypt-devel zlib-devel
libgcrypt-devel libargon2-devel zlib-devel
```
On Arch Linux:
**CentOS** requires more up-to-date packages, provided here: https://copr.fedorainfracloud.org/coprs/bugzy/keepassxc/
On **Arch Linux**:
```bash
sudo pacman -S qt5-base qt5-tools libgcrypt zlib
sudo pacman -S qt5-base qt5-tools libgcrypt argon2 zlib
```
### Install the optional dependencies
These are required to build Auto-Type, Yubikey and browser integration support.
On Debian/Ubuntu:
On **Debian/Ubuntu**:
```bash
sudo apt install libxi-dev libxtst-dev libqt5x11extras5-dev \
libyubikey-dev libykpers-1-dev libsodium-dev
```
On Fedora/RHEL/CentOS:
For **Ubuntu 14.04**, the `libsodium-dev` package is provided through our PPA, see above.
> Note: CentOS may require more up-to-date packages, provided here: https://copr.fedorainfracloud.org/coprs/bugzy/keepassxc/
On **Fedora/RHEL/CentOS**:
```bash
sudo dnf install libXi-devel libXtst-devel qt5-qtx11extras \
qt5-qtx11extras-devel libyubikey-devel ykpers-devel libsodium-devel
```
On Arch Linux:
**CentOS** requires more up-to-date packages, provided here: https://copr.fedorainfracloud.org/coprs/bugzy/keepassxc/
On **Arch Linux**:
```bash
sudo pacman -S libxi libxtst qt5-x11extras qt5-tools \
yubico-c yubikey-personalization libsodium
@@ -76,19 +89,19 @@ sudo pacman -S libxi libxtst qt5-x11extras qt5-tools \
### Update your environment regularly
On Debian/Ubuntu:
On **Debian/Ubuntu**:
```bash
sudo apt-get update && sudo apt-get upgrade
```
On Fedora/RHEL/CentOS:
On **Fedora/RHEL/CentOS**:
```bash
sudo dnf update && sudo dnf upgrade
```
On Arch Linux
On **Arch Linux**:
```bash
sudo pacman -Syyuu