Cài đặt công cụ biên dịch và tiện ích mạng cơ bản
Bước đầu tiên là cài đặt các gói công cụ nền tảng để biên dịch code nguồn và tải các gói phụ thuộc.
Các gói này bao gồm bộ công cụ biên dịch (GCC, Make), tiện ích tải về (wget, curl) và các thư viện phát triển cần thiết.
sudo apt update && sudo apt install -y build-essential wget curl git
Kết quả mong đợi: Hệ thống hiển thị danh sách các gói đã được cài đặt thành công, không có lỗi về dependency.
Verify kết quả cài đặt
Kiểm tra xem các công cụ đã sẵn sàng chưa bằng cách gọi phiên bản của chúng.
gcc --version && make --version && wget --version
Kết quả mong đợi: Xuất hiện thông tin phiên bản của GCC (thường là 13.x trên Ubuntu 24.04), Make và Wget.
Cài đặt các thư viện phụ thuộc của PostgreSQL và Greenplum
Greenplum được xây dựng dựa trên PostgreSQL, do đó cần cài đặt đầy đủ các thư viện phát triển (dev libraries) để biên dịch thành công.
Nhóm gói này bao gồm thư viện cho SSL, nén dữ liệu, xử lý JSON, địa lý và các giao thức mạng.
sudo apt install -y \
libreadline-dev \
zlib1g-dev \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
libpq-dev \
libjson-c-dev \
libprotobuf-dev \
protobuf-compiler \
liblz4-dev \
libsnappy-dev \
libzstd-dev \
libedit-dev \
libjemalloc-dev \
libnuma-dev \
libyaml-dev \
libgssapi-krb5-dev \
libldap2-dev \
libhdf5-dev \
libpqxx-dev \
flex \
bison \
libevent-dev \
libgssapi-krb5-dev \
libpq-dev \
postgresql-client-16
Kết quả mong đợi: APT cài đặt tất cả các gói trên và giải quyết tự động các dependency còn thiếu.
Verify kết quả cài đặt thư viện
Kiểm tra sự tồn tại của các header file quan trọng trong thư mục `/usr/include`.
ls /usr/include/readline.h && ls /usr/include/openssl/ssl.h && ls /usr/include/json-c/json.h
Kết quả mong đợi: Lệnh ls trả về tên file, chứng tỏ các header file đã được cài đặt sẵn sàng cho quá trình biên dịch.
Cấu hình OpenLDAP và Kerberos (Tùy chọn cho Authentication)
Nếu mô hình Hybrid OLTP/OLAP yêu cầu bảo mật cao với xác thực tập trung (LDAP) hoặc bảo mật mạng (Kerberos), cần cấu hình các dịch vụ này.
Trên Ubuntu 24.04, chúng ta cài đặt các gói phát triển và công cụ quản lý cơ bản.
sudo apt install -y slapd ldap-utils krb5-user krb5-config libgssapi-krb5-dev
Kết quả mong đợi: Các gói được cài đặt, hệ thống có thể chạy các lệnh `ldapsearch` và `kadmin`.
Cấu hình file Kerberos principal
Tạo file cấu hình `krb5.conf` để chỉ định Realm và KDC (Key Distribution Center) của môi trường.
File này cần được đặt tại `/etc/krb5.conf` với nội dung sau (thay đổi `YOUR-REALM.COM` và `KDC.HOSTNAME` theo thực tế).
sudo tee /etc/krb5.conf
Kết quả mong đợi: File `/etc/krb5.conf` được tạo thành công, nội dung khớp với cấu hình Realm của bạn.
Verify cấu hình Kerberos
Thử kết nối đến KDC để đảm bảo file cấu hình đúng định dạng và mạng thông suốt.
kinit admin/YOUR-REALM.COM
Kết quả mong đợi: Nếu KDC đang chạy, hệ thống sẽ yêu cầu nhập mật khẩu. Nếu không có KDC thật, lỗi "KDC unreachable" là chấp nhận được, miễn là không báo lỗi cấu hình file.
Kiểm tra phiên bản GCC và Toolchain tương thích
Greenplum (đặc biệt là các bản mới) yêu cầu phiên bản GCC cụ thể để biên dịch các tính năng hiện đại của C++.
Ubuntu 24.04 mặc định đi kèm GCC 13.x, cần kiểm tra xem nó có hỗ trợ các tiêu chuẩn C++17/20 không.
gcc --version
Kết quả mong đợi: Hiển thị phiên bản GCC 13.x trở lên. Nếu thấy phiên bản thấp hơn 9, cần cài đặt thêm `gcc-13` và `g++-13`.
Cài đặt GCC mới nhất nếu cần
Trong trường hợp hệ thống mặc định không đáp ứng yêu cầu của bản Greenplum cụ thể, hãy cài đặt gói GCC mới nhất từ repo.
sudo apt install -y gcc-13 g++-13
Kết quả mong đợi: Các gói `gcc-13` và `g++-13` được cài đặt thành công.
Cấu hình symlink để sử dụng GCC mới nhất
Cập nhật liên kết mềm để lệnh `gcc` và `g++` trỏ đến phiên bản 13 (hoặc cao nhất hiện có).
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-13 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-13 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-13 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-13
Kết quả mong đợi: Lệnh `update-alternatives` chạy xong, không có lỗi.
Verify final GCC version
Kiểm tra lại để đảm bảo lệnh `gcc` hiện tại trỏ đến phiên bản mới.
gcc --version && which gcc
Kết quả mong đợi: Phiên bản hiển thị là 13.x và đường dẫn là `/usr/bin/gcc` (hoặc symlink trỏ đến `/usr/bin/gcc-13`).
Điều hướng series:
Mục lục: Series: Triển khai Database Hybrid OLTP/OLAP với Greenplum trên Ubuntu 24.04
« Phần 1: Chuẩn bị môi trường Ubuntu 24.04 và yêu cầu phần cứng cho Greenplum
Phần 3: Tải về, biên dịch và cài đặt Greenplum từ nguồn code »