Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation on install ros2-base from source #870

Open
mturnshek opened this issue Dec 18, 2018 · 8 comments
Open

Documentation on install ros2-base from source #870

mturnshek opened this issue Dec 18, 2018 · 8 comments
Labels
help wanted Extra attention is needed

Comments

@mturnshek
Copy link

Feature request

Instructions for installing ros2-base from source.

Feature description

Documentation with a list of the essential packages for each distribution. This would allow a user to install precisely the packages they want, from source, by ignoring all auxiliary packages. This is important, because currently installing from source requires many gigabytes, but not all ros2 packages are used by everyone.

Implementation considerations

Alternatively, instructions for how to compile additional packages with new or modified code on top of an existing debian package installation.

@clalancette
Copy link
Contributor

Alternatively, instructions for how to compile additional packages with new or modified code on top of an existing debian package installation.

FWIW, this is possible today by installing from binaries, cloning the set of repositories you want to modify, modifying them, building, and sourcing the resulting install/setup.bash. It's almost identical to how it would work in ROS 1, but I agree that more documentation about overlaying like this could be helpful for ROS 2.

@nuclearsandwich
Copy link
Member

rosinstall_generator can be used with the --upstream-development flag to create a rosinstall file that includes only ros-base. As packages start to diverge for Dashing, this method will be out-of-sync using crystal as the target rosdistro but it's suitable for the time being.

@goekce
Copy link

goekce commented Aug 31, 2020

As a newbie I was also searching for information to build only ros-base from scratch for Raspberry Pi. The ROS2 documentation only mentions downloading https://github.com/ros2/ros2/blob/master/ros2.repos, which probably contains the desktop (variant)[https://github.com/ros2/variants]. It would be great if the instructions for compiling the packages for an embedded device could be included. For example, compiling desktop variant on a Raspi 3 with 1GB RAM fails when compiling the rviz tools.

I generated and cloned the dependencies for ros-base using rosinstall_generator:

rosinstall_generator ros_base --deps --rosdistro foxy | vcs import src/

For compilation it makes sense to use --executor sequential or --parallel-workers 1 with colcon with colcon

colcon build --executor sequential --symlink-install

Note that some users had problems with rosinstall_generator.

@clalancette
Copy link
Contributor

I'm actually going to move this over to the ros2_documentation repository, which is where any documentation for this would reside. I'll also say that any help with doing this documentation would be appreciated. It's on our backlog, but we may not get to it anytime soon.

@clalancette clalancette transferred this issue from ros2/ros2 Sep 17, 2020
@clalancette clalancette added the help wanted Extra attention is needed label Sep 17, 2020
@gavanderhoorn
Copy link
Contributor

gavanderhoorn commented Jul 6, 2022

Part of this (a bit of explanation at least), seems to have been added by #1459.

Explaining the actual use of rosinstall_generator with these variants is still missing I believe.

Thing is: instructions would largely overlap with the current from-source builds / development environment setup guides (it would be a guide about using rosinstall_generator to build a ROS 2 variant, not a user manual for rosinstall_generator).

Would we want a section in Installation » Alternatives » Ubuntu (source), next to Get ROS 2 code, or a new page?

Content would be similar to this comment in Core, base and desktop releases on ROS Discourse.

Personally, I would perhaps prefer a Building a ROS 2 installation variant from source page or something, to not complicate the -- already quite long -- installation from-source page even more, but it would mean adding yet another page which explains how to build ROS 2 from source.

@clalancette
Copy link
Contributor

Thing is: instructions would largely overlap with the current from-source builds / development environment setup guides (it would be a guide about using rosinstall_generator to build a ROS 2 variant, not a user manual for rosinstall_generator).

Yes, one of the reasons we haven't written this tutorial yet is exactly because of this overlap.

We have a long-term goal to stop using ros2.repos completely and switch to using rosinstall_generator commands, but that has a number of implications both for core CI and for downstream consumers. This is not likely to happen anytime soon, so we can proceed with adding some documentation somewhere for using rosinstall_generator specifically for ROS 2.

Would we want a section in Installation » Alternatives » Ubuntu (source), next to Get ROS 2 code, or a new page?

Content would be similar to this comment in Core, base and desktop releases on ROS Discourse.

I don't think we should add a new page; there are already a bewildering array of options. Instead, what I think we should do is revamp the current https://docs.ros.org/en/rolling/Installation/Alternatives/Ubuntu-Development-Setup.html page (along with the RHEL, Windows, etc pages) to streamline the current content. I feel like a bunch of that can be moved elsewhere. Once we've done that, I think it would be reasonable to add a small section about using rosinstall_generator.

@gavanderhoorn
Copy link
Contributor

So that basically makes it impossible to move forward with this issue, as it's blocked by:

what I think we should do is revamp the current docs.ros.org/en/rolling/Installation/Alternatives/Ubuntu-Development-Setup.html page (along with the RHEL, Windows, etc pages) to streamline the current content. I feel like a bunch of that can be moved elsewhere.

@clalancette
Copy link
Contributor

So that basically makes it impossible to move forward with this issue, as it's blocked by:

It doesn't feel impossible; that revamp seems fairly straightforward to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants