Установка 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
- openssl
- NodeJS и Yarn (для сборки с веб-интерфейсом)
Установка Rust и Cargo универсальна для всех поддерживаемых ОС:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
Далее приведены команды для установки остальных зависимостей под разные ОС.
RHEL 8/9 и деривативы, Fedora 39-41¶
Только для ОС, основанных на 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 openssl-devel
Установка 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 libssl-dev 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++-devel-static libgomp-devel-static libssl-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/core/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
См. также: