forked from cran/ROracle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
executable file
·492 lines (395 loc) · 22.5 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
1. Introduction
===============
ROracle has been built and tested with R versions 2.15 through 3.2.0 and with
Oracle Instant Client and Oracle Database Client versions 10.2 to 12.1.0.1 on
both the 32 and 64-bit versions of the Linux and Windows operating systems.
2. Requirements
===============
Linux
-----
For compiling on Linux, ROracle needs either the Oracle Instant Client or
the Oracle Database Client part of the Oracle Database distribution
(ORACLE_HOME-based client). If using an Oracle Instant Client, you need
either the Basic or Basic Lite packages in addition to the SDK package. You
can use either the RPM or ZIP package. You can simplify the ROracle
installation process by using Instant Client RPM packages.
NOTE: Basic Lite is geared toward applications that require English-only
error messages and use either US7ASCII, WE8DEC, or a Unicode characterset.
It also has no restrictions on the TERRITORY field of the NLS_LANG setting.
As a result, an application that meets these characterset and territory
criteria can significantly reduce its footprint if it uses the Basic Lite
package.
Mac OS X
--------
For compiling on Linux, ROracle needs the Oracle Instant Client. Then you need
either the Basic or Basic Lite packages in addition to the SDK package.
NOTE: Basic Lite is geared toward applications that require English-only
error messages and use either US7ASCII, WE8DEC, or a Unicode characterset.
It also has no restrictions on the TERRITORY field of the NLS_LANG setting.
As a result, an application that meets these characterset and territory
criteria can significantly reduce its footprint if it uses the Basic Lite
package.
Windows
-------
For compiling on Windows, ROracle needs either an Oracle Instant Client or
Oracle Database Client. If using Oracle Instant Client, you need either
a Basic or Basic Lite package in addition to the SDK package of Instant
Client. If you are not using Oracle Instant Client, you only need the Oracle
Database Client part of the Oracle Database distribution (ORACLE_HOME-based
client). When building on a 64-bit platform, you can build both the 32-bit and
64-bit packages. If you need both, you need to install both the 32 and
64-bit versions of Oracle Instant Client or Oracle Database Client.
NOTE: Basic Lite is geared toward applications that require English-only
error messages and use either US7ASCII, WE8DEC, or a Unicode characterset.
It also has no restrictions on the TERRITORY field of the NLS_LANG setting.
As a result, applications that meet these characterset and territory
criteria can significantly reduce its footprint if they use the Basic Lite
package.
TimesTen
--------
For TimesTen connection support, ROracle should be compiled using the Oracle
Instant Client included in the local TimesTen installation directory. For
more information on TimesTen see http://www.oracle.com/technetwork/database/
timesten/documentation/.
Instant Client
--------------
For more information on Oracle Instant Client see http://www.oracle.com/
technetwork/database/features/instant-client/index-100365.html.
3. Installation
===============
Linux - Instant Client
----------------------
The ROracle build depends on Oracle Client libraries and header files. To
build with 11.2 client version, you can get Instant Client 11.2 from
an RPM. It has both the Basic and the SDK packages. It places the files in
standard locations that the ROracle configure script can find. For example,
on a 32-bit system, Oracle Instant Client is installed in
/usr/lib/oracle/11.2/client/lib. On a 64-bit system, it is installed in
/usr/lib/oracle/11.2/client64/lib. After installing the Oracle Instant
Client, change LD_LIBRARY_PATH as follows:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH
R CMD INSTALL ROracle_1.3-1.tar.gz
Alternatively, you can extract Oracle Instant Client from a zip package. In
this case, a symbolic link libclntsh.so needs to be created manually before
proceeding to install ROracle.
Change directories to the directory where Oracle Instant Client is
installed and then issue the following command:
ln -s libclntsh.so.11.1 libclntsh.so
Next, set the LD_LIBRARY_PATH environment variable. Additionally, specify
the location of Oracle Client libraries and header files via either the
environment variable OCI_LIB or the configure option --with-oci-lib.
For example, if Oracle Instant Client was installed in
/scratch/instantclient_11_2, then you need to do the following:
export OCI_LIB=/scratch/instantclient_11_2
export LD_LIBRARY_PATH=/scratch/instantclient_11_2:$LD_LIBRARY_PATH
R CMD INSTALL ROracle_1.3-1.tar.gz
Alternatively, if using the --with-oci-lib configure option, you can do
the following:
export LD_LIBRARY_PATH=/scratch/instantclient_11_2:$LD_LIBRARY_PATH
R CMD INSTALL --configure-args='--with-oci-lib=/scratch/instantclient_11_2' ROracle_1.3-1.tar.gz
Both methods assume that the Basic and SDK packages were unzipped into the
same directory and Oracle Client headers are located under
$OCI_LIB/sdk/include. If this is not the case, then set either the OCI_INC
environment variable or the --with-oci-inc configure option appropriately.
Linux - Oracle Client (Oracle home installation)
------------------------------------------------
As in the previous section, set LD_LIBRARY_PATH to include the path to
the Oracle Client libraries. Additionally, set ORACLE_HOME. Then install the
ROracle package by running
R CMD INSTALL ROracle_1.3-1.tar.gz
Mac OS X - Instant Client
-------------------------
The ROracle build depends on Oracle Client libraries and header files. To
build with 11.2 client version, you can get Instant Client 11.2 from zip
package. It has both the Basic and the SDK packages.
You can extract Oracle Instant Client from a zip package. In this case,
a symbolic link libclntsh.so needs to be created manually before
proceeding to install ROracle.
To Install Oracle Instant Client and ROracle package, do the following:
1. Download Instant Client from:
http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
into (for example):
/path/to/dnlds/
2. Extract Oracle Instant Client from zip packages:
cd /path/to/dnlds
unzip -o instantclient-basic-macos.x64-12.1.0.2.0.zip -d /opt/ora12
unzip -o instantclient-sdk-macos.x64-12.1.0.2.0.zip -d /opt/ora12
3. Change directories to the directory where Oracle Instant Client is
installed and then issue the following command:
cd /opt/ora12/instantclient_12_1
ln -s libclntsh.dylib.12.1 libclntsh.dylib
4. Download the ROracle source package (ROracle_1.3-1.tar.gz) from CRAN
into (for example):
/path/to/pkg/
5. Install ROracle package by issuing following command:
cd /path/to/pkg
R CMD INSTALL --configure-args='--with-oci-lib=/opt/ora12/instantclient_12_1' ROracle_1.3-1.tar.gz
Or, within R, using the modified package:
install.packages('ROracle_1.3-1.tar.gz', repos=NULL, configure.args='--with-oci-lib=/opt/ora12/instantclient_12_1')
Windows
-------
For compiling on Windows, ROracle needs either the Oracle Instant Client or
only the Oracle Database Client part of the Oracle Database distribution
(ORACLE_HOME-based client).
When using Oracle Instant Client you need either the Basic or Basic Lite
package in addition to the SDK package. Once ROracle is built with any
supported version of Oracle Client, at run-time you can use an appropriate
supported version of Oracle Instant Client or ORACLE_HOME-based client
without requiring a re-build of ROracle.
Once ROracle is built and installed, the 64-bit version of R uses the
64-bit version of Oracle Client and the 32-bit version of R uses the
32-bit version of Oracle Client. If there are multiple versions of Oracle
Client in the PATH, the first one in the PATH that corresponds to the R
architecture is loaded by ROracle.
For example, if the PATH has
c:\temp\i386\instantclient_10_2;c:\temp\x64\instantclient_11_1;c:\temp\i386\instantclient_11_2;c:\temp\x64\instantclient_11_2;%PATH%, then R 32-bit uses instantclient_10_2 and R 64-bit uses
instantclient_11_1; the rest of the PATH is ignored. The version that is
required must be in the PATH first, Oracle recommendeds that you have only one
version for each architecture in the PATH. Refer to item 8 of the
Troubleshooting section to determine the architecture of Oracle Client being
used.
For process interoperability on Windows, refer to
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384231%28v=vs.85%29.aspx
Windows - Instant Client
------------------------
To use the 64-bit version of instant Client, do the following:
1. Create an installation directory for the Oracle R Enterprise client
components.
For example: c:\oreclient_install_dir
2. Go to the Oracle Database Instant Client page on the Oracle Technology
Network at:
http://www.oracle.com/technetwork/database/features/instant-client/
3. Select See Instant Client downloads for all platforms.
4. On the Instant Client Downloads page, select Instant Client for Microsoft
Windows (x64).
5. On the Instant Client Downloads for Microsoft Windows (x64) page, accept
the license agreement.
6. Select the Basic or Basic Lite Instant Client Package for your version of
Oracle Database.
7. Save the file in the installation directory that you created in Step 1.
For example:
c:\oreclient_install_dir\instantclient-basic-windows.x64-11.2.0.1.0.zip
8. Unzip the file. The files are extracted into a subdirectory named
instantclient_version, where version is your version of Oracle Database.
For example:
c:\oreclient_install_dir\instantclient_11_2
9. Return to the Instant Client Downloads for Microsoft Windows (x64) page at:
http://www.oracle.com/technetwork/topics/winx64soft-089540.html.
10.Accept the license agreement and select Instant Client Package - SDK for
your version of Oracle Database.
11.Save the file in the installation directory that you created in Step 1.
The directory should now contain the file
instantclient-sdk-windows.x64-11.2.0.1.0.zip.
12.Unzip the file. The files are extracted into the instantclient_version
subdirectory.
13.Add the full path of the Instant Client to the environment variables
OCI_LIB64 and PATH.
The following steps set the variables to the PATH used in this example,
c:\myoreclient\instantclient_11_2.
1. In Windows Control Panel, select System, then click Advanced system
settings.
2. On the Advanced tab, click Environment Variables.
3. Under System variables, create OCI_LIB64 if it does not already exist.
4. Set the value of OCI_LIB64 to c:\oreclient\instantclient_11_2.
5. Under System variables, edit PATH to include
c:\oreclient\instantclient_11_2.
To use 32-bit version of instant Client,
1. Create an installation directory for the Oracle R Enterprise client
components.
For example: c:\oreclient_install_dir
2. Go to the Oracle Database Instant Client page on the Oracle Technology
Network at:
http://www.oracle.com/technetwork/database/features/instant-client/
3. Select See Instant Client downloads for all platforms.
4. On the Instant Client Downloads page, select Instant Client for Microsoft
Windows (i386).
5. On the Instant Client Downloads for Microsoft Windows (i386) page, accept
the license agreement.
6. Select the Basic or Basic Lite Instant Client Package for your version
of Oracle Database.
7. Save the file in the installation directory that you created in Step 1.
The directory should now contain the file
instantclient-basic-windows.i386-11.2.0.1.0.zip.
8. Unzip the file.The files are extracted into a subdirectory named
instantclient_version, where version is your version of Oracle Database.
For example:
c:\oreclient_install_dir\instantclient_11_2
9. Return to the Instant Client Downloads for Microsoft Windows (i386) page
at:
http://www.oracle.com/technetwork/topics/wini386soft-089540.html.
10.Accept the license agreement and select Instant Client Package - SDK for
your version of Oracle Database.
11.Save the file in the installation directory that you created in Step 1.
The directory should now contain the file
instantclient-sdk-windows.i386-11.2.0.1.0.zip.
12.Unzip the file. The files are extracted into the instantclient_version
subdirectory.
13.Add the full path of the Instant Client to the environment variables
OCI_LIB32 and PATH.
The following steps set the variables to the PATH used in this example,
c:\myoreclient\instantclient_11_2.
1. In Windows Control Panel, select System, then click Advanced system
settings. On the Advanced tab, click Environment Variables.
2. Under System variables, create OCI_LIB32 if it does not already exist. Set
the value of OCI_LIB32 to c:\oreclient\instantclient_11_2.
3. Under System variables, edit PATH to include
c:\oreclient\instantclient_11_2.
Windows - Oracle Client (ORACLE_HOME-Based Client)
--------------------------------------------------
As in the previous section, PATH should be set to include the path to the
Oracle Client libraries. Oracle Universal Installer should have set the
PATH and ORACLE_HOME environment varibles in the registry database.
Set OCI_LIB32 or OCI_LIB64 depending on your current platform architecture
for Windows.
For example, if user "xyz" has installed the Oracle Client version 11.2 using
the default location in the Oracle Universal Installer on 64-bit Windows,
set OCI_INC and OCI_LIB64 as follows:
set OCI_INC=C:/app/xyz/product/11.2.0/client_1/oci/include
set OCI_LIB64=C:/app/xyz/product/11.2.0/client_1/bin
Build the ROracle package using:
R CMD INSTALL ROracle_1.3-1.tar.gz
To build both 32-bit and 64-bit versions of ROracle, add both the 32-bit and
64-bit versions of Oracle Client to the PATH environment variable before
building ROracle. Once ROracle is built and installed, 64-bit version of R
will use the 64-bit version of Oracle Client and 32-bit the 32-bit version of
Oracle Client.
To build both the 32-bit and 64-bit versions of ROracle, execute the following
commands:
set OCI_INC=C:/app/xyz/product/11.2.0/32_bit_client_1/oci/include
set OCI_LIB32=C:/app/xyz/product/11.2.0/32_bit_client_1/bin
set OCI_LIB64=C:/app/xyz/product/11.2.0/64_bit_client_1/bin
R CMD INSTALL --build --merge-multiarch ROracle_1.3-1.tar.gz
When mixing Oracle Instant Client and ORACLE_HOME-based client, above
environment variables must be set carefully to point to the specific Client
installation. To simplify administration, Oracle recommends that you have only
one version of the client.
TimesTen
--------
When building ROracle for TimesTen connection support on Windows or Linux, the
Instant Client included in the local TimesTen installation directory should
be used. For example, if TimesTen 64-bit is installed on Windows in the
c:/TimesTen/tt1122_64 directory, then issue the following commands:
set OCI_LIB64=c:/TimesTen/tt1122_64/ttoracle_home/instantclient_11_2
R CMD INSTALL --build ROracle_1.3-1.tar.gz
At runtime the directories for both the TimesTen Instant Client shared
libraries and the TimesTen database shared libraries must be present on the
system's shared library search path (PATH on Windows or LD_LIBRARY_PATH on
Linux) in order to establish a TimesTen database connection. An easy way to
do this is to run the ttenv script located in the bin directory of the local
TimesTen installation directory.
For example, if TimesTen 64-bit is installed on Windows in the
c:/TimesTen/tt1122_64 directory, issue the following command:
to set the system's shared library search path for TimesTen connections
c:/TimesTen/tt1122_64/bin/ttenv.bat
For more information on TimesTen, see http://www.oracle.com/technetwork/
database/timesten/documentation/.
Installing ROracle on Windows Directly from Binary File
-------------------------------------------------------
1. Download the binary from oracle: http://www.oracle.com/technetwork/
database/database-technologies/r/roracle/downloads/index.html
2. Run the following command in R, substituting the file path:
setwd('xxxxx') # set to path of download
install.packages('ROracle_1.3-1.zip', repos = NULL)
3. Load the library and use the package; you may have to change DBNAME to the
one listed in your tnsnames.ora file, as in the following example:
library('ROracle')
drv <- dbDriver("Oracle")
con <- dbConnect(drv, "USERNAME", "PASSWORD", dbname='DBNAME')
4. Test connection:
dbReadTable(con, 'DUAL')
Installing ROracle on AIX and Solaris platforms
-----------------------------------------------
The requirements and installation instructions for AIX and Solaris platforms
are the same as those for Linux platforms with the following exceptions:
- For AIX, use the LIBPATH environment variable instead of LD_LIBRARY_PATH.
- For Solaris, use LD_LIBRARY_PATH_64 instead of LD_LIBRARY_PATH.
4. Troubleshooting:
-------------------
Linux
-----
If you see an error about opening an Oracle Client library libclntsh.so
when issuing the library(ROracle) command, you probably did not add the path
to Oracle Client libraries to LD_LIBRARY_PATH environment variable.
> library(ROracle)
Loading required package: DBI
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '.../library/ROracle/libs/ROracle.so':
libclntsh.so.11.1: cannot open shared object file: No such file or directory
Error: package/namespace load failed for 'ROracle'
See the Installation section above for details on setting LD_LIBRARY_PATH.
Windows
-------
1. If you see the following error during the build of ROracle, then the oci.dll
loaded from the PATH environment variable by R does not correspond to the
same architecture as R.
** testing if installed package can be loaded
Error in inDL(x, as.logical(local), as.logical(now), ...) :
unable to load shared object '.../library/ROracle/libs/i386/ROracle.dll':
LoadLibrary failure: %1 is not a valid Win32 application.
To resolve this, set PATH to include 32-bit version of Oracle Client
when the 32-bit version of R is used and 64-bit version of Oracle Client when
the 64-bit version of R is used. You cannot build the 64-bit version of
ROracle using the 32-bit version of R and vice versa.
2. You may also see the error message
".../i686-w64-mingw32/bin/ld.exe: i386:x86-64 architecture of input file
`.../oci.dll' is incompatible with i386 output"
when installing a 32-bit version of ROracle with a 64-bit version of
oci.dll. This error is followed by undefined references to OCI functions
as shown below:
rooci.o:rooci.c:(.text+0x9d): undefined reference to `OCIDescriptorAlloc'
rooci.o:rooci.c:(.text+0x17e): undefined reference to `OCIDateTimeFromText'
...
rooci.o:rooci.c:(.text+0x22a4): undefined reference to `OCIDateTimeConvert'
collect2: ld returned 1 exit status
ERROR: compilation failed for package 'ROracle'
The above errors may also be seen when oci.dll is missing in the directory
specified by the OCI_LIB32 or OCI_LIB64 environment variables.
3. The following error occurs during installation of ROracle when the oci.dll
not compatible with the R architecture:
collect2: ld returned 5 exit status
ERROR: compilation failed for package 'ROracle'
Solution: Set OCI_LIB32 to point to the 32-bit version of the client and
OCI_LIB64 to point to the 64-bit version of the client.
4. If you see a dialog box with the title "Rterm.exe - System Error" with the
the message "OCI.dll missing from your system, try installing it"
followed by the error below when issuing the library(ROracle) command or
during the installation, then the Oracle Client libraries were not found in
the PATH environment variable.
Error in inDL(x, as.logical(local), as.logical(now), ...) :
unable to load shared object '.../library/ROracle/libs/.../ROracle.dll':
LoadLibrary failure: The specified module could not be found.
5. If you see an error about oci.dll not being found, then either the OCI_LIB32
or the OCI_LIB64 environment variable points to a location that does not have
the Oracle Client installed.
gcc.exe: error: .../oci.dll: No such file or directory
ERROR: compilation failed for package 'ROracle'
6. If you see one of the following error messages when building ROracle, then
oci.dll is not compatible with the R architecture. One of the messages
below will be displayed with 11.X or higher version of Oracle Instant Client
or ORACLE_HOME-based client instead of the messages listed in 1, 2, or 3 above.
Client Shared Library 32-bit - ... cannot be used to install with 64-bit R.
Client Shared Library 64-bit - ... cannot be used to install with 32-bit R.
7. If you see the following error when loading the ROracle library, then the
oci.dll loaded from PATH by R does not correspond to the same architecture
as R.
> library(ROracle)
Loading required package: DBI
Error in inDL(x, as.logical(local), as.logical(now), ...) :
unable to load shared object '.../library/ROracle/libs/.../ROracle.dll':
LoadLibrary failure: %1 is not a valid Win32 application.
Error: package/namespace load failed for 'ROracle'
To resolve this, set PATH to include the 32-bit version of Oracle Client
when using the 32-bit version of R and the 64-bit version of Oracle Client
when using the 64-bit version of R. You cannot build or run the 64-bit
version of ROracle using the 32-bit version of R and vice versa.
8. Determining the architecture of Oracle Client:
Oracle Instant Client provides BASIC_README and BASIC_LITE_README files
showing the architecture they were built on.
For ORACLE_HOME-based Client, inspect the registry. A 32-bit home will be
located in HKEY_LOCAL_MACHINE->Software->WOW6432Node->Oracle, and a 64-bit
home will be in HKEY_LOCAL_MACHINE->Software->Oracle. Inspect the path to
the home to try to infer whether it is 32-bit or 64-bit based on the
location of dlls.
If the PATH environment variable includes paths to both the 32-bit and 64-bit
clients, then Oracle depends on the operating system to load the 32-bit DLLs
for the 32-bit R process and the 64-bit DLLs for the 64-bit R process.