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 ### Install the C++ toolchain
**You can skip this step if you have a working C++ toolchain (g++, cmake and make)** **You can skip this step if you have a working C++ toolchain (g++, cmake and make)**
On Debian/Ubuntu: On **Debian/Ubuntu**:
```bash ```bash
sudo apt install build-essential cmake g++ sudo apt install build-essential cmake g++
``` ```
On Fedora/RHEL/CentOS: On **Fedora/RHEL/CentOS**:
```bash ```bash
sudo dnf install make automake gcc-c++ cmake sudo dnf install make automake gcc-c++ cmake
``` ```
On Arch Linux: On **Arch Linux**:
```bash ```bash
sudo pacman -S cmake make gcc sudo pacman -S cmake make gcc
@@ -27,48 +27,61 @@ sudo pacman -S cmake make gcc-multilib
### Install the required dependencies ### Install the required dependencies
On Debian/Ubuntu: On **Debian/Ubuntu**:
```bash ```bash
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools \ 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 ```bash
sudo dnf install qt5-qtbase-devel qt5-linguist qt5-qttools \ 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 ```bash
sudo pacman -S qt5-base qt5-tools libgcrypt zlib sudo pacman -S qt5-base qt5-tools libgcrypt argon2 zlib
``` ```
### Install the optional dependencies ### Install the optional dependencies
These are required to build Auto-Type, Yubikey and browser integration support. These are required to build Auto-Type, Yubikey and browser integration support.
On Debian/Ubuntu: On **Debian/Ubuntu**:
```bash ```bash
sudo apt install libxi-dev libxtst-dev libqt5x11extras5-dev \ sudo apt install libxi-dev libxtst-dev libqt5x11extras5-dev \
libyubikey-dev libykpers-1-dev libsodium-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 ```bash
sudo dnf install libXi-devel libXtst-devel qt5-qtx11extras \ sudo dnf install libXi-devel libXtst-devel qt5-qtx11extras \
qt5-qtx11extras-devel libyubikey-devel ykpers-devel libsodium-devel 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 ```bash
sudo pacman -S libxi libxtst qt5-x11extras qt5-tools \ sudo pacman -S libxi libxtst qt5-x11extras qt5-tools \
yubico-c yubikey-personalization libsodium yubico-c yubikey-personalization libsodium
@@ -76,19 +89,19 @@ sudo pacman -S libxi libxtst qt5-x11extras qt5-tools \
### Update your environment regularly ### Update your environment regularly
On Debian/Ubuntu: On **Debian/Ubuntu**:
```bash ```bash
sudo apt-get update && sudo apt-get upgrade sudo apt-get update && sudo apt-get upgrade
``` ```
On Fedora/RHEL/CentOS: On **Fedora/RHEL/CentOS**:
```bash ```bash
sudo dnf update && sudo dnf upgrade sudo dnf update && sudo dnf upgrade
``` ```
On Arch Linux On **Arch Linux**:
```bash ```bash
sudo pacman -Syyuu sudo pacman -Syyuu