#!/bin/bash # Upgrade libpqxx to version 7.x on Ubuntu 22 # Führen Sie dieses Script auf dem Ubuntu 22 Server aus set -euo pipefail # Farben RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' log_info() { echo -e "${BLUE}[INFO]${NC} $1"; } log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; } log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; } log_error() { echo -e "${RED}[ERROR]${NC} $1"; } log_info "Upgrade libpqxx auf Ubuntu 22 für bessere C++23 Kompatibilität..." # Prüfe aktuelle Version log_info "Aktuelle libpqxx Version:" dpkg -l | grep libpqxx || log_info "libpqxx nicht installiert" # Installiere Build-Dependencies log_info "Installiere Build-Dependencies..." apt update apt install -y \ build-essential \ cmake \ pkg-config \ git \ libpq-dev \ postgresql-server-dev-14 # Lade libpqxx 7.x herunter und kompiliere log_info "Lade libpqxx 7.x herunter..." cd /tmp if [ -d "libpqxx" ]; then rm -rf libpqxx fi git clone https://github.com/jtv/libpqxx.git cd libpqxx # Checkout Version 7.9.2 (stabile Version) git checkout 7.9.2 # Kompiliere und installiere log_info "Kompiliere libpqxx 7.x..." mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local make -j$(nproc) make install # Update library cache ldconfig log_success "libpqxx 7.x erfolgreich installiert!" # Prüfe neue Version log_info "Neue libpqxx Version:" pkg-config --modversion libpqxx log_info "Teste Kompilierung..." cat > /tmp/test_pqxx.cpp << 'EOF' #include #include int main() { std::cout << "libpqxx Version: " << PQXX_VERSION << std::endl; std::cout << "Major Version: " << PQXX_VERSION_MAJOR << std::endl; return 0; } EOF if g++ -o /tmp/test_pqxx /tmp/test_pqxx.cpp -lpqxx -lpq; then log_success "Kompilierung erfolgreich!" /tmp/test_pqxx rm -f /tmp/test_pqxx /tmp/test_pqxx.cpp else log_error "Kompilierung fehlgeschlagen!" rm -f /tmp/test_pqxx /tmp/test_pqxx.cpp fi log_success "libpqxx Upgrade abgeschlossen!" log_info "Sie können jetzt das Projekt mit der neuesten libpqxx Version kompilieren."