Skip to content

Installation with shared memory support fails on Ubuntu 22.04 #271

Description

@m-decoster

Aim and problem

I want to install cyclonedds-python on Ubuntu 22.04 with support for shared memory, via iceoryx. All installation processes succeed without error, but I cannot run cyclonedds-python code with shared memory support.

Steps I've taken

Installing iceoryx and cyclonedds

I followed the instructions of the cyclonedds manual to install iceoryx and cyclonedds with shared memory support: https://cyclonedds.io/docs/cyclonedds/latest/shared_memory/shared_memory.html

However, following the comment on #227, I used version 0.10.2 of cyclonedds by modifying one of the commands. So, I executed:

sudo apt update && sudo apt upgrade -y
sudo apt install cmake libacl1-dev libncurses5-dev pkg-config maven

git clone https://github.com/eclipse-iceoryx/iceoryx.git -b release_2.0
cd iceoryx
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DROUDI_ENVIRONMENT=on -DBUILD_SHARED_LIBS=ON -Hiceoryx_meta
cmake --build build --config Release --target install

cd ..
git clone https://github.com/eclipse-cyclonedds/cyclonedds.git
cd cyclonedds
git checkout 0.10.2
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install -DENABLE_ICEORYX=On -DBUILD_EXAMPLES=On -DCMAKE_PREFIX_PATH=~/iceoryx/install/
cmake --build build --config Release --target install

Installing cyclonedds-python

I followed the instructions in this repository's README:

cd
export CYCLONEDDS_HOME=~/cyclonedds/install
pip3 install cyclonedds --no-binary cyclonedds

Configuration of shared memory

I then use this file for configuration, found at https://cyclonedds.io/docs/cyclonedds/latest/shared_memory/shared_mem_config.html:

<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/iceoryx/etc/cyclonedds.xsd">
    <Domain id="any">
        <General>
            <Interfaces>
                <PubSubMessageExchange name="iox" library="psmx_iox" config="LOG_LEVEL=INFO;"/>
            </Interfaces>
        </General>
    </Domain>
</CycloneDDS>

Issue

When I run a Python script and create a domain participant, I get this error:

1729260850.168537 [0]     python: Failed to load PSMX library 'psmx_iox' with error "psmx_iox: cannot open shared object file: No such file or directory".
1729260850.168544 [0]     python: error loading PSMX instance "iox"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions