On a sizeable ros project, there may be a few dozen rosdeps to install. The script that rosdep output has one apt-get install -y command per dependency. Every apt install command takes time to read the package list, especially in an emulated environment this takes several seconds. When the given installation command was a no-op, which often happens as many ros packages share dependencies, this time is completely wasted.
A manipulation of the output script to combine into a single apt-get install -y pkg pkg pkg command will speed up this step significantly.
Related Issues
N/A
Completion Criteria
install_rosdeps.sh script output of gather_rosdeps phase has all apt-get commands combined into one.
Implementation Notes / Suggestions
something like
cat install_rosdeps.sh |
# match `apt-get install` lines
sed some_pattern |
# get just the package names
awk '{print $4}' |
# maybe sort?
sort |
# combine onto one line
awk '{print}' ORS='" '
Description
On a sizeable ros project, there may be a few dozen rosdeps to install. The script that
rosdep
output has oneapt-get install -y
command per dependency. Every apt install command takes time to read the package list, especially in an emulated environment this takes several seconds. When the given installation command was a no-op, which often happens as many ros packages share dependencies, this time is completely wasted.A manipulation of the output script to combine into a single
apt-get install -y pkg pkg pkg
command will speed up this step significantly.Related Issues
N/A
Completion Criteria
install_rosdeps.sh
script output ofgather_rosdeps
phase has allapt-get
commands combined into one.Implementation Notes / Suggestions
something like
Testing Notes / Suggestions
Check file contents to expected.