From cf6966058e9cc6bdf8f3c0ffe11135391b4692e6 Mon Sep 17 00:00:00 2001 From: jack1142 <6032823+jack1142@users.noreply.github.com> Date: Thu, 28 May 2020 22:59:25 +0200 Subject: [PATCH] Revise install instructions (+ install Java 11 everywhere, and update pyenv to use Python 3.8.3) (#3847) * Use `openjdk-r` ppa for Ubuntu 16.04 * Don't add `deadsnakes` ppa for Ubuntu 20.04 * Use Java 11 for Arch Linux * Update getting started guide to recommend Ubuntu 20.04 over 18 * Use Java 11 for Fedora Linux * Use Java 11 for openSUSE Tumbleweed * remove unneded `-u` for ubuntu 20.04 and 18.04 * use `openjdk-11-jre-headless` in all ubuntus * use headless jre everywhere * add non interactive flag to zypper calls * Add emphasis on info about pyenv's warning * reverse order of Ubuntu LTS versions * Install Git 2.11+ with `yum replace` on CentOS/RHEL 7 * Add `--gpg-auto-import-keys` flag to non-interactive `zypper ar` usage * update pyenv instructions to use Python 3.8.3 * Install git after installing everything else in CentOS 7 instructions * use zypper flags properly * improve the sentence a little * I like consistency * add missing `sudo`s in CentOS instructions * add tk-devel to CentOS instructions per pyenv's recommendations * Install gcc 8 from SCL in CentOS 7 * use git222 instead of git2u on CentOS 7 * Add missing `source ~/.bashrc` line * use git224 instead of git222 on CentOS 7 * use yum swap over yum-plugin-replace in CentOS 7 --- docs/getting_started.rst | 2 +- docs/install_linux_mac.rst | 145 ++++++++++++++++++++++++++++--------- 2 files changed, 111 insertions(+), 36 deletions(-) diff --git a/docs/getting_started.rst b/docs/getting_started.rst index da97454d0..fd0b3942c 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -270,7 +270,7 @@ If you want to do it, follow these steps. 2. **Install Linux** Most of the VPS providers have tools for installing Linux automatically. If - you're a beginner, we recommend **Ubuntu 18**. + you're a beginner, we recommend **Ubuntu 20.04 LTS**. For Raspberry Pi users, just install `Raspbian `_ on a micro-SD card. diff --git a/docs/install_linux_mac.rst b/docs/install_linux_mac.rst index 96c4cf101..a5cf9f8c4 100644 --- a/docs/install_linux_mac.rst +++ b/docs/install_linux_mac.rst @@ -43,14 +43,14 @@ Arch Linux .. code-block:: none - sudo pacman -Syu python python-pip git jre-openjdk-headless base-devel + sudo pacman -Syu python python-pip git jre11-openjdk-headless base-devel Continue by `creating-venv-linux`. ---- -.. _install-centos: -.. _install-rhel: +.. _install-centos7: +.. _install-rhel7: ~~~~~~~~~~~~~~~~~ CentOS and RHEL 7 @@ -58,17 +58,27 @@ CentOS and RHEL 7 .. code-block:: none - yum -y groupinstall development - yum -y install https://centos7.iuscommunity.org/ius-release.rpm + sudo yum -y groupinstall development sudo yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \ - openssl-devel xz xz-devel libffi-devel findutils git2u java-11-openjdk + openssl-devel xz xz-devel tk-devel libffi-devel findutils java-11-openjdk-headless + sudo yum -y install centos-release-scl + sudo yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ + echo "source scl_source enable devtoolset-8" >> ~/.bashrc + source ~/.bashrc + +In order to install Git 2.11 or greater, we recommend adding the IUS repository: + +.. code-block:: none + + sudo yum -y install https://repo.ius.io/ius-release-el7.rpm + sudo yum -y swap git git224 Complete the rest of the installation by `installing Python 3.8 with pyenv `. ---- -.. _install-centos8: -.. _install-rhel8: +.. _install-centos: +.. _install-rhel: ~~~~~~~~~~~~~~~~~ CentOS and RHEL 8 @@ -76,12 +86,12 @@ CentOS and RHEL 8 .. code-block:: none - yum -y install epel-release - yum update -y - yum -y groupinstall development - yum -y install git zlib-devel bzip2 bzip2-devel readline-devel sqlite \ - sqlite-devel openssl-devel xz xz-devel libffi-devel findutils java-11-openjdk - + sudo yum -y install epel-release + sudo yum -y update + sudo yum -y groupinstall development + sudo yum -y install git zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \ + openssl-devel xz xz-devel tk-devel libffi-devel findutils java-11-openjdk-headless + Complete the rest of the installation by `installing Python 3.8 with pyenv `. ---- @@ -105,8 +115,8 @@ Debian Stretch. This guide will tell you how. First, run the following commands: sudo echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list.d/red-sources.list sudo apt update sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \ - libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev \ - libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre + libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \ + libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless CXX=/usr/bin/g++ Complete the rest of the installation by `installing Python 3.8 with pyenv `. @@ -127,8 +137,8 @@ Debian/Raspbian Buster. This guide will tell you how. First, run the following c sudo apt update sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \ - libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev \ - libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre + libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \ + libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless CXX=/usr/bin/g++ Complete the rest of the installation by `installing Python 3.8 with pyenv `. @@ -146,7 +156,7 @@ them with dnf: .. code-block:: none - sudo dnf -y install python38 git java-latest-openjdk-headless @development-tools + sudo dnf -y install python38 git java-11-openjdk-headless @development-tools Continue by `creating-venv-linux`. @@ -197,14 +207,17 @@ First, add the Opt-Python community repository: .. code-block:: none source /etc/os-release - sudo zypper ar -f https://download.opensuse.org/repositories/home:/Rotkraut:/Opt-Python/openSUSE_Leap_${VERSION_ID}/ Opt-Python + sudo zypper -n ar -f \ + https://download.opensuse.org/repositories/home:/Rotkraut:/Opt-Python/openSUSE_Leap_${VERSION_ID}/ \ + Opt-Python + sudo zypper -n --gpg-auto-import-keys ref Now install the pre-requirements with zypper: .. code-block:: none - sudo zypper install opt-python38 opt-python38-setuptools git-core java-11-openjdk-headless - sudo zypper install -t pattern devel_basis + sudo zypper -n install opt-python38 opt-python38-setuptools git-core java-11-openjdk-headless + sudo zypper -n install -t pattern devel_basis Since Python is now installed to ``/opt/python``, we should add it to PATH. You can add a file in ``/etc/profile.d/`` to do this: @@ -230,25 +243,31 @@ with zypper: .. code-block:: none - sudo zypper install python3-base python3-pip git-core java-12-openjdk-headless - sudo zypper install -t pattern devel_basis + sudo zypper -n install python3-base python3-pip git-core java-11-openjdk-headless + sudo zypper -n install -t pattern devel_basis Continue by `creating-venv-linux`. ---- -.. _install-ubuntu: +.. _install-ubuntu-1604: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Ubuntu LTS versions (20.04, 18.04, and 16.04) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~ +Ubuntu 16.04 LTS +~~~~~~~~~~~~~~~~ -We recommend adding the ``git-core`` ppa to install Git 2.11 or greater: +We recommend adding the ``openjdk-r`` ppa to install Java 11: .. code-block:: none sudo apt update sudo apt -y install software-properties-common + sudo add-apt-repository -yu ppa:openjdk-r/ppa + +We recommend adding the ``git-core`` ppa to install Git 2.11 or greater: + +.. code-block:: none + sudo add-apt-repository -yu ppa:git-core/ppa We recommend adding the ``deadsnakes`` ppa to install Python 3.8.1 or greater: @@ -261,7 +280,63 @@ Now install the pre-requirements with apt: .. code-block:: none - sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git default-jre-headless \ + sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless \ + build-essential + +Continue by `creating-venv-linux`. + +---- + +.. _install-ubuntu-1804: + +~~~~~~~~~~~~~~~~ +Ubuntu 18.04 LTS +~~~~~~~~~~~~~~~~ + +We recommend adding the ``git-core`` ppa to install Git 2.11 or greater: + +.. code-block:: none + + sudo apt update + sudo apt -y install software-properties-common + sudo add-apt-repository -y ppa:git-core/ppa + +We recommend adding the ``deadsnakes`` ppa to install Python 3.8.1 or greater: + +.. code-block:: none + + sudo add-apt-repository -y ppa:deadsnakes/ppa + +Now install the pre-requirements with apt: + +.. code-block:: none + + sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless \ + build-essential + +Continue by `creating-venv-linux`. + +---- + +.. _install-ubuntu: + +~~~~~~~~~~~~~~~~ +Ubuntu 20.04 LTS +~~~~~~~~~~~~~~~~ + +We recommend adding the ``git-core`` ppa to install Git 2.11 or greater: + +.. code-block:: none + + sudo apt update + sudo apt -y install software-properties-common + sudo add-apt-repository -y ppa:git-core/ppa + +Now install the pre-requirements with apt: + +.. code-block:: none + + sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless \ build-essential Continue by `creating-venv-linux`. @@ -289,7 +364,7 @@ installing pyenv. To do this, first run the following commands: sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \ libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev \ - libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre + libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless CXX=/usr/bin/g++ And then complete the rest of the installation by `installing Python 3.8 with pyenv `. @@ -315,14 +390,14 @@ virtual environment. command -v pyenv && pyenv update || curl https://pyenv.run | bash -After this command, you may see a warning about 'pyenv' not being in the load path. Follow the -instructions given to fix that, then close and reopen your shell. +**After this command, you may see a warning about 'pyenv' not being in the load path. Follow the +instructions given to fix that, then close and reopen your shell.** Then run the following command: .. code-block:: none - CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.2 -v + CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.3 -v This may take a long time to complete, depending on your hardware. For some machines (such as Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove @@ -334,7 +409,7 @@ After that is finished, run: .. code-block:: none - pyenv global 3.8.2 + pyenv global 3.8.3 Pyenv is now installed and your system should be configured to run Python 3.8.