---
# System prepended metadata

title: sailfish - как установить

---

# sailfish - как установить

ОС: Ubuntu Bionic (18.04) desktop
Всё выполняем под рутом

1. Обновим и установим зависимости
```bash=
apt-get update
apt-get install --yes apt-utils software-properties-common python3-pip python3-virtualenv locales git wget libfontconfig libcairo2 libpango-1.0.0 libpangocairo-1.0-0 libjpeg62-dev graphviz
python3 -m pip install --upgrade --force-reinstall pip
ln -s /usr/bin/python3 /usr/bin/python
```

2. Клонируем репозитории
```bash=
cd /root
git clone --recursive https://github.com/ucsb-seclab/sailfish.git sailfish
git clone https://github.com/ucsb-seclab/slither-sailfish.git slither
git clone https://github.com/dipanjan/solc-binaries.git
```

3. Настраиваем инструменты (racket, пакеты для racket, slither)
```bash=
pip3 install -r /root/sailfish/code/static_analysis/requirements.txt


cd /root/slither && python3 setup.py install
```

Нам нужно скачать установщик racket версии 7.7, однако зеркало может не открываться в РФ:
```
wget --quiet https://download.racket-lang.org/releases/7.7/installers/racket-7.7-x86_64-linux.sh
```
Если команда выше не работает, можно скачать файл через VPN (или из телеграма, лежит в беседе) и положить его в папку /root/slither

Донастраиваем
```
chmod +x racket-7.7-x86_64-linux.sh
./racket-7.7-x86_64-linux.sh --in-place --dest /usr/racket --create-links /usr
rm -f racket-7.7-x86_64-linux.sh

raco pkg install --deps search-auto --type github --checksum e4b56fa --name rosette emina/rosette

wget --quiet -O /usr/bin/cvc4 https://github.com/CVC4/CVC4/releases/download/1.7/cvc4-1.7-x86_64-linux-opt
chmod +x /usr/bin/cvc4

cd /root/sailfish/code/symbolic_execution
git clean -fd
./build.py
```

4. solc-select

```
ln -s /root/solc-binaries/.solc-select /root/.solc-select
echo 'PATH=~/.solc-select:$PATH' >> /root/.bashrc
chmod -R 755 /root/.solc-select
```
