This project answers the following questions:
Gentoo Prefix provides an Operating System in userspace (you can place it in any folder that you have write permissions) which requires no root privileges to install or run software.a
ros-overlay provides recipes to build different ROS versions on Gentoo systems.
This project builds upon both by building nightly binary releases of a full Gentoo Prefix + ROS (Kinetic & Melodic).
Building ROS over Gentoo Prefix (on /tmp/gentoo
for amd64 over a Docker image of Ubuntu 16.04) thanks to ros-overlay.
This is a project closely related to Gentoo Prefix CI.
Builds page on Azure Pipelines: https://dev.azure.com/12719821/12719821/_build?definitionId=5
Ready-to-use releases: https://github.com/awesomebytes/ros_overlay_on_gentoo_prefix/releases
Ready-to-use built Dockers:
docker pull awesomebytes/roogp_ros_kinetic_ros_base
docker pull awesomebytes/roogp_ros_kinetic_desktop_3
docker pull awesomebytes/roogp_ros_melodic_ros_base
docker pull awesomebytes/roogp_ros_melodic_desktop_3
You can get into the dockers by doing: docker run -it awesomebytes/IMAGE_NAME /bin/bash
You'll find
Go to https://github.com/awesomebytes/ros_overlay_on_gentoo_prefix/releases and download the latest release of your choice (ros-kinetic/ros_base is 2GB~), it's divided in 1GB parts (GitHub Releases accepts files up to 2GB only) that are named like gentoo_on_tmp_with_ros-kinetic_ros_base-amd64_2020-03-08T21at41plus00at00.tar.gz.part-00
.
Put the parts together and extract (4.4GB~):
# Put the .part-XX files together
cat gentoo_on_tmp* > gentoo_on_tmp.tar.lzma
# Extract the 'gentoo' folder that contains the OS
tar xvf gentoo_on_tmp.tar.lzma
# Probably delete the intermediate files
rm gentoo_on_tmp*
# Just enter the Gentoo Prefix environment
./gentoo/startprefix
# To use ROS you'll need to source ROS and setup a couple of environment variables
source /tmp/gentoo/opt/ros/<ROS_VERSION_HERE>/setup.bash
export CATKIN_PREFIX_PATH=/tmp/gentoo/opt/ros/<ROS_VERSION_HERE>
export ROS_IP=<YOUR_IP_HERE>
ros-kinetic/desktop is ~4GB, extracted ~6GB.
The startprefix
script is used to drop the user in a shell in the Gentoo Prefix environment. It creates a softlink to /tmp/gentoo
if it does not exist in order to work.
Contributions more than welcome!
/data/local/tmp
and that's pretty much it.