由於 EDB 提供的 Postgres Distribution (含原生版本以及企業版本)有包裝自己用的 Python/Perl/Tcl Distribution,於是要安裝想在 EDB/Postgres 用到的 PL/Python / PL/Perl / PL/Tcl 模組,就要針對資料庫程式額外安裝。
EDB-LanguagePack 在 EDB 公司提供的 Stack Builder(/Plus)套件安裝程式上可以取得並安裝。安裝後的預設路徑為 /opt/EnterpriseDB/LanguagePack/9.{4,5}/。另外,這個安裝路徑不能更動。
在此示範於 CentOS 下的 LanguagePack 安裝後的設置方式,Windows 版本請參考本文末的產品安裝手冊內容連結。
[enterprisedb@edbvm ~]# cat /opt/PostgresPlus/9.5AS/etc/sysconfig/plLanguages.config EDB_PERL_VERSION=5.20 EDB_PYTHON_VERSION=3.3 EDB_TCL_VERSION=8.5 EDB_PERL_PATH=/opt/EnterpriseDB/LanguagePack/9.5/Perl-5.20 EDB_PYTHON_PATH=/opt/EnterpriseDB/LanguagePack/9.5/Python-3.3 EDB_TCL_PATH=/opt/EnterpriseDB/LanguagePack/9.5/Tcl-8.5
然後重新啟動資料庫:要注意的是,重啟資料庫需要使用 OS Service 啟動才行,單獨用 pg_ctl restart 會讓 /opt/PostgresPlus/9.5AS/lib/ 下的 pl***.so 抓不到相關的 Library :
[root@edbvm ~]# # CentOS 6 與 7 都適用 [root@edbvm ~]# service ppas-9.5 restart
以上便將環境設置完畢。
接著,便說明如何在 EDB 專屬的 Perl/Python 中安裝套件:
以下紀錄有連上網路的狀況安裝方式,並由此蒐集離線安裝的相依套件清單
Perl 部份
|
(一)線上安裝
[root@edbvm ~]# /opt/EnterpriseDB/LanguagePack/9.5/Perl-5.20/bin/cpan App::cpanminus
使用 cpanminus 安裝 Data-Dumper 為例
[root@edbvm ~]# /opt/EnterpriseDB/LanguagePack/9.5/Perl-5.20/lib/bin/cpanm Data::Dumper
所有安裝好的模組都會出現在 /opt/EnterpriseDB/LanguagePack/9.5/lib/ 底下。
測試一下有沒有安裝好
[root@edbvm ~]# /opt/EnterpriseDB/LanguagePack/9.5/Perl-5.20/bin/perl -e 'use Data::Dumper;'
沒有出現 error 的話就是安裝成功了。
(二)離線安裝
在一般 Server Farm,作業系統通常會是與外部網路隔離的情形,所以得手動安裝 ...,這也表示要自己去追溯套件相依性 ...
不過由於 Language-Pack 提供的的 Perl Distribution 的配置環境對於同一個資料庫版本一樣,因此可以先在可以連網的測試機上用 cpanminus 裝一遍,把相依清單抓出來(Perl CPAN Minus 的套件安裝紀錄會位於 ~/.cpanm/work/************.*****/build.log 裡面),就能依照清單安裝了。
以下為 Perl 模組安裝方式(手動編譯)
[root@edbvm ~]# /opt/EnterpriseDB/LanguagePack/9.5/Perl-5.20/bin/perl Build.pl [root@edbvm ~]# /opt/EnterpriseDB/LanguagePack/9.5/Perl-5.20/bin/perl Makefile.pl [root@edbvm ~]# # 上兩列指令依照模組所提供的檔案二選一 [root@edbvm ~]# make [root@edbvm ~]# make test # 取決於模組是否需要 [root@edbvm ~]# make install
Python 3 部份
|
如同一般的 Python Distribution,裡面提供了 Python Setuptools、pip 等線上安裝工具。選一個喜歡的,直接像一般使用方式即可。
以下安裝 cx_Oracle(某一款連線到 Oracle 的 Python 模組)為例
[root@edbvm ~]# /opt/EnterpriseDB/LanguagePack/9.4/Python-3.3/bin/easy_install cx_Oracle
不過額外提醒一下,這需要裝 Oracle-Instant-Client 才行使用
取得相依套件的方式和 Perl 類似,利用 Package Manager 的安裝紀錄找出相依套件就好了。
那 Tcl 呢?目前還沒有附上 Package Manager .... 所以等遇到需求再說囉 ~
參考:
沒有留言:
張貼留言