ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

It's not a good idea to modify the system installation of a package. For one thing, it's an artifact of the current deb packaging system that the sources are still available to be rebuilt; in the future, installed packages will contain just the pieces needed to use the package, not the sources. More importantly, if you rebuild opencv2, then you should rebuild all packages that depend on it, to avoid getting into an inconsistent state. While you might be ok in this case if you're only changing the contents of a shared library, it's a slippery slope, and inconsistent builds are a pain to debug.

Instead, you should create an overlay of the packages that you want to modify and add it to your package path. In this case, you'd check out from source opencv2 and all the packages you're using that depend (directly or indirectly) on opencv2, then make changes to opencv2 and rebuild everything. rosinstall is a good tool to help you manage the contents of the overlay (but as far as I know there's no way automatically construct an appropriate rosinstall file for a given overlay situation).

It's not a good idea to modify the system installation of a package. For one thing, it's an artifact of the current deb packaging system that the sources are still available to be rebuilt; in the future, installed packages will contain just the pieces needed to use the package, not the sources. More importantly, if you rebuild opencv2, then you should rebuild all packages that depend on it, to avoid getting into an inconsistent state. While you might be ok in this case if you're only changing the contents of a shared library, it's a slippery slope, and inconsistent builds are a pain to debug.

Instead, you should create an overlay of the packages stacks that you want to modify and add it to your package path. In this case, you'd check out from source opencv2 vision_opencv and all the packages stacks you're using that depend (directly or indirectly) on opencv2, vision_opencv, then make changes to opencv2 and rebuild everything. rosinstall is a good tool to help you manage the contents of the overlay (but as far as I know there's no way automatically construct an appropriate rosinstall file for a given overlay situation).