feat: update installation scripts to pre-install fastmcp for successful rosdep upgrades

This commit is contained in:
Даниил Грабарь
2026-06-14 16:22:00 +03:00
parent 7d508765d0
commit 030e975d59
3 changed files with 15 additions and 12 deletions
+5 -4
View File
@@ -196,12 +196,13 @@ def _ensure_root_pip_break(p: process.StepProgress) -> None:
">> /root/.config/pip/pip.conf )"
)
process.stream(privilege.sudo(["bash", "-c", snippet]), on_line=p.log)
# rosdep calls `pip install -U <pkg>` which tries to upgrade all transitive deps,
# including packages installed by apt that have no pip RECORD file. Pre-installing
# them via pip creates the RECORD so the later upgrade can proceed cleanly.
# rosdep calls `pip install -U <pkg>` which upgrades every transitive dependency,
# including packages installed by apt that have no pip RECORD file, causing an
# uninstall failure. Pre-installing with --ignore-installed creates pip RECORD
# files for all transitive deps so the subsequent rosdep upgrade succeeds.
process.stream(
privilege.sudo(["pip3", "install", "--break-system-packages",
"--ignore-installed", "typing-extensions"]),
"--ignore-installed", "fastmcp"]),
on_line=p.log,
)
+5 -4
View File
@@ -62,10 +62,11 @@ sudo mkdir -p /root/.config/pip
if ! sudo grep -qs 'break-system-packages' /root/.config/pip/pip.conf 2>/dev/null; then
printf '[global]\nbreak-system-packages = true\n' | sudo tee -a /root/.config/pip/pip.conf > /dev/null
fi
# rosdep uses `pip install -U` which tries to upgrade apt-installed packages that
# have no pip RECORD file (e.g. typing-extensions). Pre-installing via pip creates
# the RECORD so subsequent upgrades succeed.
sudo pip3 install --break-system-packages --ignore-installed typing-extensions
# rosdep calls `pip install -U <pkg>` which upgrades every transitive dependency,
# including packages installed by apt that have no pip RECORD file, causing an
# uninstall failure. Pre-installing fastmcp with --ignore-installed creates pip
# RECORD files for all its transitive deps so the later rosdep upgrade succeeds.
sudo pip3 install --break-system-packages --ignore-installed fastmcp
PROGRESS 100 "Done"
echo "ROS2 Jazzy Desktop installed successfully."
+5 -4
View File
@@ -62,10 +62,11 @@ sudo mkdir -p /root/.config/pip
if ! sudo grep -qs 'break-system-packages' /root/.config/pip/pip.conf 2>/dev/null; then
printf '[global]\nbreak-system-packages = true\n' | sudo tee -a /root/.config/pip/pip.conf > /dev/null
fi
# rosdep uses `pip install -U` which tries to upgrade apt-installed packages that
# have no pip RECORD file (e.g. typing-extensions). Pre-installing via pip creates
# the RECORD so subsequent upgrades succeed.
sudo pip3 install --break-system-packages --ignore-installed typing-extensions
# rosdep calls `pip install -U <pkg>` which upgrades every transitive dependency,
# including packages installed by apt that have no pip RECORD file, causing an
# uninstall failure. Pre-installing fastmcp with --ignore-installed creates pip
# RECORD files for all its transitive deps so the later rosdep upgrade succeeds.
sudo pip3 install --break-system-packages --ignore-installed fastmcp
PROGRESS 100 "Done"
echo "ROS2 Jazzy (ros-base) installed successfully."