Сборка debian пакета из ROS ноды и его загрузка в репозиторий
Опорная статья: How to make a debian from a ROS package
Статья Лёши Рогачевского: Сборка ROS-пакетов в deb-пакеты (на примере OpenCV3)
Сборка debian пакета из ROS ноды.
Проще всего собирать на той же платформе, для которой предполагается пакет (для остального - есть docker и chroot, об этом в статье у Лёши). Например, если пакет будет устанавливаться на raspbian, то в ней его и собирать. Следующие шаги выполняются именно для raspbian.
Что нужно для сборки?
- Скачать и установить инструментарий:
sudo apt-get install python-bloom fakeroot debhelper dpkg-dev
- Перейти в папку с исходником ROS ноды (обычно ~/catkin_ws/src/<название ноды>)
- Подготовить ROS ноду к сборке (в папке с исходником должна появиться папка debian)
bloom-generate rosdebian --os-name debian --os-version stretch --ros-distro kinetic
- Обновить все зависимости
source /opt/ros/indigo/setup.bash
- Собрать пакет
fakeroot debian/rules binary
В итоге в корне исходника должно появиться два файла .deb
Оба файла следует загрузить в репозиторий.
Загрузка debian пакетов в репозиторий
Чтобы загрузить пакет в репозиторий в соответствии с соглашениями, которые используются при построении linux репозиториев, следует воспользоваться утилитой aptly. Предполагается, что aptly уже установлена и настроена. Для загрузки пакета следует выполнить следующие шаги:
- Войти в терминал репозитория
- Загрузить собранные debian пакеты в папку, которую просматривает aptly
- Запустить aptly в docker контейнере:
sudo docker exec -it aptly /bin/bash
- Добавить загруженные пакеты в репозиторий (для репозитория coex подробности в гисте урпылки):
aptly repo add rpi-ros-kinetic /opt/aptly/ros-kinetic/ aptly publish update stretch rpi-ros-kinetic