What is the benefit of building ROS from source?
I'm just wondering what are the benefits of installing ROS from source, compared to installing from pre-built binary with sudo apt-get install ros-kinetic-desktop-full
?
My general understanding is that people build a library X
from source because they want to:
- customize the library
X
itself - or because they require new features from the lastest version of other library
Y
(which they want to build the libraryX
with)
Question
So my question is kind of two-fold:
- What are the benefits of installing
ROS
from source, as opposed to installing bysudo apt-get
? - If my understanding above is correct, how do we build
ROS
library with newer version of libraries such aspcl-1.9
,boost-1.70
,vtk-8.2.0
orOpenCV4
?
Example
For example, when I try to build ROS
from source (as in the manual), it asks me to install libqt5
even if Qt5
was installed already (built from source and use in other project). How should I tell rosdep
to skip this, or pass Qt5
path to rosdep
(similar to the way we pass CMAKE_PREFIX_PATH
to CMake
)?
w@laptop:~/mylib$ cd ros_catkin_ws/
w@laptop:~/mylib/ros_catkin_ws$ rosdep install --from-paths src --ignore-src --rosdistro kinetic
executing command [sudo -H apt-get install libqt5widgets5]
[sudo] password for w:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
cmake-data libjsoncpp1
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5svg5
Suggested packages:
libqt5libqgtk2 qt5-image-formats-plugins qtwayland5
The following NEW packages will be installed:
libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5svg5 libqt5widgets5
0 upgraded, 6 newly installed, 0 to remove and 18 not upgraded.
Need to get 0 B/7,204 kB of archives.
After this operation, 25.0 MB of additional disk space will be used.
Do you want to continue? [Y/n]
re: your second question: #q289264 and #q248457.
Edit: is this an xy-problem?
@gvdhoorn, I think my question is not good, rather. So I can't (don't know how to) build ROS from source with newer libraries such as
pcl-1.9
orQt5
(X), but instead I asked a more general question of the benefits of building ROS from source and how to build with libraries in general (Y). I should have asked the 2nd part of my question in another post.If I am not wrong, when you install a defined ros distro from binary, you are limited to the OS you are using. If you have ubuntu 18.04, you cannot install kinetic directly. Here is where you can use as workaround the source installation (even personally i would use docker, which helps you to control easier the versions inside your OS).