-
Notifications
You must be signed in to change notification settings - Fork 223
Convenience Binaries (Workflow)
This page describes how to build RPM and DEB convenience binaries via the CI workflows for:
- Apache Cloudberry (Core Repository)
- cloudberry-backup
- cloudberry-pxf
Now we have the workflows for the Cloudberry core project, cloudberry-backup and cloudberry-pxf to help the release manager to generate the convenience packages automatically, which supports building the packages in five different operating systems (Ubuntu 22.04/24.04, Rocky Linux 8/9/10) and two CPU archtitures (x86_64, ARM64).
The following we will take the convenience package workflow for Apache Cloudberry core project as an example.
You can click the Run workflow button, then input the following files:
- Release version, e.g.
2.1.0-incubating - Release source tarball URL, e.g.
https://downloads.apache.org/incubator/cloudberry/2.1.0-incubating/apache-cloudberry-2.1.0-incubating-src.tar.gz - GPG signature URL for the source tarball, e.g.
https://downloads.apache.org/incubator/cloudberry/2.1.0-incubating/apache-cloudberry-2.1.0-incubating-src.tar.gz.asc - SHA-512 checksum URL for the source tarball, e.g.
https://downloads.apache.org/incubator/cloudberry/2.1.0-incubating/apache-cloudberry-2.1.0-incubating-src.tar.gz.sha512
After inputting these data, you can click to run. This workflow supports generating the DEB/RPM packages under Rocky8/9/10 and Ubuntu 22.04/24.04 with their checksum files.
But please note, after downloading these DEB/RPM packages, you still need to sign these files with your own GPG key:
gpg --armor --detach-sign --local-user xxx@apache.org apache-cloudberry-incubating-x.x.0-1.elN.x86_64.rpm
Then you can verify the GPG signature:
gpg --verify apache-cloudberry-incubating-x.x.0-1.elN.x86_64.rpm.asc apache-cloudberry-incubating-x.x.0-1.elN.x86_64.rpm
The checksum files are generated along with the convenience packages are made. After download the packages, you can verify the checksum again on your local machine:
sha512sum -c apache-cloudberry-pxf-x.x.0-incubating-src.tar.gz.sha512It would be better to install these convenience binaries on a pure Rocky 8/9/10 or Ubuntu 22.04/24.04 platform and run the basic demo or basic command.
- Install the packages
# For RPM
sudo dnf install -y apache-cloudberry-db-incubating-x.x.0-1.elN.aarch64.rpm
# For DEB
sudo apt update
sudo apt --fix-broken install -y ./apache-cloudberry-db-incubating-x.x.0-1-ubuntuXX.04-adm64.deb
- Start Single-Node Demo Cluster
- Switch to the
gpadminusers:
su - gpadmin
source /usr/local/cloudberry-db/cloudberry-env.sh
- Create a clean demo directory:
mkdir -p ~/cloudberry-demo
cd ~/cloudberry-demo
- Initialize demo cluster:
gpdemo
source ./gpdemo-env.sh
- Verify connection:
psql postgres
- Extract and install:
tar xvf apache-cloudberry-backup-incubating-X.X.0-linux-arm64.tar.gz
cd apache-cloudberry-backup-incubating-X.X.0-linux-arm64
- Run the installation script:
sudo ./install.sh
This script copies the following binaries into the Cloudberry installation bin/ directory:
- gpbackup
- gprestore
- gpbackup_helper
- gpbackup_s3_plugin
- gpbackman (since 2.2+)
- gpbackup_exporter (since 2.2+)
- Run the basic commands:
You can continue following the above Cloudberry test so that you can have a basic Cloudberry demo cluster environment.
## backup the postgres database
gpbackup --dbname postgres
## restore the postgres database
gprestore --dbname postgres --timestamp YYYYMMDDHHMMSS # YYYYMMDDHHMMSS is the timestamp showed in the gpbackup command
- Install the packages.
It's same to the Cloudberry.
- Run the basic commands.
You can continue following the above Cloudberry test so that you can have a basic Cloudberry demo cluster environment.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PXF_HOME=/usr/local/cloudberry-pxf
export PXF_BASE={HOME}/pxf-base
export PATH=/usr/local/cloudberry-pxf/bin:PATH
pxf version
pxf prepare
pxf register
pxf start
pxf status
pxf stop
pxf restart
Upload the package files and their signature and checksum files (RPM/DEB + .asc + .sha512) to the GitHub Release pages. Also, please remember to update the information on the download page on the Cloudberry site.