Installation¶
This document describes how to install oidc-agent on linux. To install oidc-agent on Windows or MacOS refer to the Windows documentation and MacOS documentation, respectively.
From Package¶
Please check if your distribution already includes oidc-agent. In this case installing is as simple as
sudo apt-get install oidc-agent
** However, please also check that the oidc-agent version included in your distribution is up-2-date (You need at least oidc-agent version > 5.0.0). (Currently, unfortunately, this is not the case for debian / ubuntu) **
If your distribution does not include an up-2-date version of oidc-agent, packaged versions of oidc-agent are available for many different distros at http://repo.data.kit.edu.
From Source¶
If you want to build oidc-agent from source you can do so.
Dependencies¶
Basic Dependencies¶
To be able to build oidc-agent, you need at least the following dependencies installed on your system:
- gcc
- make
- libcurl (libcurl4-openssl-dev)
- libsodium (>= 1.0.14) (libsodium-dev)
- libmicrohttpd (libmicrohttpd-dev)
- libqrencode (libqrencode-dev)
- libcjson-dev
- libwebkit
- Debian / Ubuntu: webkit2-gtk (libwebkit2gtk-4.0-dev)
- Centos / Fedora: webkitgtk4 (webkitgtk4-devel)
- SuSE: webkit2gtk3 (webkit2gtk3-soup2-devel)
Debian/Ubuntu¶
sudo apt-get install \
libcurl4-openssl-dev \
libsodium-dev \
libmicrohttpd-dev \
libsecret-1-dev \
libqrencode-dev \
libwebkit2gtk-4.0-dev
Centos / Fedora¶
sudo yum install \
libcurl-devel \
libsodium-devel \
libmicrohttpd-devel \
libsecret-devel \
qrencode-devel \
webkitgtk4-devel
OpenSuSE¶
sudo zypper install \
libcurl-devel \
libsodium-devel \
libmicrohttpd-devel \
libsecret-devel \
qrencode-devel \
webkit2gtk3-soup2-devel
Additional Build Dependencies¶
oidc-agent can be installed easiest from package. So even when building from source it is recommended to build the package and install it.
Building the deb/rpm package might have additional dependencies. More
information about those are found in the rpm
or the debian
subfolders.
Note: The debian
subfolder may only be available on the Debian
Salsa git.
Dockerised builds are supported via make targets, such as:
dockerised_rpm_centos_7
dockerised_rpm_centos_8
dockerised_rpm_rockylinux_8.5
dockerised_rpm_opensuse_15.3
dockerised_rpm_opensuse_15.4
dockerised_rpm_opensuse_tumbleweed
dockerised_rpm_fedora_36
dockerised_all_deb_packages: dockerised_deb_debian_bullseye
The debian package targets are defined on the branches in the Debian Salsa git:
dockerised_deb_debian_buster
dockerised_deb_debian_bookworm
dockerised_deb_ubuntu_focal
dockerised_deb_ubuntu_jammy
dockerised_deb_ubuntu_impish
dockerised_deb_ubuntu_hirsute
dockerised_deb_ubuntu_kinetic
Download oidc-agent¶
After installing the necessary dependencies, one has to obtain a copy of the source. Possible ways are:
- clone the git repository
- download a release version
- download the source from GitHub
Using git¶
git clone https://github.com/indigo-dc/oidc-agent
cd oidc-agent
Using curl¶
curl -L https://github.com/indigo-dc/oidc-agent/archive/master.tar.gz -o /tmp/oidc-agent-master.tar.gz
tar xzf /tmp/oidc-agent-master.tar.gz
cd oidc-agent
Build and install oidc-agent¶
Building Binaries¶
The binaries can be build with make
. To build and install run:
make
sudo make install_lib
sudo make install
sudo make post_install
This will:
- build the binaries
- create man pages
- install the binaries
- install the man pages
- install configuration files
- install bash completion
- install a custom scheme handler
- enable the linker to use the newly installed libraries
- update the desktop database to enable the custom scheme handler
If you want to install any of these files to another location you can pass a different path to make.
E.g. sudo make install BIN_PATH=/home/user
will install the binaries in
/home/user/bin
instead of /usr/bin
.
One could also run only make
and manually copy the necessary files to another location and / or add the binaries'
location to PATH
. However, this is not recommend, because some files have to be placed at specific locations or
additional configuration is needed. But it is also possible to install only a subset of all files, by calling the
different make install_
rules. Available targets are:
sudo make install_bin
sudo make install_man
sudo make install_conf
sudo make install_bash
sudo make install_scheme_handler
sudo make install_xsession_script
sudo make install_lib
sudo make install_lib-dev