Перейти к содержанию

Установка Picodata

Данный раздел содержит сведения об установке Picodata на локальный компьютер.

Установка готовых пакетов

Picodata поставляется для поддерживаемых операционных систем и предназначена для архитектуры x86_64 (в случае с macOS также поддерживается Apple Silicon). Для Linux мы поддерживаем собственные репозитории с готовыми пакетами для Fedora 39, RHEL 8, Rocky Linux 8, РЕД ОС 7.3 "Муром", Astra Linux 1.7 SE, Debian 11, Ubuntu 20.04, 22.04, Alt Linux p10 и ROSA Chrome 2021.1. Внутри пакетов находится статически слинкованная версия исполняемого файла picodata. Более подробная информация об установке приведена на сайте https://picodata.io/download.

Установка из исходного кода

Необходимые инструменты

  • Rust и Cargo 1.76 или новее
  • cmake 3.16 или новее
  • gcc, g++
  • libstdc++-static
  • NodeJS и Yarn (для сборки с веб-интерфейсом)

Установка Rust и Cargo универсальна для всех поддерживаемых ОС:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Далее приведены команды для установки остальных зависимостей под разные ОС.

RHEL 8/9 и деривативы, Fedora 38-40

Только для ОС, основанных на RHEL 8/9:

sudo dnf config-manager --set-enabled powertools

Установка общих зависимостей для сборки:

sudo dnf in -y gcc gcc-c++ make perl automake libtool cmake git patch libstdc++-static

Установка NodeJS и Yarn (для веб-интерфейса):

curl -sL https://rpm.nodesource.com/setup_lts.x | sudo bash -
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo dnf install yarn nodejs

Ubuntu 22.04 и 24.04

Установка общих зависимостей для сборки:

sudo apt-get install build-essential git cmake autoconf libtool curl pkg-config -y

Установка NodeJS и Yarn (для веб-интерфейса):

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt install yarn npm -y
sudo curl --compressed -o- -L https://yarnpkg.com/install.sh | bash

Alt Server p10

Установка общих зависимостей для сборки:

su -
apt-get install -y gcc gcc-c++ cmake git patch libstdc++10-devel-static libgomp10-devel-static

Установка NodeJS и Yarn (для веб-интерфейса):

su -
apt-get install -y node yarn

macOS

Сборка под macOS почти не отличается от таковой в Linux. Потребуется macOS 10.15 Catalina, либо более новая версия (11+).

Для начала следует установить актуальные версии Rust и Cargo.

Если планируется сборка Picodata c веб-интерфейсом, то нужно будет установить дополнительно NodeJS и Yarn при помощи пакетного менеджера Brew.

Установка Brew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Установка NodeJS и Yarn:

brew install node yarn

Получение исходного кода

git clone https://git.picodata.io/picodata/picodata/picodata.git
cd picodata
git submodule update --init --recursive

Сборка

Сборка Picodata только c консольным интерфейсом:

cargo build --release

Сборка Picodata c консольным и веб-интерфейсом:

cargo build --release --features webui

Исполняемый файл picodata появится в target/release. Далее его следует скопировать в директорию, входящую в $PATH, например в /usr/bin или /usr/local/bin.

Проверка установки

Когда программное обеспечение Picodata установлено, то можно проверить наличие в системе основного исполняемого файла picodata, используя следующую команду:

which picodata

Ответом на нее должно быть значение /usr/bin/picodata, либо — если вы устанавливали ПО вручную с другим префиксом — иное расположение, включенное в $PATH. Чтобы убедиться в работоспособности ПО, а также посмотреть его версию, используйте следующую команду:

picodata --help

В состав ПО также включены юнит-тесты, позволяющие проверить работоспособность основных функций. Юнит-тесты можно запустить следующей командой:

picodata test

Пример вывода команды:

running 6 tests
test test_traft_pool ... ok
test test_storage_peers ... ok
test test_storage_state ... ok
test test_storage_log ... ok
test test_mailbox ... ok
test test_version ... ok

test result: ok. 6 passed; 0 failed; finished in 0.88s

Обновление Picodata

Обновление без потери данных поддерживается для выпусков Picodata, принадлежащих к одной серии (с совпадающим первым числом в номере версии). Порядок действий при обновлении:

  • если Picodata была установлена из готового пакета для определенной ОС, то следует обновить этот пакет. При наличии подключенного репозитория Picodata обновленный пакет будет доставлен в рамках общего обновления системы (sudo apt-get upgrade для систем c Apt и sudo dnf update для систем с Yum/DNF). Если пакет был установлен вручную, без подключения репозитория Picodata, то следует воспользоваться системными средствами для управления индивидуальными пакетами (dpkg/rpm)
  • если Picodata была собрана из исходного кода, то необходимо обновить данные локальной копии Git-репозитория (git pull && git submodule update --init --recursive), очистить данные предыдущей сборки (cargo clean) и собрать новую версию бинарного файла picodata. Важно удостовериться, что после этого будет запускаться именно новая версия picodata
  • после обновления следует перезапустить инстанс Picodata с прежними параметрами

Удаление Picodata

Порядок действий для удаления Picodata:

  • перед удалением необходимо остановить и вывести из кластера все запущенные на данном хосте инстансы Picоdata
  • для каждого инстанса требуется удалить его рабочие файлы. Например: rm -rf *.xlog *.vylog *.snap *.sock
  • если Picodata была установлена из готового пакета для определенной ОС, то следует удалить этот пакет, используя системный менеджер пакетов (например, sudo apt remove picodata или sudo dnf remove picodata)
  • если Picodata была собрана из исходного кода, то необходимо удалить исполняемый файл picodata. Если этот файл был ранее помещен в одну из директорий, входящих в $PATH, то следует явно удалить его оттуда: sudo rm -rf $(which picodata). После этого следует удалить директорию с Git-репозиторием Picodata
  • после удаления следует удостовериться, что команда which picodata сигнализирует об отсутствии исполняемого файла picodata в $PATH

См. также: