Компиляция и запуск Arenadata DB на Simply Linux 10.1
Установка зависимостей
sudo apt-get update sudo apt-get install -y git gcc gcc-c++ python2-base libreadline-devel zlib-devel libapr1-devel libevent-devel libcurl-devel bzlib-devel libxerces-c-devel python-dev bison flex libyaml-devel libzstd-devel-static net-tools sudo ln -s python2 /usr/bin/python
Настройка systemd (включаем RemoveIPC, включаем KillExcludeUsers для root и пользователя, из-под которого будем работать)
sudo sed -i -e "s/^#RemoveIPC=yes$/RemoveIPC=no/" -e "s/^#KillExcludeUsers=root$/KillExcludeUsers=root $USER/" /etc/systemd/logind.conf
Перезагрузка для применения изменений
sudo reboot
Скачать исходники ветки adb-6.x и перейти в каталог с ними
git clone https://github.com/arenadata/gpdb -b adb-6.x cd gpdb
Скачать подмодули
git submodule update --init
Убрать параметры компилятора, которые вызывают ошибку на свежем GCC.
sed -i '/-std=c++98/d' src/backend/gpopt/gpopt.mk sed -i '/-std=gnu++98/d' src/backend/gporca/gporca.mk
Сборка с максимальной отладочной информацией. Для свежего компилятора может потребоваться параметр -Wno-error=nonnull-compare
./configure --enable-debug-extensions --with-python --with-pythonsrc-ext --disable-gpcloud --enable-depend --enable-cassert CFLAGS="-O0 -g3 -ggdb -fno-omit-frame-pointer -Wno-error=deprecated-copy" CXXFLAGS="-O0 -g3 -fno-omit-frame-pointer -Wno-error=deprecated-copy" --prefix=$HOME/gpdb_bin make -s -j`nproc` make -s install
Настроить доступ по ключу к самому себе
Включить сервер ssh, если он еще не включен
sudo systemctl enable --now sshd
Проверяем, есть ли ключ
ls ~/.ssh/id_rsa*
Если нет ключа, генерим
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
Добавляем ключ в файл ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Тестим - сначала запросит yes, а во второй раз ничего не спросит
ssh $(hostname) date
Запуск
Прибить процесс, выводящий окно при каждом обращении к ключу SSH
pkill ssh-agent
Инициализировать переменные окружения, необходимые для запуска кластера
source $HOME/gpdb_bin/greenplum_path.sh
Создание и запуск тестового кластера. Все данные будут в каталоге ~/data
DATADIRS=~/data make create-demo-cluster
Инициализировать переменные окружения, необходимые для подключения к созданному кластеру
source gpAux/gpdemo/gpdemo-env.sh
Подключение к кластеру
psql postgres
В psql для теста можно выполнить запросы
select version(); select * from gp_segment_configuration order by content;