FAQ » History » Version 5

J. Wienke, 11/07/2011 07:21 PM

1 1 J. Moringen
h1. FAQ
2 1 J. Moringen
3 1 J. Moringen
{{>toc}}
4 1 J. Moringen
5 2 J. Moringen
h2. [C++, Python] I compiled and installed successfully, but communication does not work
6 1 J. Moringen
7 1 J. Moringen
Starting with version 0.5, RSB uses a transport that implements communication within a single process by default. In other words, network communcation is disbabled by default.
8 1 J. Moringen
9 1 J. Moringen
This can be changed in three ways:
10 1 J. Moringen
11 1 J. Moringen
# Globally for all RSB programs running under the UNIX user
12 1 J. Moringen
Create or modify a RSB configuration file @~/.config/rsb.conf@ to contain the following lines:
13 1 J. Moringen
<pre>
14 1 J. Moringen
[transport.spread]
15 1 J. Moringen
enabled = 1
16 1 J. Moringen
[transport.inprocess]
17 1 J. Moringen
enabled = 0
18 1 J. Moringen
</pre>
19 1 J. Moringen
Lines 3 and 4 can be omitted to enable both transports in parallel.
20 1 J. Moringen
# Locally for the current directory
21 1 J. Moringen
Create a RSB configuration file @$(pwd)/rsb.conf@ with the same contents as described above.
22 1 J. Moringen
# For the current shell
23 1 J. Moringen
Set and export environment variables as follows
24 1 J. Moringen
<pre>
25 1 J. Moringen
$ export RSB_TRANSPORT_SPREAD_ENABLED=1
26 1 J. Moringen
$ export RSB_TRANSPORT_INPROCESS_ENABLED=1
27 1 J. Moringen
</pre>
28 2 J. Moringen
29 2 J. Moringen
h2. [C++] I compiled and installed successfully, but RSB binaries/libraries produce linker errors at runtime
30 2 J. Moringen
31 2 J. Moringen
The C++ implementation of RSB is built without fixed "rpath":http://en.wikipedia.org/wiki/Rpath by default. As a result, installed RSB binaries and libraries do not contain information regarding the location of their dependencies. This potentially causes runtime linking to fail because the dependencies cannot be located.
32 2 J. Moringen
33 3 J. Moringen
There are two possible solutions:
34 2 J. Moringen
35 4 J. Moringen
# Building and installing RSB with fixed rpath
36 2 J. Moringen
  This can be achieved by configuring RSB with
37 2 J. Moringen
  <pre>
38 5 J. Wienke
  cmake -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE
39 1 J. Moringen
  </pre>
40 5 J. Wienke
  This CMake standard mechanism instructs CMake to set the "RPATH":http://en.wikipedia.org/wiki/Rpath of installed libraries and executables to the values used for building them. Normally the RPATH is stripped at installation time.
41 1 J. Moringen
# Use of the @LD_LIBRARY_PATH@ variable
42 3 J. Moringen
  When the value of @LD_LIBRARY_PATH@ contains the directory/directories into which RSB (and its dependencies) have been installed, these dependencies can be located at runtime. @LD_LIBRARY_PATH@ can be set, for example, like this
43 3 J. Moringen
  <pre>
44 3 J. Moringen
  $export LD_LIBRARY_PATH=$prefix/lib
45 3 J. Moringen
  </pre>
46 3 J. Moringen
  where @$prefix@ is the prefix directory into which RSB and its dependencies have been installed.
47 3 J. Moringen
48 3 J. Moringen
  *This workaround is not permanent and has to be repeated for each new shell that should be able to execute RSB binaries or RSB-based programs.*