feat: pre-install typing-extensions to ensure smooth upgrades for apt-installed packages

This commit is contained in:
Даниил Грабарь
2026-06-14 16:17:27 +03:00
parent 0fe84a907f
commit 7d508765d0
3 changed files with 16 additions and 0 deletions
+8
View File
@@ -196,6 +196,14 @@ def _ensure_root_pip_break(p: process.StepProgress) -> None:
">> /root/.config/pip/pip.conf )" ">> /root/.config/pip/pip.conf )"
) )
process.stream(privilege.sudo(["bash", "-c", snippet]), on_line=p.log) 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.
process.stream(
privilege.sudo(["pip3", "install", "--break-system-packages",
"--ignore-installed", "typing-extensions"]),
on_line=p.log,
)
def _register_rosdep_source(p: process.StepProgress, env: dict) -> None: def _register_rosdep_source(p: process.StepProgress, env: dict) -> None:
+4
View File
@@ -62,6 +62,10 @@ sudo mkdir -p /root/.config/pip
if ! sudo grep -qs 'break-system-packages' /root/.config/pip/pip.conf 2>/dev/null; then 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 printf '[global]\nbreak-system-packages = true\n' | sudo tee -a /root/.config/pip/pip.conf > /dev/null
fi 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
PROGRESS 100 "Done" PROGRESS 100 "Done"
echo "ROS2 Jazzy Desktop installed successfully." echo "ROS2 Jazzy Desktop installed successfully."
+4
View File
@@ -62,6 +62,10 @@ sudo mkdir -p /root/.config/pip
if ! sudo grep -qs 'break-system-packages' /root/.config/pip/pip.conf 2>/dev/null; then 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 printf '[global]\nbreak-system-packages = true\n' | sudo tee -a /root/.config/pip/pip.conf > /dev/null
fi 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
PROGRESS 100 "Done" PROGRESS 100 "Done"
echo "ROS2 Jazzy (ros-base) installed successfully." echo "ROS2 Jazzy (ros-base) installed successfully."