Respuestas:
En primer lugar, debe descargar las descargas instantáneas del cliente . Instale el paquete alien para que pueda instalar paquetes rpm escribiendo el siguiente comando en la terminal.
sudo apt-get install alien
Una vez hecho esto, vaya a la carpeta donde se encuentran los archivos rpm y ejecute lo siguiente:
sudo alien -i oracle-instantclient*-basic*.rpm
sudo alien -i oracle-instantclient*-sqlplus*.rpm
sudo alien -i oracle-instantclient*-devel*.rpm
Necesitas instalar libaio.so
. Escriba el siguiente comando para hacerlo:
sudo apt-get install libaio1
Crear archivo de configuración de Oracle:
sudo sensible-editor /etc/ld.so.conf.d/oracle.conf
Pon esta línea en ese archivo:
/usr/lib/oracle/<your version>/client/lib/
Nota: para instalaciones de 64 bits, la ruta será:
/usr/lib/oracle/<your version>/client64/lib/
Actualice la configuración ejecutando el siguiente comando:
sudo ldconfig
Intenta conectarte usando:
sqlplus username/password@//dbhost:1521/SID
o:
sqlplus testuser/password
Tenga en cuenta que si instaló la versión de 64 bits, se llama al cliente sqlplus64
.
Lo extraño no funcionó por:
Error: cannot open Name index using db5 - Permission denied (13)
Así que elegí la solución fácil: descargue los archivos zip de Oracle (básico y sqlplus), extráigalos y coloque la carpeta donde coloca los archivos de programa (por ejemplo /usr/share
). Luego, cree un script que ejecute el ejecutable después de configurar la LD_LIBRARY_PATH
variable, de modo que se encuentren las bibliotecas:
#!/bin/bash
DIR=/usr/share/instantclient_12_2 # <------- adjust this to the path you use
export LD_LIBRARY_PATH="$DIR"
"$DIR"/sqlplus "$@"
Llámelo sqlplus
, hágalo ejecutable ( chmod 755 sqlplus
) y colóquelo en un directorio en su PATH
(por ejemplo /usr/bin/
), para que bash lo encuentre.
Ejecútalo como
sqlplus user/password@host:port/service
Si lo consigues
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
instalar la biblioteca con sudo apt-get install libaio1
Creo que este enlace ayudaría. Es bastante descriptivo. Asegúrate de seguir todos los pasos. Aún así, si tiene algún problema, no dude en comentar.
Por supuesto, la instalación correcta es de paquetes oficiales como el anterior ( descargue las descargas instantáneas del cliente ), pero puede obtener un sqlplus completo con solo copiar estos archivos (puede encontrarlo en cualquier computadora con el cliente oracle instalado), y algunos msb son opcionales :
./sqlplus
./sqlplus/mesg
./sqlplus/mesg/sp1zhs.msb
./sqlplus/mesg/sp2zhs.msb
./sqlplus/mesg/sp2ptb.msb
./sqlplus/mesg/sp2us.msb
./sqlplus/mesg/sp1us.msb
./sqlplus/mesg/sp1ptb.msb
./sqlplus/mesg/cpyja.msb
./sqlplus/mesg/sp1ja.msb
./sqlplus/mesg/cpyus.msb
./sqlplus/mesg/cpyzhs.msb
./sqlplus/mesg/cpyptb.msb
./sqlplus/mesg/sp2ja.msb
./sqlplus/sqlplus
./README
./lib
./lib/libaio.so.1
./lib/libclntsh.so.11.1
./lib/libsqlplus.so
./lib/libnnz11.so
./lib/libociei.so
Como dependencia adicional, incluí libaio.so
: se puede instalar consudo apt-get install libaio1
Entonces, un uso de muestra puede ser:
cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
Solo como una adición a la gran respuesta de @Ketan Patel:
Este simple script, guardado junto con los archivos rpm descargados, automatiza el proceso para otras instalaciones:
#!/usr/bin/env sh
# /ubuntu//a/207145/585248
CURRDIR="$(pwd)";
cd $(dirname "${0}");
# Tools and dependencies:
sudo apt-get update
sudo apt-get install alien libaio1
# Oracle Packages:
echo "Installing instantclient-basic..."
sudo alien -i oracle-instantclient*-basic*.rpm
echo "Installing instantclient-sqlplus..."
sudo alien -i oracle-instantclient*-sqlplus*.rpm
echo "Installing instantclient-devel..."
sudo alien -i oracle-instantclient*-devel*.rpm
echo "Configuring LD path..."
# LD config:
echo /usr/lib/oracle/*/client64/lib \
| sort -V \
| tail -n 1 \
| sudo tee /etc/ld.so.conf.d/oracle.conf \
;
sudo ldconfig
cd "${CURRDIR}"
echo "DONE!!";
NOTA: Instala
libaio1
cuál es el nombre de libaio al menos en Ubuntu (y creo que también en Debian). Es posible que otras distribuciones necesiten ajustar este nombre de paquete a "libaio" o cualquiera que sea el nombre del paquete correspondiente.
Editar: Aquí hay una versión mejorada con ajuste de línea de lectura (acreedores para esta publicación ):
#!/usr/bin/env sh
# /ubuntu//a/207145/585248
CURRDIR="$(pwd)";
cd $(dirname "${0}");
# Tools and dependencies:
sudo apt-get update
sudo apt-get install alien libaio1 rlwrap
# Oracle Packages:
echo "Installing instantclient-basic..."
sudo alien -i oracle-instantclient*-basic*.rpm
echo "Installing instantclient-sqlplus..."
sudo alien -i oracle-instantclient*-sqlplus*.rpm
echo "Installing instantclient-devel..."
sudo alien -i oracle-instantclient*-devel*.rpm
# LD config:
echo "Configuring LD path..."
echo /usr/lib/oracle/*/client64/lib \
| sort -V \
| tail -n 1 \
| sudo tee /etc/ld.so.conf.d/oracle.conf \
;
sudo ldconfig
# Readline wrapping:
echo "Configuring readline wrapping..."
echo "WARNING: You need to manually execute this command or re-read /etc/profile"
echo "if you want readline wrapped 'sqlplus' alias to work in current session".
(cat | sudo tee /etc/profile.d/sqlplus_rlwrap.sh) <<!EOF
alias sqlplus="rlwrap -i -f ~/.sqlplus_history -H ~/.sqlplus_history -s 30000 sqlplus64"
!EOF
touch ~/.sqlplus_history
cd "${CURRDIR}"
echo "DONE!!";
Todavía es Oracle, pero al menos hace que el dolor sea un poco más soportable ...
sudo alien -i