Initial commit
This commit is contained in:
112
install_odbc_debian.sh
Executable file
112
install_odbc_debian.sh
Executable file
@@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
# ODBC Driver Installation Script for Debian 12
|
||||
# This script installs Microsoft ODBC Driver 18 for SQL Server
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "ODBC Driver Installation for Debian 12"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Please run with sudo: sudo bash install_odbc_debian.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Detect OS
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
OS=$ID
|
||||
VER=$VERSION_ID
|
||||
echo "Detected OS: $PRETTY_NAME"
|
||||
else
|
||||
echo "Cannot detect OS version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Clean up any corrupted repository files
|
||||
echo ""
|
||||
echo "Step 1: Cleaning up any previous installation attempts..."
|
||||
if [ -f /etc/apt/sources.list.d/mssql-release.list ]; then
|
||||
echo "Removing corrupted mssql-release.list..."
|
||||
rm -f /etc/apt/sources.list.d/mssql-release.list
|
||||
fi
|
||||
|
||||
# Install prerequisites
|
||||
echo ""
|
||||
echo "Step 2: Installing prerequisites..."
|
||||
apt-get update
|
||||
apt-get install -y curl gnupg2 apt-transport-https ca-certificates
|
||||
|
||||
# Add Microsoft GPG key
|
||||
echo ""
|
||||
echo "Step 3: Adding Microsoft GPG key..."
|
||||
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
|
||||
|
||||
# Add Microsoft repository based on OS
|
||||
echo ""
|
||||
echo "Step 4: Adding Microsoft repository..."
|
||||
if [ "$OS" = "debian" ]; then
|
||||
if [ "$VER" = "12" ]; then
|
||||
curl https://packages.microsoft.com/config/debian/12/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
|
||||
elif [ "$VER" = "11" ]; then
|
||||
curl https://packages.microsoft.com/config/debian/11/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
|
||||
else
|
||||
echo "Unsupported Debian version: $VER"
|
||||
exit 1
|
||||
fi
|
||||
elif [ "$OS" = "ubuntu" ]; then
|
||||
curl https://packages.microsoft.com/config/ubuntu/$VER/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
|
||||
else
|
||||
echo "Unsupported OS: $OS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update package list
|
||||
echo ""
|
||||
echo "Step 5: Updating package list..."
|
||||
apt-get update
|
||||
|
||||
# Install ODBC Driver
|
||||
echo ""
|
||||
echo "Step 6: Installing ODBC Driver 18 for SQL Server..."
|
||||
ACCEPT_EULA=Y apt-get install -y msodbcsql18
|
||||
|
||||
# Install unixODBC development headers
|
||||
echo ""
|
||||
echo "Step 7: Installing unixODBC development headers..."
|
||||
apt-get install -y unixodbc-dev
|
||||
|
||||
# Verify installation
|
||||
echo ""
|
||||
echo "Step 8: Verifying installation..."
|
||||
if odbcinst -q -d -n "ODBC Driver 18 for SQL Server" > /dev/null 2>&1; then
|
||||
echo "✓ ODBC Driver 18 for SQL Server installed successfully"
|
||||
odbcinst -q -d -n "ODBC Driver 18 for SQL Server"
|
||||
else
|
||||
echo "✗ ODBC Driver installation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for ODBC Driver 17 as fallback
|
||||
if odbcinst -q -d -n "ODBC Driver 17 for SQL Server" > /dev/null 2>&1; then
|
||||
echo "✓ ODBC Driver 17 for SQL Server also available"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Installation completed successfully!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Install Python dependencies: pip install -r requirements.txt"
|
||||
echo "2. Install the framework: pip install -e ."
|
||||
echo "3. Test the installation: drt --version"
|
||||
echo ""
|
||||
echo "For Windows Authentication, you'll also need to:"
|
||||
echo "1. Install Kerberos: apt-get install -y krb5-user"
|
||||
echo "2. Configure /etc/krb5.conf with your domain settings"
|
||||
echo "3. Get a Kerberos ticket: kinit username@YOUR_DOMAIN.COM"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user