@@ -32,7 +32,6 @@ cleanup() {
3232command -v wget > /dev/null || { log " Error: wget is missing" ; exit 1; }
3333command -v unzip > /dev/null || { log " Error: unzip is missing" ; exit 1; }
3434command -v tar > /dev/null || { log " Error: tar is missing" ; exit 1; }
35- command -v ldconfig > /dev/null || { log " Error: ldconfig is missing" ; exit 1; }
3635
3736log " Starting GaussDB driver installation..."
3837
@@ -124,40 +123,53 @@ if [[ -z "$DRIVER_PACKAGE" ]]; then
124123fi
125124
126125log " Copying driver package: $DRIVER_PACKAGE to $LIB_DIR "
127- sudo cp " $DRIVER_PACKAGE " " $LIB_DIR /" || { log " Error: Failed to copy driver package" ; exit 1; }
126+ log " $DRIVER_PACKAGE " " $LIB_DIR /"
127+ cp " $DRIVER_PACKAGE " " $LIB_DIR /"
128128
129129# ===================
130130# Extract Driver Package
131131# ===================
132132log " Extracting driver package to $LIB_DIR ..."
133- tar -zxvf " $LIB_DIR /$( basename " $DRIVER_PACKAGE " ) " -C " $LIB_DIR /" >> " $LOG_FILE " 2>&1 || { log " Error: Failed to extract driver package" ; exit 1; }
133+ tar --no-same-owner - zxvf " $LIB_DIR /$( basename " $DRIVER_PACKAGE " ) " -C " $LIB_DIR /" >> " $LOG_FILE " 2>&1 || { log " Error: Failed to extract driver package" ; exit 1; }
134134rm -f " $LIB_DIR /$( basename " $DRIVER_PACKAGE " ) "
135- sudo chmod 755 -R $LIB_DIR
135+ chmod 755 -R " $LIB_DIR "
136136
137137# ===================
138138# Configure Dynamic Link Library
139139# ===================
140- log " Configuring dynamic link library path..."
141- echo " $LIB_DIR /lib" | sudo tee /etc/ld.so.conf.d/gauss-libpq.conf > /dev/null
142- if ! grep -Fx " $LIB_DIR /lib" /etc/ld.so.conf > /dev/null ; then
143- sudo sed -i " 1s|^| $LIB_DIR /lib\n| " /etc/ld.so.conf
140+ log " Configuring user-level dynamic link library path..."
141+ if ! grep -q " GaussDB_driver_lib /lib" " $HOME /.bashrc " 2 > /dev/null; then
142+ echo " export LD_LIBRARY_PATH= $LIB_DIR /lib: \$ LD_LIBRARY_PATH " >> " $HOME /.bashrc "
143+ log " Added LD_LIBRARY_PATH to ~/.bashrc "
144144fi
145- sudo sed -i ' /gauss/d' /etc/ld.so.conf
146- sudo ldconfig
147-
148-
145+ export LD_LIBRARY_PATH=$LIB_DIR /lib:$LD_LIBRARY_PATH
149146
150147# ===================
151148# Verify Installation
152149# ===================
153- if ldconfig -p | grep -q libpq; then
150+ if ls " $LIB_DIR /lib " 2> /dev/null | grep -q libpq; then
154151 cleanup
155152 log " ============================================================="
156- log " GaussDB driver installed successfully!"
153+ log " GaussDB driver installed successfully (user mode) !"
157154 log " Dynamic link library configured: $LIB_DIR /lib"
158155 log " Log file: $LOG_FILE "
159156 log " ============================================================="
160157else
161- log " Error: Dynamic link library verification failed "
158+ log " Error: libpq not found in $LIB_DIR /lib "
162159 exit 1
160+ fi
161+
162+ # ===================
163+ # Reload Environment (only if sourced)
164+ # ===================
165+ if [[ " $0 " != " $BASH_SOURCE " ]]; then
166+ log " Reloading ~/.bashrc so LD_LIBRARY_PATH takes effect..."
167+ source ~ /.bashrc
168+ log " Environment reloaded successfully."
169+ else
170+ log " ============================================================="
171+ log " Tip: To make the driver available immediately, run:"
172+ log " source install_gaussdb_driver.sh"
173+ log " or manually execute: source ~/.bashrc"
174+ log " ============================================================="
163175fi
0 commit comments