Last active
January 6, 2020 23:29
-
-
Save floer32/5547377 to your computer and use it in GitHub Desktop.
CentOS 6: Set up Oracle Instant Client and Python package cx_Oracle
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# INSTALL ORACLE INSTANT CLIENT # | |
################################# | |
# NOTE: Oracle requires at least 1176 MB of swap (or something around there). | |
# If you are using CentOS in a VMWare VM, there's a good chance that you don't have enough by default. | |
# If this describes you and you need to add more swap, see the | |
# "Adding a Swap File to a CentOS System" section, here: | |
# http://www.techotopia.com/index.php/Adding_and_Managing_CentOS_Swap_Space | |
# Install basic dependencies | |
sudo yum -y install libaio bc flex | |
echo "Now go get some the following two RPMs ..." | |
echo "- basic: oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm" | |
echo "- SDK/devel: oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm" | |
echo "... from this URL: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html" | |
echo "WARNING: It's pretty annoying, they make you sign up for an Oracle account, etc." | |
echo 'I will assume you have put these two files are into ~/Downloads' | |
echo "Press any key once you're ready" && read -n 1 -s | |
sudo rpm -ivh ~/Downloads/oracle-instantclient11.2-basic-* | |
sudo rpm -ivh ~/Downloads/oracle-instantclient11.2-devel-* | |
# SET ENVIRONMENT VARIABLES # | |
############################# | |
# Source for this section: http://cx-oracle.sourceforge.net/BUILD.txt | |
# (SIDENOTE: I had to alter it by doing some digging around for where the Oracle RPMs really installed to; | |
# if you ever need to do this, do a command like this: | |
# rpm -qlp <rpm_file_of_concern.rpm>) | |
echo '# Convoluted undocumented Oracle bullshit.' >> $HOME/.bashrc | |
echo 'export ORACLE_VERSION="11.2"' >> $HOME/.bashrc | |
echo 'export ORACLE_HOME="/usr/lib/oracle/$ORACLE_VERSION/client64/"' >> $HOME/.bashrc | |
echo 'export PATH=$PATH:"$ORACLE_HOME/bin"' >> $HOME/.bashrc | |
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$ORACLE_HOME/lib"' >> $HOME/.bashrc | |
. $HOME/.bashrc | |
# INSTALL cx_Oracle # | |
##################### | |
pip install cx_Oracle |
If you are facing the problem of unable to find oci.h like i do, you need to install the SDK for instant client packge, apparently in the new version the headers has been separated into a different download.
Instant Client Package - SDK: Additional header files and an example makefile for developing Oracle applications with Instant Client
This article and the comments were really helpful. @2 hours 21 minutes of frustration could have been avoided if I found this earlier/
Thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This was really helpful, thank you. I can confirm it works on Oracle v12.1 (with RHEL6) as well. For the record (and to help future searchers), the error I was getting before I followed these instructions was something like:
... "/site/python2.7" failed with error code 1 in /tmp/pip-build-MBbOFN/cx-Oracle