Note on the AFF4 datastore deprecation
Starting from the version 3.3.0.0 GRR uses a new datastore format by default - REL_DB. REL_DB is backwards-incompatible with the now-deprecated AFF4 datastore format (even though they both use MySQL as a backend).
Use of AFF4-based deployments is now discouraged. REL_DB is expected to be much more stable and performant. Please see these docs if you’re upgrading an older GRR version and would like to try out the new datastore.
Installing from source¶
Here’s how to install GRR for development (from github HEAD):
First, install the prerequisites:
- Ubuntu:
sudo apt install -y fakeroot debhelper libffi-dev libssl-dev python-dev \
python-pip wget openjdk-8-jdk zip git devscripts dh-systemd dh-virtualenv \
libc6-i386 lib32z1 asciidoc
- Centos:
sudo yum install -y epel-release python-devel wget which java-1.8.0-openjdk \
libffi-devel openssl-devel zip git gcc gcc-c++ redhat-rpm-config rpm-build \
rpm-sign
sudo yum install -y python-pip
Next, upgrade pip and install virtualenv:
sudo pip install --upgrade pip virtualenv
Next, download the github repo and cd into its directory:
git clone https://github.com/google/grr.git
cd grr
Finally, create a virtualenv at $HOME/INSTALL and install GRR in the virtualenv:
virtualenv $HOME/INSTALL
travis/install.sh
You should now be able to run GRR commands from inside the virtualenv, e.g:
source $HOME/INSTALL/bin/activate
grr_config_updater initialize # Initialize GRR's configuration
Installing Python 3 GRR version from source¶
Note on the Python 3 support in GRR
By now GRR codebase should be fully Python 3 compatible: unit and end-to-end tests are passing in a properly setup Python 3 GRR environment. However, the first Python 3 GRR release is expected in Dec. 2019. Until that’s done, Python 3 support should be treated as experimental: unforeseen packaging issues not covered by our tests are possible.
Here’s how to install GRR for Python 3 development (from github HEAD, on Ubuntu Xenial):
First, install the prerequisites:
sudo apt install -y fakeroot debhelper libffi-dev libssl-dev python3-dev \
python3-pip python3-venv wget openjdk-8-jdk zip git devscripts dh-systemd \
dh-virtualenv libc6-i386 lib32z1 asciidoc libmysqlclient-dev
Next, download the github repo and cd into its directory:
git clone https://github.com/google/grr.git
cd grr
Next, create a virtualenv at $HOME/INSTALL:
python3 -m venv $HOME/INSTALL
Next, pre-install Python 3-compatible chipsec version into the virtualenv. Note that this will install chipsec Python code only, no driver will be built, meaning that Chipsec won’t be function on GRR clients (this should be fixed soon).
source $HOME/INSTALL/bin/activate
pip install https://github.com/chipsec/chipsec/archive/python3-beta.zip --install-option="--skip-driver"
Finally, install GRR in the virtualenv:
travis/install.sh
You should now be able to run GRR commands from inside the virtualenv, e.g:
source $HOME/INSTALL/bin/activate
grr_config_updater initialize # Initialize GRR's configuration