programing

win10 wsl unbuntu에서 오라클 인스턴트 클라이언트 11.2를 사용하는 DBD-Oracle(1.74 또는 1.76)

bestprogram 2023. 7. 21. 21:47

win10 wsl unbuntu에서 오라클 인스턴트 클라이언트 11.2를 사용하는 DBD-Oracle(1.74 또는 1.76)

DBD를 설치하려고 합니다.:Windows 10의 Ubuntu wslash에서 1.74 또는 1.76 오라클.

나는 64 아키텍처를 사용하고 있고, sqlplus64는 작동 중이고, 나는 내 데이터베이스에 연결할 수 있습니다!

설치 대상cpanm또는 설치할 때carton또는 컴파일을 시도합니다.perl Makeperl.pm -l작동하지 않으며 항상 동일한 오류가 발생합니다.

/usr/lib/oracle/11.2/client64에서 Oracle 사용 -> FAIL 시간 초과(> 60초)--verbose를 사용하여 다시 시도하십시오. -> 해당 없음

저는 다음을 시도했습니다.

  1. 폴더 권한을 높이려고 했지만 실패했습니다.
  2. 나는 다른 패키지들이 잘 설치된 회사 프록시 뒤에 있지만, 나는 또한 야생 인터넷에서 모바일 연결을 시도했지만, 운이 없었습니다.

여기 제 빌드입니다.log

cpanm (Menlo) 1.9019 on perl 5.018002 built for x86_64-linux
Work directory is /home/user1/.cpanm/work/1558699904.1138
You have make /usr/bin/make
You have LWP: 6.39
You have LWP::Protocol::https: 6.07
You have /bin/tar: tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
--> Working on /mnt/c/project/
Entering /mnt/c/project
Configuring /mnt/c/project
-> OK
Checking if you have Try::Tiny 0.24 ... Yes (0.27)
Checking if you have Tie::IxHash 1.23 ... Yes (1.23)
Checking if you have Image::Size 3.300 ... Yes (3.300)
Checking if you have Dancer2 0.203001 ... Yes (0.203001)
Checking if you have HTTP::Request 0 ... Yes (6.11)
Checking if you have Test::Fixture::DBI 0 ... Yes (0.09)
Checking if you have Net::SSLeay 1.88 ... Yes (1.88)
Checking if you have Plack::Middleware::CrossOrigin 0.012 ... Yes (0.012)
Checking if you have Date::Format 2.24 ... Yes (2.24)
Checking if you have Dancer2::Plugin::Database 2.16 ... Yes (2.17)
Checking if you have MIME::Lite 3.030 ... Yes (3.030)
Checking if you have Crypt::JWT 0.018 ... Yes (0.018)
Checking if you have JSON 0 ... Yes (2.90)
Checking if you have LockFile::Simple 0.208 ... Yes (0.208)
Checking if you have DBD::Oracle 1.74 ... No
Checking if you have Date::Language 1.10 ... Yes (1.10)
Checking if you have HTML::TreeBuilder 5.03 ... Yes (5.03)
Checking if you have Date::DayOfWeek 1.22 ... Yes (1.22)
Checking if you have Data::Serializer 0.60 ... Yes (0.60)
Checking if you have Date::Manip 6.54 ... Yes (6.56)
Checking if you have Locale::Maketext 0 ... Yes (1.23)
Checking if you have Time::Piece 0 ... Yes (1.20_01)
Checking if you have Redis 1.991 ... Yes (1.991)
Checking if you have Unicode::String 2.09 ... Yes (2.10)
Checking if you have LWP::Protocol::https 6.06 ... Yes (6.06)
Checking if you have Date::Calc 6.4 ... Yes (6.4)
Checking if you have Test::More 0 ... Yes (0.98)
Checking if you have MooX::Types::MooseLike 0.29 ... Yes (0.29)
Checking if you have MIME::Types 2.13 ... Yes (2.13)
Checking if you have LWP::UserAgent 0 ... Yes (6.15)
Checking if you have Algorithm::Diff 1.1903 ... Yes (1.1903)
Checking if you have Moo 2.002004 ... Yes (2.002004)
Checking if you have Starman 0.4014 ... Yes (0.4014)
==> Found dependencies: DBD::Oracle
Searching DBD::Oracle on mirror index /mnt/c/project/local/cache/modules/02packages.details.txt ...
--> Working on DBD::Oracle
Fetching http://cpan.metacpan.org/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz
-> OK
Unpacking DBD-Oracle-1.74.tar.gz
Copying DBD-Oracle-1.74.tar.gz to /mnt/c/project/local/cache/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz
Entering DBD-Oracle-1.74
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.18)
Checking if you have DBI 1.51 ... Yes (1.631)
Configuring DBD-Oracle-1.74
Running Makefile.PL
Multiple copies of Driver.xst found in: /mnt/c/project/local/lib/perl5/x86_64-linux/auto/DBI/ /home/user1/.plenv/versions/5.18.2/lib/perl5/site_perl/5.18.2/x86_64-linux/auto/DBI/ at Makefile.PL line 39.
Using DBI 1.631 (for perl 5.018002 on x86_64-linux) installed in /mnt/c/project/local/lib/perl5/x86_64-linux/auto/DBI/

Configuring DBD::Oracle for perl 5.018002 on linux (x86_64-linux)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a linux, Ver#4.4
Using Oracle in /usr/lib/oracle/11.2/client64
-> FAIL Timed out (> 60s). Use --verbose to retry.
-> N/A
Checking dependencies from META.json ...
Checking if you have DBI 1.51 ... Yes (1.631)
Checking if you have warnings 0 ... Yes (1.18)
Checking if you have Exporter 0 ... Yes (5.68)
Checking if you have strict 0 ... Yes (1.07)
Checking if you have DynaLoader 0 ... Yes (1.18)
-> FAIL Configure failed for DBD-Oracle-1.74. See /home/user1/.cpanm/work/1558699904.1138/build.log for details.
-> FAIL Installing the dependencies failed: Module 'DBD::Oracle' is not installed
-> FAIL Bailing out the installation for /mnt/c/project/.

입니다.perl Makefile.PL -F -v(force verbose)는 PATH를 출력한 후 정지합니다.

Using DBI 1.642 (for perl 5.018002 on x86_64-linux) installed in /home/user1/.plenv/versions/5.18.2/lib/perl5/site_perl/5.18.2/x86_64-linux/auto/DBI/

Configuring DBD::Oracle for perl 5.018002 on linux (x86_64-linux)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a linux, Ver#4.4
Using Oracle in /usr/lib/oracle/11.2/client64
PATH=/usr/lib/oracle/11.2/client64/bin:/usr/lib/oracle/11.2/client64:/home/user1/.plenv/versions/5.18.2/bin:/home/user1/.plenv/libexec:/home/user1/.plenv/plugins/perl-build/bin:/home/user1/.plenv/shims:/home/user1/.plenv/bin:/home/user1/.nodenv/shims:/home/user1/.nodenv/bin:/home/user1/.rbenv/shims:/home/user1/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.UbuntuonWindows_1804.2019.521.0_x64__79rhkp1fndgsc:/mnt/c/Program Files (x86)/Nmap:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_target_937390:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Windows/System32/OpenSSH:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/user1/AppData/Local/Microsoft/WindowsApps

cpanm --verbose --build-timeout을 포함한 최신 출력

$ cpanm DBD::Oracle@1.74 --verbose --build-timeout 3600
cpanm (App::cpanminus) 1.7044 on perl 5.018002 built for x86_64-linux
Work directory is /home/user1/.cpanm/work/1559491379.298
You have make /usr/bin/make
You have LWP 6.39
You have /bin/tar: tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching DBD::Oracle (== 1.74) on cpanmetadb ...
--> Working on DBD::Oracle
Fetching http://backpan.perl.org/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz ... OK
Unpacking DBD-Oracle-1.74.tar.gz
DBD-Oracle-1.74/
DBD-Oracle-1.74/lib/
DBD-Oracle-1.74/lib/DBD/
DBD-Oracle-1.74/lib/DBD/Oracle.pm
DBD-Oracle-1.74/lib/DBD/Oracle/
DBD-Oracle-1.74/lib/DBD/Oracle/GetInfo.pm
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Win32.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Vms.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Hpux.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Aix.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Sun.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Macos.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Linux.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Cygwin.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting/Win64.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Troubleshooting.pod
DBD-Oracle-1.74/lib/DBD/Oracle/Object.pm
DBD-Oracle-1.74/oci.def
DBD-Oracle-1.74/Makefile.PL
DBD-Oracle-1.74/MANIFEST
DBD-Oracle-1.74/ocitrace.h
DBD-Oracle-1.74/Changes
DBD-Oracle-1.74/LICENSE
DBD-Oracle-1.74/README.help.txt
DBD-Oracle-1.74/README.mkdn
DBD-Oracle-1.74/CONTRIBUTING.mkd
DBD-Oracle-1.74/INSTALL
DBD-Oracle-1.74/Oracle.xs
DBD-Oracle-1.74/CONTRIBUTORS
DBD-Oracle-1.74/META.json
DBD-Oracle-1.74/oci8.c
DBD-Oracle-1.74/META.yml
DBD-Oracle-1.74/Oracle.h
DBD-Oracle-1.74/dbivport.h
DBD-Oracle-1.74/typemap
DBD-Oracle-1.74/t/
DBD-Oracle-1.74/t/23wide_db_al32utf8.t
DBD-Oracle-1.74/t/00versions.t
DBD-Oracle-1.74/t/22nchar_al32utf8.t
DBD-Oracle-1.74/t/31lob.t
DBD-Oracle-1.74/t/lib/
DBD-Oracle-1.74/t/lib/ExecuteArray.pm
DBD-Oracle-1.74/t/10general.t
DBD-Oracle-1.74/t/28array_bind.t
DBD-Oracle-1.74/t/26exe_array.t
DBD-Oracle-1.74/t/14threads.t
DBD-Oracle-1.74/t/rt74753-utf8-encoded.t
DBD-Oracle-1.74/t/23wide_db.t
DBD-Oracle-1.74/t/22nchar_utf8.t
DBD-Oracle-1.74/t/31lob_extended.t
DBD-Oracle-1.74/t/000-report-versions-tiny.t
DBD-Oracle-1.74/t/12impdata.t
DBD-Oracle-1.74/t/36lob_leak.t
DBD-Oracle-1.74/t/24implicit_utf8.t
DBD-Oracle-1.74/t/38taf.t
DBD-Oracle-1.74/t/21nchar.t
DBD-Oracle-1.74/t/70meta.t
DBD-Oracle-1.74/t/15nls.t
DBD-Oracle-1.74/t/39attr.t
DBD-Oracle-1.74/t/rt85886.t
DBD-Oracle-1.74/t/34pres_lobs.t
DBD-Oracle-1.74/t/56embbeded.t
DBD-Oracle-1.74/t/40ph_type.t
DBD-Oracle-1.74/t/55nested.t
DBD-Oracle-1.74/t/30long.t
DBD-Oracle-1.74/t/32xmltype.t
DBD-Oracle-1.74/t/58object.t
DBD-Oracle-1.74/t/50cursor.t
DBD-Oracle-1.74/t/80ora_charset.t
DBD-Oracle-1.74/t/51scroll.t
DBD-Oracle-1.74/t/01base.t
DBD-Oracle-1.74/t/20select.t
DBD-Oracle-1.74/t/nchar_test_lib.pl
DBD-Oracle-1.74/t/23wide_db_8bit.t
DBD-Oracle-1.74/t/60reauth.t
DBD-Oracle-1.74/t/rt13865.t
DBD-Oracle-1.74/t/25plsql.t
DBD-Oracle-1.74/examples/
DBD-Oracle-1.74/examples/japh
DBD-Oracle-1.74/examples/oradump.pl
DBD-Oracle-1.74/examples/ora_explain.pl
DBD-Oracle-1.74/examples/commit.pl
DBD-Oracle-1.74/examples/bind.pl
DBD-Oracle-1.74/examples/curref.pl
DBD-Oracle-1.74/examples/ex.pl
DBD-Oracle-1.74/examples/read_long_via_blob_read.pl
DBD-Oracle-1.74/examples/tabinfo.pl
DBD-Oracle-1.74/examples/proc.pl
DBD-Oracle-1.74/examples/sql
DBD-Oracle-1.74/examples/mktable.pl
DBD-Oracle-1.74/examples/inserting_longs.pl
DBD-Oracle-1.74/examples/README
DBD-Oracle-1.74/mkta.pl
DBD-Oracle-1.74/Todo
DBD-Oracle-1.74/dbdimp.h
DBD-Oracle-1.74/hints/
DBD-Oracle-1.74/hints/macos_syms.pl
DBD-Oracle-1.74/hints/macos_bundle.syms
DBD-Oracle-1.74/hints/macos_lib.syms
DBD-Oracle-1.74/hints/dgux.pl
DBD-Oracle-1.74/hints/svr4.pl
DBD-Oracle-1.74/dbdimp.c
DBD-Oracle-1.74/README
Entering DBD-Oracle-1.74
Checking configure dependencies from META.json
Checking if you have DBI 1.51 ... Yes (1.642)
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.36)
Running Makefile.PL
Configuring DBD-Oracle-1.74 ... Using DBI 1.642 (for perl 5.018002 on x86_64-linux) installed in /home/user1/.plenv/versions/5.18.2/lib/perl5/site_perl/5.18.2/x86_64-linux/auto/DBI/

Configuring DBD::Oracle for perl 5.018002 on linux (x86_64-linux)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a linux, Ver#4.4
Using Oracle in /usr/lib/oracle/11.2/client64
BLINKIN CURSOR LONGER THAN 5 HOURS ...

가 여기 https://github.com/perl-carton/carton/issues/139 에서 본 바로는 이것이 문제가 될 수 있습니다.

시간 초과를 방지하기 위해 매우 큰 값을 가진 --build-timeout을 추가합니다. 또한 cpan 대신 cpan으로 시도할 수 있습니다.

편집:

빌드의 다른 부분에 대한 시간 초과와 관련된 세 가지 인수가 있습니다.

--configure-provider, --build-provider, --test-provider

그들은 cpan에 대한 인수로 전달되어야 합니다.

출처: https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm

저는 비슷한 문제를 조사하던 중 이 질문을 발견했습니다.제가 본 바로는 https://github.com/microsoft/WSL/issues/2294 "변수 행에 대한 하위 프로세스 결과 평가"에 문제가 있습니다.

Makefile을 검토했습니다.PL and ~1635 내가 찾은 라인

        open FH, ">define.sql" or warn "Can't create define.sql: $!";
        print FH "DEFINE _SQLPLUS_RELEASE\nQUIT\n";
        close FH;
        my $sqlplus_release = `$sqlplus_exe -S /nolog \@define.sql 2>&1`;

로컬에서 빠른 테스트를 실행했습니다.

user@machine:~$ echo -e "DEFINE _SQLPLUS_RELEASE\nQUIT\n" > mydefine.sql
user@machine:~$ /usr/bin/sqlplus -S /nolog @mydefine.sql
DEFINE _SQLPLUS_RELEASE = "1903000000" (CHAR)
user@machine:~$ perl -e 'print `/usr/bin/sqlplus -S /nolog \@mydefine.sql`'
    <hangs forever>

이제 sqlplus가 존재할 때 변수에 출력을 할당할 수 없는 문제가 있다는 것을 알게 되었습니다.

Makefile을 검토한 후.PL, sqlplus는 설치된 Oracle 버전을 확인하는 데만 사용됩니다.저는 그 문제를 피하기 위해 해킹을 시도하기로 결정했습니다.이것은 저에게 효과가 있었지만, 당신의 마일리지는 다를 수 있습니다.Oracle 클라이언트 설치에 대한 명령을 변경해야 합니다.

  • sqlplus 실행 파일을 사용할 수 없도록 이름을 변경합니다.
  • (이전에 다운로드한) DBD를 설치합니다.수동으로 오라클 소스
  • 다시 사용할 수 있도록 sqlplus 실행 파일의 이름을 변경합니다.

user@machine:~$ sudo su
root@machine:~# mv /usr/lib/oracle/19.3/client64/bin/sqlplus /usr/lib/oracle/19.3/client64/bin/sqlplusx 
root@machine:~# cd /home/user/.cpan/build/DBD-Oracle-1.80-0
root@machine:DBD-Oracle-1.80-0# perl Makefile.PL
...
root@machine:DBD-Oracle-1.80-0# make
root@machine:DBD-Oracle-1.80-0# make install
... SUCCESS ...
root@machine:DBD-Oracle-1.80-0# mv /usr/lib/oracle/19.3/client64/bin/sqlplusx /usr/lib/oracle/19.3/client64/bin/sqlplus
root@machine:DBD-Oracle-1.80-0# exit
exit
user@machine:~$

언급URL : https://stackoverflow.com/questions/56293318/dbd-oracle-1-74-or-1-76-with-oracle-instantclient-11-2-on-win10-wsl-ubuntu