루비-oci8을 설치하는 방법은?
OS X에 ruby-oci8을 설치하려고 합니다.
설치를 사용하거나 사용하지 않고 모두 시도했습니다.sudo.
에 오류 메시지가 .sudo:
gem install ruby-oci8
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /Library/Ruby/Gems/1.8 directory.
: " " ":sudo:
sudo gem install ruby-oci8
Password:
Building native extensions. This could take a while...
ERROR: Error installing ruby-oci8:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for load library path...
DYLD_LIBRARY_PATH is not set.
checking for cc... ok
checking for gcc... yes
checking for LP64... yes
checking for sys/types.h... yes
checking for ruby header... ok
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
--with-instant-client
--without-instant-client
./oraconf.rb:887:in `get_home': RuntimeError (RuntimeError)
from ./oraconf.rb:703:in `initialize'
from ./oraconf.rb:319:in `new'
from ./oraconf.rb:319:in `get'
from extconf.rb:18
오류 메시지:
Set the environment variable ORACLE_HOME if Oracle Full Client.
Append the path of Oracle client libraries to DYLD_LIBRARY_PATH if Oracle Instant Client.
The 'sudo' command unset some environment variables for security reasons.
Pass required varialbes as follows
sudo env DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH /usr/bin/gem install ruby-oci8
or
sudo env ORACLE_HOME=$ORACLE_HOME /usr/bin/gem install ruby-oci8
Backtrace:
./oraconf.rb:887:in `get_home'
./oraconf.rb:703:in `initialize'
./oraconf.rb:319:in `new'
./oraconf.rb:319:in `get'
extconf.rb:18
See:
* http://ruby-oci8.rubyforge.org/en/HowToInstall.html
* http://ruby-oci8.rubyforge.org/en/ReportInstallProblem.html
10.9/10.10/10.11 OSX 매버릭스/요세미티/엘 캐피탄용 루비-oci8 설치 약간 업데이트 - 단계별:
- 여기로 이동: http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
- 64비트 버전의 instantclient-sqlplus, instantclient-sdk, instantclient-basic 다운로드 - 32비트 버전은 OSX 10.9에서 작동하지 않습니다.
- /opt/oracle에서 디렉토리 생성
- instantclient-basic 압축을 먼저 풀고 /opt/oracle로 이동합니다(폴더를 추가해야 함 - /opt/oracle/instantclient_11_2/ 같은 것).
- instantclient-sdk의 압축을 풀고 내용을 /opt/oracle/instantclient_11_2/로 이동합니다.
- instantclient-sqlplus의 압축을 풀고 내용을 /opt/oracle/instantclient_11_2/로 이동합니다.
- 터미널을 열고(아직 열지 않은 경우) 입력...
DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2 export DYLD_LIBRARY_PATHORACLE_HOME=/opt/oracle/instantclient_11_2 export ORACLE_HOMEcd /opt/oracle/instantclient_11_2ln -s libclntsh.dylib.11.1 libclntsh.dylib링크 표시으)로 표시됨)env- DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2(instantclient_11_2 이후/뒤에 후행이 없는지 확인)
- ORACLE_HOME=/opt/oracle/instantclient_11_2 확인
- gem 설치 루비-oci8
그 후에 일을 해야 합니다.파일 구조는 다음과 유사해야 합니다.

2016년의 좋은 해에 이것을 작동시키려고 시도하는 사람들을 위해, 오류 메시지는 이제 홈브루를 사용하여 그것을 하는 방법에 대한 지침을 제공하는 페이지 http://www.rubydoc.info/github/kubo/ruby-oci8/file/docs/install-on-osx.md 에 대한 링크를 포함합니다.위의 어떤 것도 저에게 효과가 없었습니다(그리고 저는 그것을 모두 시도했습니다). 하지만 저는 이 문제를 동료에게 가져갔고, 그들은 "저기, 오류 메시지에 있는 링크를 시도했어요?"라고 말했습니다.아니나 다를까, 그것으로 끝입니다.
OS X Sierra에서 시스템 무결성 보호 때문에 DYLD_LIBRARY_PATH를 설정할 수 없었습니다(https://forums.developer.apple.com/thread/13161), 그래서 다음을 포함한 일부 디렉토리에 폴백이 있기 때문에 모든 오라클의 인스턴트 클라이언트 파일을 /users/.../lib에 복사했습니다.
...
checking the default value of DYLD_FALLBACK_LIBRARY_PATH...
checking /Users/<username>/lib... no
checking /usr/local/lib... no
checking /lib... no
checking /usr/lib... no
...
그리고 보석이 성공적으로 설치되었습니다!
cp -R /opt/oracle/instantclient_11_2/* /users/..username../lib
gem install ruby-oci8
Building native extensions. This could take a while...
Successfully installed ruby-oci8-2.2.2
1 gem installed
다른 사람이 macosexel capitan의 Ruby 1.8.7에 Ruby-oci8의 레거시 버전을 설치해야 할 경우를 대비하여, 저는 다음 방법을 사용하여 Ruby-oci8-2.1.2를 설치하는 데 성공했습니다.다른 루비-1.8.7 버전(루비-oci8 < 2.2.0)에서도 작동할 것으로 생각하지만 다른 버전은 확인하지 않았습니다.
- 여기로 이동: http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html 64비트 버전의 인스턴트 클라이언트-베이직, 인스턴트 클라이언트-스냅샷, 인스턴트 클라이언트-sqlplus 다운로드(나는 -syslog.x64-11.2.0.4.0 버전을 사용합니다)
- zip 파일을 /opt/oracle에 복사하고 각 파일의 압축을 풉니다./opt/oracle/instantclient_11_2에 추출해야 합니다.
cd /opt/oracle/instantclient_11_2ln -s libclntsh.dylib.11.1 libclntsh.dylibcurl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb- 스크립트를 실행할 때 -a 플래그를 추가해야 합니다. 그러면 스크립트가 @rpath/*.dylib 경로가 아닌 절대 경로를 사용하여 립스를 수정하여 Gem 빌드 프로세스가 중단됩니다.(확인하려면 fix_oralib.dll 스크립트를 먼저 읽으십시오.) 실행:
ruby fix_oralib.rb -a export OCI_DIR=/opt/oracle/instantclient_11_2- 이제 루비-oci8 소스를 가져옵니다.
git clone https://github.com/kubo/ruby-oci8.git - (가 필요했습니다.
git checkout ruby-oci8-2.1.2 - ruby-oci8/ext/oci8/oraconf.rb 파일을 편집하고 다음 행을 변경합니다.
when /darwin/ @@ld_envs = %w[DYLD_LIBRARY_PATH] so_ext = 'dylib'
대상:
when /darwin/ @@ld_envs = %w[DYLD_LIBRARY_PATH OCI_DIR] so_ext = 'dylib'
- 다시 합니다.
gem build ruby-oci8.gemspec 2potatocakes$ gem install ruby-oci8-2.1.2.gem Building native extensions. This could take a while... Successfully installed ruby-oci8-2.1.2 1 gem installed
El Capitan과 함께 MAC를 사용하는 경우 SIP(System Integrity Protection)의 최신 내장 기능으로 인해 DYLD_* 환경 변수가 무시됩니다.
따라서 El Capitan과 함께 ruby-oci8을 설치하려면 먼저 SIP를 비활성화해야 합니다.
SIP를 사용하지 않도록 설정하려면 다음 단계를 수행합니다.
- Mac을 다시 시작합니다.
- OS X가 시작되기 전에 Command-R을 누른 상태에서 Apple 아이콘과 진행률 표시줄이 나타날 때까지 계속 누르고 있습니다.풀어주다.그러면 복구로 부팅됩니다.
- 유틸리티 메뉴에서 터미널을 선택합니다.
- 프롬프트에서 다음을 정확히 입력한 다음 Return: csrutil disable을 누릅니다.
- 터미널에 SIP가 비활성화되었다는 메시지가 표시되어야 합니다.
- 메뉴에서 다시 시작을 선택합니다.
여전히 문제가 발생하면 이 링크를 사용하십시오. http://blog.codiez.co.za/2013/09/setup-oracle-instant-client-ruby-oci8-gem-mac/
오류 메시지는 다소 장황하지만 기본적으로 Oracle Client 라이브러리를 설치하고 다음을 지시해야 합니다.DYLD_LIBRARY_PATH해당 위치에 대한 변수입니다.
이것은 고통스러워 보였습니다.(적어도 Mac OS에서는) 이 문제를 해결할 수 있는 더 나은 방법을 찾은 것 같습니다.
다음 brew 명령을 실행하기만 하면 됩니다.
brew tap InstantClientTap/instantclient
brew install instantclient-basic
brew install instantclient-sqlplus
brew install instantclient-sdk
웹 사이트에서 32비트 Linux용 Oracle 인스턴트 클라이언트 버전 11.2를 다운로드하는 것으로 시작합니다.버전 12 이상은 일부 데이터베이스에서 작동하지 않습니다(저는 항상 .zip 버전을 잡았으므로 가이드에서 그렇게 가정합니다).또한 다운로드한 파일이 /tmp 폴더에 있다고 가정합니다.)기본 버전인 sqlplus 및 sdk가 필요합니다.다운로드가 완료되면 터미널에서 다음 명령을 실행합니다.
sudo mkdir -p /opt/oracle
sudo cd /opt/oracle
sudo unzip /tmp/instantclient-basic-linux-11.2.0.4.0.zip
sudo unzip /tmp/instantclient-sqlplus-linux-11.2.0.4.0.zip
sudo unzip /tmp/instantclient-sdk-linux-11.2.0.4.0.zip
sudo apt-get install libaio1
sudo cd instantclient_11_2
sudo ln -s libclntsh.so.11.2 libclntsh.so
-이제 bash 셸에 오라클 클라이언트의 위치를 알려줘야 합니다.숨겨진 파일을 보고 텍스트 편집기로 $home/.bashrc를 열 수 있습니다.파일의 맨 아래에 다음 행을 추가한 후 저장합니다.
export LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
-이제 source .bashrc에서 터미널에 다음 명령을 사용하여 새 설정을 로드합니다.
source ~/.bashrc
-이제 모든 것을 올바르게 수행했다면 Oracle 데이터베이스 어댑터 gem을 설치할 수 있을 것입니다.다음 명령을 사용하여 사용해 보십시오.
gem install ruby-oci8 -v '2.1.5'
어떤 이유에서인지 ruby-oci8이 인스턴트 client_11_2와 함께 설치되지 않았습니다.저는 이곳과 다른 곳에서 제안된 모든 답을 시도했지만 그것을 할 수 없었습니다.나중에 인스턴트 클라이언트 12_1로 시도해보니 문제없이 작동했습니다.
Ruby-oci8 for CENTOS7 설치의 업데이트된 버전
cd /etc/yum.repos.d
sudo wget http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7
sudo rpm --import RPM-GPG-KEY-oracle-ol7
sudo yum-config-manager --enable ol7_oracle_instantclient
sudo yum install oracle-instantclient18.3-basic
sudo yum install oracle-instantclient18.3-devel
sudo yum install oracle-instantclient18.3-jdbc
sudo yum install oracle-instantclient18.3-sqlplus
export ORACLE_HOME=/usr/lib/oracle/18.3/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
gem install ruby-oci8 -v '2.2.7'
bash 대신 zsh를 사용하는 사람들은 여전히 Etusm의 대답을 따르지만, 8단계와 9단계에서 다음으로 대체합니다.
8. export DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
9. export ORACLE_HOME=/opt/oracle/instantclient_11_2
OS X 엘 캐피탄, 요세미티, 매버릭스를 사용하는 경우.Oracle 웹 사이트에서 Instant Client 12.1.0.2 다운로드를 사용해야 합니다.
- instantclient-basic-basic.x64-12.1.0.2.0.zip
- instantclient-sqlplus-sqlplus.x64-12.1.0.2.0.zip
- instantclient-interval-interval.x64-12.1.0.2.0.zip
그런 다음 다음 단계를 수행합니다.
- /opt/oracle에서 디렉토리 생성
- 먼저 인스턴트 클라이언트-basic 압축을 풀고 /opt/oracle로 이동합니다(폴더를 추가해야 함 -).
/opt/sshd/sshdclient_12_1/과 같은 것. - instantclient-sdk의 압축을 풀고 내용을 /opt/oracle/instantclient_12_1/로 이동합니다.
- instantclient-sqlplus의 압축을 풀고 내용을 이동합니다. /opt/oracle/instantclient_12_1/
- 터미널을 열고(아직 열지 않은 경우) 입력...
DYLD_LIBRARY_PATH=/opt/oracle/instantclient_12_1 내보내기 DYLD_LIBRARY_PATH ORACLE_HOME=/opt/oracle/instantclient_12_1 내보내기 ORACLE_HOME
- cd /opt/sys/sysclient_12_1
ln -slibclntsh.dylib.12.1 libclntsh.dylib(심볼 링크 포함)
ln -slibocci.dylib.12.1 libocci.dylib
- 실행: env
- DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2를 확인합니다.
추적 없음/instantclient_11_2 이후) ORACLE_HOME=/opt/oracle/instantclient_11_2 확인 - gem 설치 루비-oci8-vgemVersion
- DYLD_LIBRARY_PATH=/opt/oracle/instantclient_11_2를 확인합니다.
참고:- 그래도 Mac에서 SIP를 비활성화해도 작동하지 않으면 다시 시도하십시오.
그것이 당신에게도 효과가 있기를 바랍니다. 행운을 빌어요.
언급URL : https://stackoverflow.com/questions/11894194/how-to-install-ruby-oci8
'programing' 카테고리의 다른 글
| 어떻게 줄리아에게 엑셀을 읽습니까? (0) | 2023.06.13 |
|---|---|
| Python에서 반복기의 요소 수 가져오기 (0) | 2023.06.13 |
| openpyxl을 사용하여 워크시트를 한 워크북에서 다른 워크북으로 복사하는 방법은 무엇입니까? (0) | 2023.06.13 |
| 이벤트 이미터와 이벤트 이미터의 차이점은 무엇입니까? (0) | 2023.06.13 |
| rbenv install 명령이 누락되었습니다. (0) | 2023.06.13 |