Closed mantkiew closed 2 months ago
It seems that the velodyne
packages cannot be installed together with ros-noetic-desktop
dues to conflict between ros-distro-mutex 0.4.* noetic
and ros-distro-mutex 0.5.* noetic
.
I was able to install these packages in an empty environment.
I was able to narrow down the conflict:
Could not solve for environment specs
The following packages are incompatible
├─ libprotobuf 4.24.3 is installable and it requires
│ └─ libabseil >=20230802.1,<20230803.0a0 , which can be installed;
└─ ros-noetic-velodyne-pointcloud is not installable because it requires
└─ ros-distro-mutex 0.5.* , which requires
└─ libabseil 20230802 , which conflicts with any installable versions previously reported.
the root cause is the constraint libabseil >=20230802.1
conflicting with libabseil 20230802
.
Hi @mantkiew - thanks for reporting this! It seems like you’re still using old packages that were built for Python 3.9. If you create a new environment with Python 3.11 you should be able to install the packages without issues.
I have only followed the instructions from https://robostack.github.io/GettingStarted.html (with the latest miniforge
) and ended up with pinned Python 3.9. I am not sure what else I should have done. Just installing ros-noetic-desktop
does it, I think.
I’ve updated instructions to explicitly install Python 3.11.
Thanks. Unfortunately, the ros-distro-mutex
is still conflicting. I did as follows
$ mamba create -n ros-env python=3.11
$ mamba activate ros-env
$ conda config --env --add channels robostack-staging
$ mamba install ros-noetic-desktop ros-noetic-velodyne-pointcloud
...
│ └─ ros-noetic-desktop 1.5.0 would require
│ └─ ros-distro-mutex 0.4.* , which can be installed;
└─ ros-noetic-velodyne-pointcloud is not installable because it requires
└─ ros-distro-mutex 0.5.* , which requires
└─ libprotobuf 4.24.3 , which conflicts with any installable versions previously reported.
/cc @traversaro - I think this is because of https://github.com/RoboStack/ros-noetic/pull/464
Do you think we need to rebuild?
For what is worth I am having the same problem with a fresh new environment using python 3.11.
I reduced the problem to:
mamba create -n test -c conda-forge -c robostack-staging ros-noetic-cv-bridge ros-distro-mutex==0.5.*
That fails with:
traversaro@IITBMP014LW012:~$ mamba create -n test -c conda-forge -c robostack-staging ros-noetic-cv-bridge ros-distro-mutex==0.5.*
Looking for: ['ros-noetic-cv-bridge', 'ros-distro-mutex=0.5']
conda-forge/linux-64 Using cache
conda-forge/noarch Using cache
robostack-staging/linux-64 Using cache
robostack-staging/noarch Using cache
Could not solve for environment specs
The following packages are incompatible
├─ ros-distro-mutex 0.5** is installable and it requires
│ └─ libprotobuf 4.24.3 , which can be installed;
└─ ros-noetic-cv-bridge is not installable because there are no viable options
├─ ros-noetic-cv-bridge 1.16.2 would require
│ └─ py-opencv >=4.9.0,<5.0a0 but there are no viable options
│ ├─ py-opencv 4.9.0 would require
│ │ └─ libprotobuf >=4.25.3,<4.25.4.0a0 , which conflicts with any installable versions previously reported;
│ ├─ py-opencv 4.9.0 would require
│ │ └─ libprotobuf >=4.25.2,<4.25.3.0a0 , which conflicts with any installable versions previously reported;
│ ├─ py-opencv 4.9.0 would require
│ │ └─ libprotobuf >=4.24.4,<4.24.5.0a0 , which conflicts with any installable versions previously reported;
│ ├─ py-opencv 4.9.0 would require
│ │ └─ libprotobuf >=4.25.1,<4.25.2.0a0 , which conflicts with any installable versions previously reported;
│ └─ py-opencv 4.9.0 would require
│ └─ libprotobuf >=3.21.12,<3.22.0a0 , which conflicts with any installable versions previously reported;
└─ ros-noetic-cv-bridge 1.16.2 would require
└─ ros-distro-mutex 0.4.* noetic, which conflicts with any installable versions previously reported.
What it happened with the last rebuild is that we built some packages with a given version of libprotobuf (4.24.3
), and others with another (something newer, as we used py-opencv
4.9.0 that does not have a 4.24.3
build. I can't think of a solution without going for a rebuild, probably with the latest pinned version of libprotobuf. The main problem here is that libprotobuf is also a dependency of most machine learning packages that frequently are not migrated quickly.
Probably a easier fix in the short term may be to revert https://github.com/RoboStack/ros-noetic/pull/464, we will have again the gazebo plugin problems, but that seems less problematic that the impossibility of installing ros-noetic-desktop
.
Agreed! Will aim for a rebuild in the not too distant future.
Thanks a lot! I was able to install this together with ros-noetic-desktop
. Just did mamba update --all
before and installation went through.
Solution to issue cannot be found in the documentation.
Issue
Listed as available for linux-64 https://robostack.github.io/noetic.html
The same happens when providing the version explicitly:
Installed packages
Environment info