ROS 2 -소스변경 리빌드, 업데이트 source checkout
○ 소스 변경 있을 경우 리빌드
cd ~/ros2_kilted
$ mv -i ros2.repos ros2.repos.old
$ wget https://raw.githubusercontent.com/ros2/ros2/kilted/ros2.repos
여기서 ~/ros2_kilted 폴더를 만들어야한다.
mkdir ros2_kilted
mkdir ros2_kilted/src // src 폴더도 만들어야 한다.
1-2. 소스 checkout 유지 링크
저장소 업데이트
vcs custom --args remote update
새로운 소스 코드 다운로드
vcs import src < ros2.repos
$ vcs pull src
workspace 리빌드
colcon build --symlink-install
리빌드시 에러 해결
iceoryx/iceoryx/iceoryx_hoofs/platform/linux/include/iceoryx_hoofs/platform/acl.hpp:20:10: fatal error: sys/acl.h: No such file or directory 에러 발생시
> sudo apt install -y libacl1-dev 설치 에러 해결
--- stderr: fastdds
CMake Error at cmake/modules/FindAsio.cmake:26 (message):
Not found a local version of Asio installed.
Call Stack (most recent call first):
cmake/common/eprosima_libraries.cmake:207 (find_package)
CMakeLists.txt:258 (eprosima_find_thirdparty)
> sudo apt install -y libasio-dev 설치
/bin/sh: 1: cargo: not found
> curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
> source $HOME/.cargo/env
> cargo --version
thread 'main' panicked at .../cbindgen_generator.rs:740:28:
no signatures found for building generic z_take_from_loaned 에러
1. 최신버전 rust설치
rustup update
rustc --version
2. cbindgen 설치 또는 업데이트
cargo install --force cbindgen
export PATH="$HOME/.cargo/bin:$PATH"
3. 깨진 종속성 정리
colcon build --packages-select zenoh_cpp_vendor --cmake-clean-cache
4. RUST_BACKTRACE=1로 에러 추적
RUST_BACKTRACE=1 colcon build --packages-select zenoh_cpp_vendor
1~4번까지 해도 에러가 해결되지 않는다.
그래서 ~/ros2_kilted 폴더 삭제후 다시 소스코드 다운로드 받고 재시작
Could not find a package configuration file provided by "nlohmann_json"
이런 에러 발생
>sudo apt update
>sudo apt install -y nlohmann-json3-dev
The following required packages were not found:
- lttng-ctl
> sudo apt install -y liblttng-ctl-dev
전체 워크스페이스 빌드
> colcon build --symlink-install
FastDDS만 빌드
> colcon build --symlink-install --packages-select fastdds
성공한 패키지만 스킵
> colcon build --symlink-install --packages-skip-build-finished
성공한 패키지 스킵하고 실패/변경 패키지만 빌드
> colcon build --symlink-install --continue-on-error --packages-skip-built
- --packages-skip-built: 이미 빌드 성공한 패키지는 스킵
- --continue-on-error: 하나 실패해도 계속 빌드 진행
완전 새롭게 빌드
> colcon build --symlink-install --cmake-clean-cache
colcon 명령어 list check
> colcon list --help | grep skip-built
Ros2.repos 확인하기
https://raw.githubusercontent.com/ros2/ros2/kilted/ros2.repos
cd ~/ros2_kilted
$ vcs export src > my_ros2.repos
작업 공간 저장소 세트 버전 저장 - 공유가능
■ 기타명령어
vcs 툴 버전확인
apt show python3-vcstool
apt policy python3-vcstool
최신버전 업그레이드 [ 시스템 패키지로 설치했을 경우 ]
sudo apt install --only-upgrade python3-vcstool