J'ai essayé d'installer sqlplus en suivant les instructions de ici . Je reçois encore:
sqlplus: command not found
quand je fais sqlplus
de mon terminal.
Je suis un novice sous Ubuntu et j'utilise Ubuntu 12.04.
Tout d’abord, vous devez télécharger Téléchargements Instant Client . Installez alien package pour pouvoir installer les packages rpm en tapant la commande suivante dans le terminal.
Sudo apt-get install alien
Une fois que cela est fait, allez dans le 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éer un 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 s'appelle sqlplus64
.
La chose étrangère n'a pas fonctionné à cause de:
Error: cannot open Name index using db5 - Permission denied (13)
Alors je suis allé avec la solution facile: Téléchargez les fichiers Zip de Oracle (basic et sqlplus), extrayez-les et mettez le dossier dans lequel vous avez mis les fichiers du programme (par exemple, /usr/share
). Créez ensuite un script qui exécute l'exécutable après avoir défini la variable LD_LIBRARY_PATH
, afin de trouver les bibliothèques suivantes:
#!/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 de votre PATH
(exemple: /usr/bin/
), afin que bash le trouve.
Courez 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
installez la bibliothèque avec Sudo apt-get install libaio1
Je pense que cela lien aiderait. C'est assez descriptif. Assurez-vous de suivre toutes les étapes. Toujours si vous avez des problèmes, n'hésitez pas à commenter.
Juste comme un addendum à la grande réponse de @Ketan Patel:
Ce script simple, conservé avec les fichiers rpm téléchargés, lance automatiquement le processus d'installation ultérieure:
#!/usr/bin/env sh
# https://askubuntu.com/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 de libaio au moins dans Ubuntu (et je pense dans Debian aussi). D'autres distributions peuvent avoir besoin d'ajuster ce nom de paquet sur "libaio" ou quel que soit le nom du paquet correspondant.
Edit: Il s’agit ici d’une version améliorée avec wrapping readline (credists for this post ):
#!/usr/bin/env sh
# https://askubuntu.com/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 ça rend la douleur un peu plus supportable ...
Bien sûr, la bonne installation provient des paquets 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 sur lequel le client Oracle est installé.) ), et quelques msb sont optionnels:
./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é avec Sudo 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/