Réponses:
Tout d'abord, vous devez télécharger les téléchargements instantanés du client . Installez un package étranger pour pouvoir installer des packages rpm en tapant la commande suivante dans le terminal.
sudo apt-get install alien
Une fois cela fait, accédez au dossier où se trouvent les fichiers rpm et exécutez ce qui suit:
sudo alien -i oracle-instantclient*-basic*.rpm
sudo alien -i oracle-instantclient*-sqlplus*.rpm
sudo alien -i oracle-instantclient*-devel*.rpm
Vous devez installer libaio.so
. Tapez la commande suivante pour le faire:
sudo apt-get install libaio1
Créez le fichier de configuration Oracle:
sudo sensible-editor /etc/ld.so.conf.d/oracle.conf
Mettez cette ligne dans ce fichier:
/usr/lib/oracle/<your version>/client/lib/
Remarque - pour les installations 64 bits, le chemin sera:
/usr/lib/oracle/<your version>/client64/lib/
Mettez à jour la configuration en exécutant la commande suivante:
sudo ldconfig
Essayez de vous connecter en utilisant:
sqlplus username/password@//dbhost:1521/SID
ou:
sqlplus testuser/password
Notez que si vous avez installé la version 64 bits, le client est appelé sqlplus64
.
La chose extraterrestre n'a pas fonctionné à cause de:
Error: cannot open Name index using db5 - Permission denied (13)
J'ai donc opté pour la solution simple: téléchargez les fichiers zip à partir d' Oracle (de base et sqlplus), extrayez-les et placez le dossier dans lequel vous placez les fichiers de programme (par exemple /usr/share
). Créez ensuite un script qui exécute l'exécutable après avoir défini la LD_LIBRARY_PATH
variable, afin que les bibliothèques soient trouvées:
#!/bin/bash
DIR=/usr/share/instantclient_12_2 # <------- adjust this to the path you use
export LD_LIBRARY_PATH="$DIR"
"$DIR"/sqlplus "$@"
Appelez-le sqlplus
, rendez-le exécutable ( chmod 755 sqlplus
) et placez-le dans un répertoire sur votre PATH
(par exemple /usr/bin/
), afin que bash le trouve.
Exécutez-le comme
sqlplus user/password@host:port/service
Si vous obtenez
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
installer la bibliothèque avec sudo apt-get install libaio1
Je pense que ce lien serait utile. C'est assez descriptif. Assurez-vous de suivre toutes les étapes. Si vous avez des problèmes, n'hésitez pas à commenter.
Bien sûr, l'installation correcte est à partir des packages officiels comme ci-dessus ( téléchargez Instant Client Downloads ), mais vous pouvez obtenir un sqlplus fonctionnel en copiant simplement ces fichiers (vous pouvez le trouver sur n'importe quel ordinateur avec le client Oracle installé), et certains msb sont facultatifs :
./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
En tant que dépendance supplémentaire, j'ai inclus libaio.so
- il peut être installé avecsudo apt-get install libaio1
Ainsi, un exemple d'utilisation peut être:
cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
Tout comme un addendum à la grande réponse de @Ketan Patel:
Ce script simple, conservé avec les fichiers rpm téléchargés, accélère le processus pour les autres installations:
#!/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!!";
NOTE: Il installe
libaio1
qui est le nom du libaio au moins dans Ubuntu (et je pense aussi dans Debian). D'autres distributions peuvent avoir besoin d'ajuster ce nom de package sur "libaio" ou quel que soit le nom de package correspondant.
Edit: Ici, il s'agit d'une version améliorée avec un habillage readline (crédistes pour ce post ):
#!/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!!";
C'est toujours Oracle, mais au moins cela rend la douleur un peu plus supportable ...
sudo alien -i