IT

OS X Mavericks에 RODBC/ROACLE 패키지 설치

itgroup 2023. 7. 17. 20:53
반응형

OS X Mavericks에 RODBC/ROACLE 패키지 설치

RODBC, ROracle 또는 RGtk2와 같은 래틀에 사용되는 패키지를 설치하려고 합니다.제가 매버릭스와 3.1.1 R을 갖춘 Mac에서 이러한 애플리케이션을 사용할 수 있도록 누군가가 이 문제를 해결할 수 있도록 도와주시면 정말 감사하겠습니다.

RODBC와 RGtk2 모두에 대해 다음과 같은 오류가 발생합니다.

'RGtk2' 패키지는 소스 패키지로 사용할 수 있지만 이진 패키지로는 사용할 수 없습니다. install.packages: 패키지 'RGtk2'는 사용할 수 없습니다(R 버전 3.1.1의 경우).

type='source'를 사용하려고 하면 다운로드하거나 다운로드를 시작할 수 있지만 다음과 같은 오류 메시지가 표시됩니다.

install.packages의 경고: 'RODBC' 패키지의 설치가 0이 아닌 종료 상태였습니다.

이 답변에서는 OS X, 특히 Mavericks 이상에 RODBC 및 ROACLE을 설치하는 방법에 대해 설명합니다.

이제 두 패키지 모두 소스에서 빌드(컴파일)해야 합니다.즉, XCode와 관련 "명령줄 도구"를 다운로드하여 컴파일러를 실제로 사용할 수 있어야 합니다.기본적으로 OS X/XCode의 모든 버전에서 이 작업을 수행하는 방법이 변경되었지만 Google을 시작하면 여기에 도착하게 될 것입니다.

일단 준비가 되면,

RODBC

OS X 10.9(Mavericks) 이후 Apple은 iOS X의 R 사용자가 소스에서 R 패키지를 빌드하기 위해 설치하는 데 익숙한 "명령줄 도구"와 함께 iODBC SQL 헤더 파일을 포함하는 것을 중단했습니다.

따라서 이 시점에서 매버릭스에서 소스로부터 RODBC를 구축하려고 하면 다음과 같은 오류가 발생합니다.

구성: 오류: "ODBC 헤더 sql.h 및 sqlext.h를 찾을 수 없습니다."

이 문제를 해결하려면 최신 버전의 iODBC(www.iodbc.org )를 다운로드한 다음 파일의 압축을 풀고 압축을 푼 패키지를 넣은 위치로 헤더와 라이브러리 검색 경로를 설정해야 합니다.경로를 및 을 검색경파헤경일더는(sql.h 및 sqlext)에 넣으면 .h)을/usr/include및 이름:libiodbc.a에 파일을 합니다./usr/lib디렉토리입니다.

그러면 당신은 할 수 있을 것입니다.

install.packages("RODBC",type = "source")

아무 문제 없이아마도 이것은 다른 주요 오픈 소스 ODBC 프로젝트인 unix ODBC에서도 잘 작동할 것이지만, 저는 그것을 시도하지 않았습니다.

저는 El Capitan에서 이것(그리고 다른 답변에서 홈브루 방법)을 테스트했고 둘 다 여전히 작동합니다.

ROACLE

이것은 더 복잡합니다.그러나 OS X에는 ROracle을 설치할 수 있습니다(El Capitan을 통해 Mountain Lion에서 테스트했습니다).ROracle은 Oracle Instant Client를 사용하므로 플랫폼에 사용할 수 있는 이진 파일이 없습니다.패키지에 대한 자세한 설치 지침은 여기에 있습니다.

OS X의 경우 Linux 지침을 대부분 따라야 합니다.

먼저 Linuz 지침에 따라 적절한 Oracle Instant Client와 SDK를 다운로드합니다.

Linux 설치 지침에는 RPM에서 클라이언트를 설치하는 방법이 나와 있습니다. RPM은 모든 것을 "올바른 위치에" 배치합니다. 그 에 있는 를 저는그 OS X에적용되를제는문때에지알풀클압그배다습니했치안고디에리을축토렉트의언이라서에디리것토렉만든가이었기수없도▁in▁the▁that▁i▁inside▁directory▁un를▁simply▁i▁sdk▁in▁even▁that▁client▁for▁so▁placed▁x저▁x▁applied▁whether▁os▁directory▁i▁out,▁a▁and는배다▁sdk니풀고습했치그안z▁wasn▁theipped에▁created디리▁figure토t▁able'/sdk.

그런 다음 Linux 설치 지침은 libclntsh.so .11.1에 대한 심볼릭 링크를 생성하도록 지시합니다. OS X이기 때문에 실제로 libcltsh.dylib.11.1이라고 합니다. 그래서 클라이언트의 압축을 푼 디렉토리로 cd를 작성한 다음 실행해야 합니다.

ln -s libclntsh.dylib.11.1 libclntsh.dylib

다음 X에서 X 서을설니다합을 합니다.DYLD_LIBRARY_PATH이 아닌LD_LIBRARY_PATH:

export DYLD_LIBRARY_PATH=/scratch/instantclient_11_2:$DYLD_LIBRARY_PATH

기계에 맞는 경로를 사용합니다.

로 RoRacle을 할 수 .OCI_LIB환경 변수입니다.대신에, 저는 그것을 사용했습니다.--with-oci-lib컴파일러 플래그 옵션:

R CMD INSTALL --configure-args='--with-oci-lib=/scratch/instantclient_11_2' ROracle_1.1-11.tar.gz

적절한 경로 및 RORacle 버전 번호를 사용합니다.

tnsnames.ora 파일을 사용하여 Oracle 데이터베이스에 연결하는 경우 해당 파일의 위치를 가리키도록 TNS_ADMIN 환경 변수도 설정해야 합니다.

마지막으로 얻은 정보: (제가 그랬던 것처럼) 명령줄에서 R을 실행해야 이 모든 것이 작동한다는 것을 알 수 있습니다(즉,). 또는 후 ""에서 RGui.app하려고 할 RStudio를 실행합니다.app 중 하나를 시작한 다음 실행을 시도하는 경우library(ROracle)라는 취지의 말을 하면 오류가 발생할 것입니다.

> library("ROracle")
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/Library/Frameworks/R.framework/Versions/3.1/Resources/library/ROracle/libs/ROracle.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/ROracle/libs/ROracle.so, 6): Library not loaded: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
  Referenced from: /Library/Frameworks/R.framework/Versions/3.1/Resources/library/ROracle/libs/ROracle.so
  Reason: image not found
Error: package or namespace load failed for ‘ROracle’

이런 일이 일어날 것입니다.Sys.getenv("DYLD_LIBRARY_PATH")정확한 경로를 충실히 보고합니다.

한동안, 저는 RStudio/RGui를 시작할 때 실행하는 셸 스크립트를 만드는 "솔루션"을 해킹했습니다. 그리고 항상 나중에 실행해야 하는 것을 기억해야 했습니다.

open -a R.app
open -a RStudio.app

문제는 OS X에서 GUI로 시작된 응용 프로그램에서 환경 변수를 사용할 수 있게 하는 방법과 관련이 있습니다.일반적으로 그렇듯이, 저는 결국 StackOverflow에서 솔루션을 찾았습니다.편집/etc/launchd.conf파일은 이 문제를 해결했으므로 이제 RStudio/RGui가 Finder에서 실행될 때도 ROracle이 로드됩니다.하지만 여기서 주목해야 할 것은/etc/launchd.conf솔루션이 Yosemite에서 더 이상 지원되지 않습니다.이 대답은 이제 다음을 위한 환경을 설정하기 위해 시작 목록 파일을 설정해야 한다는 것을 의미합니다.launchctl시작할 때

오라클용 El Capitan 업데이트

저는 이제 엘 캐피탄에서 이 문제에 대한 시련을 겪었고 위에서 설명한 대로 작동합니다. 하지만 먼저 시스템 무결성 보호를 비활성화해야 합니다!그렇게 하는 것은 꽤 빠르고, 지시사항은 구글을 통해 쉽게 찾을 수 있습니다.

휴.

만약 당신이 홈브루를 얻는다면, 그것은 쉬울 것입니다.터미널에서, 사용

brew install unixodbc

r 콘솔에서, 사용

install.packages("RODBC",type="source")

도움이 되길 바랍니다.

MacPorts를 사용하는 경우 다음을 수행합니다.

sudo port install unixODBC

그런 다음 홈 디렉토리에 파일을 작성(또는 파일이 있는 경우 편집)합니다.

~/.R/Makevars

한 줄을 포함해야 합니다.

CFLAGS += -I/opt/local/include

그런 다음 다음 다음을 통해 RODBC를 설치할 수 있습니다.

install.packages("RODBC",type="source")

기본적으로 위의 내용은

  • 필요한 라이브러리 및 헤더 파일 설치
  • R에게 위치를 알려줍니다.
  • RODBC를 설치합니다.

당신은 손으로 직접 패키지를 만들어야 할 것입니다.RODBC 사이트에 가면 매버릭스에서 바이너리를 사용할 수 없다는 것을 알 수 있습니다.패키지를 다운로드하고 소스에서 패키지를 빌드하는 방법에 대한 지침을 따릅니다.이들은 Windows 지침이지만 일반적인 개념은 동일합니다.특정 패키지의 빌드 프로세스 중에 사용되는 모든 필수 OS 패키지가 필요합니다.

언급URL : https://stackoverflow.com/questions/26210317/installation-of-rodbc-roracle-packages-on-os-x-mavericks

반응형