zcash-gitian/dependency_install_steps_by.../Debian_9.x.md

185 lines
4.4 KiB
Markdown
Raw Normal View History

# Dependency installation steps for Debian GNU/Linux 9.x (stretch)
This document assumes you are starting from a fresh install of Debian in the 9.x series.
Most recently tested 2019-03-21 with the following debian release:
```
$ lsb_release --description
Description: Debian GNU/Linux 9.8 (stretch)
```
# Install VirtualBox
Virtualbox is the configured VM provider in this project's Vagrantfile.
Add Oracle's VirtualBox apt repository to your system's apt sources:
```
sudo apt-add-repository "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib"
```
Verify that the source was added:
```
$ grep -iR virtualbox /etc/apt/sources.list*
/etc/apt/sources.list:deb http://download.virtualbox.org/virtualbox/debian stretch contrib
/etc/apt/sources.list:# deb-src http://download.virtualbox.org/virtualbox/debian stretch contrib
```
Download and register the public gpg key used by Oracle to secure the above
repository:
```
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
OK
```
Verify that the key was added
```
$ apt-key list "B9F8 D658 297A F3EF C18D 5CDF A2F6 83C5 2980 AECF"
pub rsa4096 2016-04-22 [SC]
B9F8 D658 297A F3EF C18D 5CDF A2F6 83C5 2980 AECF
uid [ unknown] Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
sub rsa4096 2016-04-22 [E]
```
Update your local apt package metadata
```
$ sudo apt update
[...]
```
This command will show the available versions of virtualbox from the apt
repository:
```
$ sudo apt install virtualbox
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package virtualbox is a virtual package provided by:
virtualbox-6.0 6.0.4-128413~Debian~stretch
virtualbox-5.2 5.2.26-128414~Debian~stretch
virtualbox-5.1 5.1.38-122592~Debian~stretch
virtualbox-5.0 5.0.40-115130~Debian~stretch
You should explicitly select one to install.
E: Package 'virtualbox' has no installation candidate
```
Decide on the version you want and specify the version number to install it:
```
$ sudo apt install virtualbox-6.0 -y
[...]
```
Source: https://www.virtualbox.org/wiki/Linux_Downloads#Debian-basedLinuxdistributions
Most recently tested 2019-03-21 with the following virtualbox release:
```
$ virtualbox --help
Oracle VM VirtualBox VM Selector v6.0.4
[...]
```
## Install git
```
$ sudo apt install git
```
Most recently tested 2019-03-21 with the following git release:
```
$ git --version
git version 2.11.0
```
2018-05-07 09:11:58 -07:00
# Install Vagrant 2.0.3 or higher
As of this writing, the Vagrant version that Debian uses in its "stretch" release is 1.9.x so we
suggest getting a package from Vagrant's web site:
```
wget -c https://releases.hashicorp.com/vagrant/2.2.4/vagrant_2.2.4_x86_64.deb
sudo dpkg -i vagrant_2.2.4_x86_64.deb
rm vagrant_2.2.4_x86_64.deb
```
Most recently tested 2019-03-21 with the following vagrant release:
```
$ vagrant --version
Vagrant 2.2.4
```
# Install venv support
`venv` is a python module used to create isolated project-specific environments, so that projects on
the same computer can each use their own version of the python executable and their own set of
installed python modules.
`python3-venv` is an `apt` package that includes support for using the `venv` python module.
```
sudo apt install python3-venv
```
Most recently tested 2019-03-05 with the following python3-venv release:
```
$ dpkg --status python3-venv | grep Version
Version: 3.5.3-1
```
# Install direnv (Optional/Recommended)
This tool sets and unsets environment variables as you change directories in a shell session,
2019-03-28 22:51:30 -07:00
providing a convenient facility for setting up project-specific configuration.
```
sudo apt install direnv
```
To activate direnv when starting bash (the default shell on Debian 9), add the following line to the
end of `~/.bashrc`:
```
eval "$(direnv hook bash)"
```
direnv works by incorporating a call to `_direnv_hook` in the `PROMPT_COMMAND` shell variable. You
can check that this was done by starting a new bash session and checking whether that value is
present:
```
$ echo $PROMPT_COMMAND
_direnv_hook;
```
direnv also supports several other shells -- zsh, fish, tcsh, and elvish as of this writing. Its
website includes instructions for enabling each of the shells it supports.
Most recently tested 2019-03-21 with the following direnv release:
```
$ direnv --help
direnv v2.10.0
[...]
```