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

On an OSX installation, you compile all packages yourself, on your local machine. In order to do that, you need the sources, so you download them to your machine as one of the steps in the OSX Installation tutorial.

On Ubuntu, users typically install the debians (or .deb). These are build by the ROS buildfarm (status here), and apt-get only downloads the .deb archives. Those archives typically only contain the binaries (ie: the results of the compilation steps) and not the sources (the input of the compilation process). That is the main reason you don't find the sources on a ROS Ubuntu installation that didn't do the source install.

It is perfectly possible for the author of the package however to include the sources in a .deb: all he needs to do is add an install rule to his CMakeLists.txt which copies the sources into a directory which will be included in the .deb. Upon installation of the .deb, the user will then also find the sources on his system (probably somewhere under /opt/ros/DISTRO/share/PKG_NAME/).

Installing the sources in that way is not recommended though, as (at least on Debian/Ubuntu) you can get the sources for any .deb using: apt-get source PKG_NAME (no sudo). Note that this requires that you have a correct deb-src .. line in your /etc/apt/sources.list for the relevant repository.

On an OSX installation, you compile all packages yourself, on your local machine. In order to do that, you need the sources, so you download them to your machine as one of the steps in the OSX Installation tutorial.

On Ubuntu, Ubuntu (or any platform for which ROS builds binary packages), users typically install the debians (or .deb). These are build by the ROS buildfarm (status here), and apt-get only downloads the .deb archives. Those archives typically only contain the binaries (ie: the results of the compilation steps) and not the sources (the input of the compilation process). That is the main reason you don't find the sources on a ROS Ubuntu installation that didn't do the source install.

It is perfectly possible for the author of the package however to include the sources in a .deb: all he needs to do is add an install rule to his CMakeLists.txt which copies the sources into a directory which will be included in the .deb. Upon installation of the .deb, the user will then also find the sources on his system (probably somewhere under /opt/ros/DISTRO/share/PKG_NAME/).

Installing the sources in that way is not recommended though, as (at least on Debian/Ubuntu) you can get the sources for any .deb using: apt-get source PKG_NAME (no sudo). Note that this requires that you have a correct deb-src .. line in your /etc/apt/sources.list for the relevant repository.