前言
最近專案需要,在原有同事的debian系統映象裡需要安裝cx_oracle對接oracle資料庫,安裝cx_oracle資料庫很簡單,打映象直接」run pip install cx_oracle「就可以了,但是實際對接資料庫各種問題,在此記錄下。
問題:在使用cx_oracle對接資料庫提示報錯資訊:」databaseerror: (cx_oracle.databaseerror) dpi-1047: cannot locate a 64-bit oracle client library: "libclntsh.so": cannot open shared object file: no such file or directory...「,大概的意思就是本地沒有乙個oracle客戶端,原來cx_oracle對接資料庫服務需要本地有個客戶端,通過客戶端去連線資料庫,真是麻煩,以為乙個cx_oracle就可以搞定了。
解決:
鏈結裡對應版本有basic、basiclite、sqlplus、tools、devel、jdbc和odbc一堆,什麼玩意。。。最後了解到只需要安裝必須的basic和basiclite二選一,剩餘的都是可選的,我找了個回答是安裝basic和sqlplus,我也照著安裝了。
2. 於是準備用dockerfile,from同事的基礎映象進行安裝,用yum和rpm進行安裝時才發現,這原來是個debian...,陌生不熟悉用的系統,於是乎google、、、、發現apt-get可以在debian上用,於是用apt-get安裝了alien,用alien才可以安裝rpm包;
3. 一切準備好後,準備打映象了,執行exit 0了。。。。,mdzz,有互動式安裝確認,apt-get時需要-y --force-yes;
4. emm最後成功了!強調一下,使用cx_oracle時會在ld_library_path下找libclntsh.so,應該就是啟動客戶端啥啥的吧,所以我在打映象的時候env了乙個環境變數,也可以在你的指令碼裡用os設定環境變數。
5. 最後貼上我的dockerfile.yml,希望可以解決碰到相同問題的同學~~
#環境變數硬編碼及時區
env ld_library_path /usr/lib/oracle/11.2/client64/lib:$ld_library_path
# 安裝alien用於安裝rpm包
run apt-get -y --force-yes install alien
#**等加入映象,複製到指定目錄
run mkdir -p /data_tmp
copy . /data_tmp
run alien -i /data_tmp/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
run alien -i /data_tmp/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
debian 系統安裝
cpu intel core i5 480m 主頻 2.66ghz 虛4核 記憶體 ddr3 2g 1 硬碟 sata 500g 5400轉 網絡卡 10 100 1000mbps自適應網絡卡 支援bgn協議的無線區域網卡 當然可以在這裡選擇適合自己的系統 無論是在grub 下用fdisk h 22...
debian系統下安裝mongodb
sudo apt key adv keyserver hkp recv ea3129272.新增 源 在目錄為 etc apt sources.list echo deb wheezy mongodb org 3.2 main sudo tee etc apt sources.list.d mong...
Debian系統軟體安裝
檢視已安裝軟體 建議用root安裝,有一些工具,使用非root使用者安裝後,仍然不識別命令,可能跟許可權有關。netstat command not found 說明沒有安裝netstat工具,而該工具在 net tools 工具包內。apt get install net tools ok.再說一...