Conversation
|
There's some additional information regarding the move away from global Python package installations in PEP 668. From what I understand, Ubuntu will be keeping the marker file present in the base image, and because the ROS images use Ubuntu as their base image, this problem will persist. I haven't tried this yet, but you could try removing the marker file from the base image: rm -rf /usr/lib/python3.12/EXTERNALLY_MANAGEDYou might need to updated the system path afterwards as well. Using a virtual environment seems like the best approach moving forward though. |
.docker/Dockerfile
Outdated
| # Configure a new non-root user | ||
| ARG USERNAME=blue | ||
| ARG USER_UID=1000 | ||
| ARG USER_UID=1001 # ros image now includes a user "ubuntu" at UID 1000 |
There was a problem hiding this comment.
You may run into permissions issues here when trying to use the devcontainer. The blue user likely won't belong to the same group as your personal user on your local system (set to 1000 by default). My solution has been to go along with the ubuntu user standardization.
There was a problem hiding this comment.
Hm, I hadn't considered the permission ramifications. So you are using the user ubuntu?
# Configure a new non-root user
#
# ros image now includes a user "ubuntu" at UID 1000
ARG USERNAME=ubuntu
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME \
&& usermod -a -G dialout $USERNAME \
&& echo "source /usr/share/bash-completion/completions/git" >> /home/$USERNAME/.bashrc
There was a problem hiding this comment.
Yeah. This was motivated by discussions in cloud-images!2005129, which make it seem like the Ubuntu devs are attempting to standardize the ubuntu user. You could still delete the ubuntu user to regain access to UID 1000, but I opted against that.
|
@evan-palmer (finally), I believe this branch is complete. Multi-platform builds are time consuming. Starting on testing. |
!! Modify "#!" in /usr/bin/colcon to use /usr/bin/env - Switch order of ROS2 and venv activation
|
This pull request is in conflict. Could you fix it @amarburg? |
|
This PR has been split up:
Once those two are merged, the jazzy branch then needs to be updated to build Mavros from source (there are binary packages for rolling) |
Per blue!169, an official image for Jazzy is blocked by the lack of a Jazzy package for Mavros
Changes Made
Install Mavros and Mavlink from source (Rolling release) directly into the blue workspace.
Updates to Gazebo "Harmonic"
This also required bashing through issues related to Ubuntu 24.04:
~/.venv/blueand activate by default both within the build and when running in the docker. This leads to rosdep installing some pip dependencies into the venv.Testing
Please provide a clear and concise description of the testing performed.