How to check binary dependency during ROS Debian package installation

asked 2018-06-22 02:51:16 -0500

cathyshen gravatar image

updated 2018-06-22 02:52:36 -0500

I'd like to check if binary dependencies have been installed when install my ROS Debian package (not Debian package dependency but a binary), or at least print information like "Please ensure xxx has been installed in your system" to guide users to manually resolve the dependencies before use my package. Is there anyone know how to get it supported for the ROS packages generated by bloom system? Through CMakeLists.txt?

edit retag flag offensive close merge delete


Unless I misunderstand you: isn't this the responsibility of the package manager? If your deb package correctly states the dependency (in its control file), the pkg manager should check for it when it's installing your pkg and then print either an error or install the required dependency.

gvdhoorn gravatar image gvdhoorn  ( 2018-06-22 02:54:40 -0500 )edit

I was thinking the control file in release repo is generated by bloom automatically. E.g. . Do you mean we can add binary deps in that file manually?

cathyshen gravatar image cathyshen  ( 2018-06-24 21:34:11 -0500 )edit

I was thinking the control file in release repo is generated by bloom automatically

It is. The accepted best practice is to state the dependency on the (.deb) pkg that provides the binary that your package depends on. If that is not possible, then things are more difficult.

gvdhoorn gravatar image gvdhoorn  ( 2018-06-25 03:15:21 -0500 )edit

Thank you, @gvdhoorn. I might run into that "complex" situation for some binaries I should manually installed but not through apt-get installation.

cathyshen gravatar image cathyshen  ( 2018-06-25 03:44:49 -0500 )edit

Yes, that is a limitation of the debian-focused/inspired build infrastructure that ROS currently uses (both 1 and 2).

gvdhoorn gravatar image gvdhoorn  ( 2018-06-25 03:45:52 -0500 )edit