forked from pjotrp/biolib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RUBY.txt
63 lines (38 loc) · 2.01 KB
/
RUBY.txt
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
= Using biolib Ruby
cmake .
make
make test
make install (as root)
will copy the shared libraries into the Ruby tree, for example the
directory /usr/lib/ruby/1.8/i486-linux/.
From here you can run Ruby and require, for example,
'biolib_ruby_example'.
ruby src/mappings/swig/ruby/test/test_example.rb
should show Biolib_ruby_example.my_mod(7,3) renders 1
See the other test scripts in ./src/mappings/swig/ruby/test.
= Using another Ruby location
The current packaging (gem and CMake) default to the first Ruby
interpreter in the path. To change this you may try:
cmake -DRUBY_EXECUTABLE=/usr/local/bin/myruby -DBUILD_RUBY:BOOLEAN=TRUE .
= Trouble shooting
== libR.so error
The error: biolib_ruby_affyio.so: libR.so: cannot open shared object file: No such file or directory
Is due to the runtime dynamic library loader not finding libR.so. See
if you can fix it by something like:
/lib/ld-linux.so.2 --library-path /usr/lib/R/lib /usr/bin/ruby test_affyio.rb
if this works you can add /usr/lib/R/lib ni /etc/ld.so.conf and build
the cache with ldconfig -v
== SWIG: Warning(801): Wrong class name (corrected to
The Ruby module will give this warning when structures are named
starting with lowercase. It is harmless.
== cannot open shared object file
The following error can occur when BioLib and Ruby are compiled with different gcc compilers (the libstdc++.so library is a mismatch):
../affyio/affyio.so: libstdc++.so.6: cannot open shared object file: No such file or directory - ../affyio/affyio.so (LoadError)
from ./../test/test_affyio.rb:5
with NIX it is possible to create profiles with different Ruby/gcc
combinations - which is ideal for testing different dependencies.
== Link error
On some Debian systems an upgrade of Ruby causes:
/usr/include/unistd.h:268: error: declaration of 'int eaccess(const char*, int) throw ()' throws different exceptions
/usr/lib/ruby/1.8/x86_64-linux/missing.h:43: error: from previous declaration 'int eaccess(const char*, int)'
make sure to upgrade the ruby1.8-dev package.