ros-melodic-arch / ros-melodic-desktop-full

ros-melodic-desktop-fullAUR package
2 stars 0 forks source link

[Manjaro] rosbag: error while loading shared libraries: libPocoFoundation.so.64: #16

Closed trusktr closed 4 years ago

trusktr commented 4 years ago

Hello!

I recently did a pacman -Syu, and now when I try to run rosbag play I get an error:

/opt/ros/melodic/lib/rosbag/play: error while loading shared libraries: libPocoFoundation.so.64: cannot open shared object file: No such file or directory

Does this mean an upgrade to poco broke ros-melodic rosbag?

Here's what was upgraded relating to poco:

$ grep -i upgraded /var/log/pacman.log | grep poco
[2020-02-28T11:51:35-0800] [ALPM] upgraded poco (1.9.4-1 -> 1.10.1-1)

And now I see it has these files:

$ pacman --query --list poco | grep libPocoFoundation
poco /usr/lib/libPocoFoundation.so
poco /usr/lib/libPocoFoundation.so.71

Should something in ros-melodic be looking for libPocoFoundation.so instead of specifically /usr/lib/libPocoFoundation.so.64?

How would you recommend I can fix this to move on with work?

trusktr commented 4 years ago

Ironically, I seem to have the opposite issue as https://github.com/ros-melodic-arch/ros-melodic-image-view/issues/10. In that issue, it wants libPocoFoundation.71, but the system has libPocoFoundation.64. Mine wants 64, but I have 71.

Any ideas?

trusktr commented 4 years ago

By the way, I'm on Manjaro Linux, which isn't exactly Arch Linux. Manjaro packages are a little behind Arch packages. Could that be why?

trusktr commented 4 years ago

Yep, as in the other issue, it looks like it might be because of Manjaro (the most popular Arch Linux derivative :smiley:) package version differences.

trusktr commented 4 years ago

This makes me wonder: why doesn't ROS look for libPocoFoundation.so without the number?

trusktr commented 4 years ago

Closing as not supported by the ros-melodic-arch team.

trusktr commented 4 years ago

Ok, I found a hack to get me back in working shape:

This removes poco, but tricks dependents to think it is installed (or something), and therefore it will not have any message about breaking a dependent package:

pacman --remove poco --assume-installed poco

Then I installed the one from AUR, which I was not able to install before removing poco:

yay -S libpoco-basic

And now rosbag works.

(cc @maujim from https://github.com/ros-melodic-arch/ros-melodic-image-view/issues/10 in case it helps in any way)

acxz commented 4 years ago

While we do not support Manjaro, it is nice of you to find a fix and let other users know! Have fun using ROS on ArchLinux (Manjaro)!

bionade24 commented 4 years ago

Please do us and yourself a favour and switch from Manjaro at least to EndeavourOS. When you install something out of the Manjaro Packages that needs poco you'll ran into the downside of your dumb hack.

trusktr commented 4 years ago

Thanks for the recommendation. Manjaro was the most highly-visible Arch derivative so I happened to try that first; the out-of-box experience is absolutely great (all my hardware just works, plus Gnome ships with the popular plugins included).

I might just live with the above (ugly) hack for now, as Manjaro isn't the target production OS anyway; production is on Ubuntu; and I just need to do some dev work on a UI connected to other parts of the system via ROS.

bionade24 commented 4 years ago

Thanks for the recommendation. Manjaro was the most highly-visible Arch derivative so I happened to try that first; the out-of-box experience is absolutely great (all my hardware just works, plus Gnome ships with the popular plugins included). Yeah, that's a big problem. Manjaro is a unmoral company that strips all Maintainer statements from Arch's PKGBUILDs and never really supported Arch. Hope you take the time to switch soon, then you could simply use the binary repo, too. I might just live with the above (ugly) hack for now, as Manjaro isn't the target production OS anyway; production is on Ubuntu; and I just need to do some dev work on a UI connected to other parts of the system via ROS. Something crashing on your dev machine makes nothing better, but it's your experience.