mirror of
https://github.com/trailofbits/algo.git
synced 2025-08-02 02:43:01 +02:00
switch to python 3.8
This commit is contained in:
parent
db0a17d778
commit
d33ca9a243
5 changed files with 12 additions and 104 deletions
|
@ -37,7 +37,7 @@ The easiest way to get an Algo server running is to run it on your local system
|
|||
|
||||
- Run the command `git clone https://github.com/trailofbits/algo.git` to create a directory named `algo` containing the Algo scripts.
|
||||
|
||||
3. **Install Algo's core dependencies.** Algo requires that **Python 3.6 or later** and at least one supporting package are installed on your system.
|
||||
3. **Install Algo's core dependencies.** Algo requires that **Python 3.8 or later** and at least one supporting package are installed on your system.
|
||||
|
||||
- **macOS:** Catalina (10.15) and higher includes Python 3 as part of the optional Command Line Developer Tools package. From Terminal run:
|
||||
|
||||
|
|
|
@ -1,97 +0,0 @@
|
|||
# RedHat/CentOS 6.x pre-installation requirements
|
||||
|
||||
Many people prefer RedHat or CentOS 6 (or similar variants like Amazon Linux) for to their stability and lack of systemd. Unfortunately, there are a number of dated libraries, notably Python 2.6, that prevent Algo from running without errors. This script will prepare a RedHat, CentOS, or similar VM to deploy to Algo cloud instances.
|
||||
|
||||
## Step 1: Prep for RH/CentOS 6.8/Amazon
|
||||
|
||||
```shell
|
||||
yum -y update
|
||||
yum -y install epel-release
|
||||
```
|
||||
|
||||
Enable any kernel updates:
|
||||
|
||||
```shell
|
||||
reboot
|
||||
```
|
||||
|
||||
## Step 2: Install Ansible and launch Algo
|
||||
|
||||
RedHat/CentOS 6.x uses Python 2.6 by default, which is explicitly deprecated and produces many warnings and errors, so we must install a safe, non-invasive 3.6 tool set which has to be expressly enabled (and will not survive login sessions and reboots):
|
||||
|
||||
- Install the Software Collections Library (to enable Python 3.6)
|
||||
```shell
|
||||
yum -y install centos-release-SCL
|
||||
yum -y install \
|
||||
openssl-devel \
|
||||
libffi-devel \
|
||||
automake \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
kernel-devel \
|
||||
rh-python36-python \
|
||||
rh-python36-python-devel \
|
||||
rh-python36-python-setuptools \
|
||||
rh-python36-python-pip \
|
||||
rh-python36-python-virtualenv \
|
||||
rh-python36-python-crypto \
|
||||
rh-python36-PyYAML \
|
||||
libselinux-python \
|
||||
python-crypto \
|
||||
wget \
|
||||
unzip \
|
||||
nano
|
||||
```
|
||||
|
||||
- 3.6 will not be used until explicitly enabled, per login session. Enable 3.6 default for this session (needs re-run between logins & reboots)
|
||||
```
|
||||
scl enable rh-python36 bash
|
||||
```
|
||||
|
||||
- We're now defaulted to 3.6. Upgrade required components
|
||||
```
|
||||
python3 -m pip install -U pip virtualenv pycrypto setuptools
|
||||
```
|
||||
|
||||
- Download and uzip Algo
|
||||
```
|
||||
wget https://github.com/trailofbits/algo/archive/master.zip
|
||||
unzip master.zip
|
||||
cd algo-master || echo "No Algo directory found"
|
||||
```
|
||||
|
||||
- Set up a virtualenv and install the local Algo dependencies (must be run from algo-master)
|
||||
```
|
||||
python3 -m virtualenv --python="$(command -v python3)" .env
|
||||
source .env/bin/activate
|
||||
python3 -m pip install -U pip virtualenv
|
||||
python3 -m pip install -r requirements.txt
|
||||
```
|
||||
|
||||
- Edit the userlist and any other settings you desire
|
||||
```
|
||||
nano config.cfg
|
||||
```
|
||||
|
||||
- Now you can run the Algo installer!
|
||||
```
|
||||
./algo
|
||||
```
|
||||
|
||||
## Post-install macOS
|
||||
|
||||
1. Copy `./configs/*mobileconfig` to your local Mac
|
||||
|
||||
2. Install the VPN profile on your Mac (10.10+ required)
|
||||
|
||||
```shell
|
||||
/usr/bin/profiles -I -F ./x.x.x.x_NAME.mobileconfig
|
||||
```
|
||||
|
||||
3. To remove:
|
||||
|
||||
```shell
|
||||
/usr/bin/profiles -D -F ./x.x.x.x_NAME.mobileconfig
|
||||
```
|
||||
|
||||
The VPN connection will now appear under Networks (which can be pinned to the top menu bar if preferred)
|
|
@ -42,7 +42,7 @@ Look here if you have a problem running the installer to set up a new Algo serve
|
|||
|
||||
### Python version is not supported
|
||||
|
||||
The minimum Python version required to run Algo is 3.6. Most modern operation systems should have it by default, but if the OS you are using doesn't meet the requirements, you have to upgrade. See the official documentation for your OS, or manual download it from https://www.python.org/downloads/. Otherwise, you may [deploy from docker](deploy-from-docker.md)
|
||||
The minimum Python version required to run Algo is 3.8. Most modern operation systems should have it by default, but if the OS you are using doesn't meet the requirements, you have to upgrade. See the official documentation for your OS, or manual download it from https://www.python.org/downloads/. Otherwise, you may [deploy from docker](deploy-from-docker.md)
|
||||
|
||||
### Error: "You have not agreed to the Xcode license agreements"
|
||||
|
||||
|
|
4
main.yml
4
main.yml
|
@ -31,10 +31,10 @@
|
|||
|
||||
- name: Verify Python meets Algo VPN requirements
|
||||
assert:
|
||||
that: (ansible_python.version.major|string + '.' + ansible_python.version.minor|string) is version('3.6', '>=')
|
||||
that: (ansible_python.version.major|string + '.' + ansible_python.version.minor|string) is version('3.8', '>=')
|
||||
msg: >
|
||||
Python version is not supported.
|
||||
You must upgrade to at least Python 3.6 to use this version of Algo.
|
||||
You must upgrade to at least Python 3.8 to use this version of Algo.
|
||||
See for more details - https://trailofbits.github.io/algo/troubleshooting.html#python-version-is-not-supported
|
||||
|
||||
- name: Verify Ansible meets Algo VPN requirements
|
||||
|
|
|
@ -25,9 +25,14 @@ lxc network attach lxdbr0 algo eth0 eth0
|
|||
lxc config device set algo eth0 ipv4.address 10.0.8.100
|
||||
lxc start algo
|
||||
|
||||
if [[ ${UBUNTU_VERSION} == "20.04" ]]; then
|
||||
lxc exec algo -- apt remove snapd --purge -y || true
|
||||
fi
|
||||
case ${UBUNTU_VERSION} in
|
||||
20.04)
|
||||
lxc exec algo -- apt remove snapd --purge -y || true
|
||||
;;
|
||||
18.04)
|
||||
lxc exec algo -- apt install python3.8 -y
|
||||
;;
|
||||
esac
|
||||
|
||||
ip addr
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue