升级 Debian 上的 SQL*Plus 的实用步骤
升级思路与准备
sqlplus -vwhich sqlplusldd $(which sqlplus) | grep libclntshsudo apt-get install -y libaio1 unixodbc unixodbc-dev方式一 ZIP 包覆盖升级(推荐)
sudo mv /opt/oracle/instantclient_XX_X /opt/oracle/instantclient_XX_X.baksudo unzip instantclient-basic-linux.x64-XX.X.X.X.X.zip -d /opt/oraclesudo unzip instantclient-sqlplus-linux.x64-XX.X.X.X.X.zip -d /opt/oraclecd /opt/oracle/instantclient_XX_X && sudo mkdir -p lib && sudo mv *.so* lib//etc/profile.d/oracle.sh 以对所有用户生效):
echo 'export LD_LIBRARY_PATH=/opt/oracle/instantclient_XX_X/lib:$LD_LIBRARY_PATH' | sudo tee /etc/profile.d/oracle.shecho 'export PATH=/opt/oracle/instantclient_XX_X:$PATH' | sudo tee -a /etc/profile.d/oracle.shsource /etc/profile.d/oracle.shsqlplus -v(应显示新版本)ldd $(which sqlplus) | grep libclntsh(应指向新目录的库)方式二 使用 RPM 包与 alien 升级(备选)
sudo apt-get install -y aliensudo alien -d oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpmsudo alien -d oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpmsudo dpkg -i oracle-instantclient-basic_21.1.0.0.0-1_amd64.debsudo dpkg -i oracle-instantclient-sqlplus_21.1.0.0.0-1_amd64.deb/usr/lib/oracle/<版本>/client64):
echo 'export ORACLE_HOME=/usr/lib/oracle/21.1/client64' | sudo tee /etc/profile.d/oracle.shecho 'export PATH=$ORACLE_HOME/bin:$PATH' | sudo tee -a /etc/profile.d/oracle.shecho 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib' | sudo tee -a /etc/profile.d/oracle.shsource /etc/profile.d/oracle.shsqlplus -v、ldd $(which sqlplus)。常见问题与排查
LD_LIBRARY_PATH 是否指向新版本的 lib 目录;必要时用 sudo ldconfig 刷新缓存,或确认软链接是否正确。libsqlplus.so 等库文件对运行用户可读可执行(如 chmod +r /opt/oracle/instantclient_XX_X/lib/libsqlplus.so)。sqlplus -v 仍显示旧版本,说明 PATH 或 LD_LIBRARY_PATH 仍指向旧目录,检查并修正环境变量;多用户环境请统一在 /etc/profile.d/oracle.sh 中设置。