我們最近得到了一個小型的紅帽服務器來試驗閃亮服務器。我們的IT部門運行着閃亮的服務器並安裝了Oracle客戶端,但我無法使ROracle在閃亮的服務器上工作。他們(IT)已經決定它是一個應用程序問題,並且正在開始放棄...用閃亮服務器上的ROracle連接到Oracle數據庫
最初,ROracle根本無法在服務器上工作,但我們通過將LD_LIBRARY_PATH設置爲在我的用戶帳戶中工作我的.bashrc文件。完成後,我可以登錄服務器,並從R查詢數據庫。我甚至可以使用runApp()從R運行我的閃亮應用程序。
當我嘗試通過閃亮服務器訪問同一個應用程序時,以下錯誤:
Listening on port 40679
Loading required package: DBI
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/lib64/R/library/ROracle/libs/ROracle.so':
libclntsh.so.11.1: cannot open shared object file: No such file or directory
Error : package or namespace load failed for 'ROracle'
Error : package or namespace load failed for 'ROracle'
這是我讓我的帳戶之前,我設置了LD_LIBRARY_PATH變量相同的錯誤。服務器以用戶閃亮的方式運行,但顯然不會運行任何啓動腳本,因此修復了我的用戶的問題將無法修復閃亮的用戶。這一切都遠遠超出我的知識領域,正如我所說的,我們的IT部門表示他們沒有想法。
我沒有sudo訪問服務器,所以我可以嘗試的東西是有限的。我嘗試從我的server.R腳本中設置LD_LIBRARY_PATH,然後使用sys.setenv()加載ROracle並使用system(),但這些都不起作用。我們一直試圖幫助我的DBA嘗試在/etc/init/shiny-server.conf中設置LD_LIBRARY_PATH,但這看起來並不奏效。
我真的很希望這裏的某個人有一些想法。
謝謝
你在shiny-server conf中使用了哪種語法?導出LD_LIBRARY_PATH =?或者只是LD_LIBRARY_PATH =? – codeblur