환경설정/Ubuntu

[TroubleShooting] python3-rospkg-modules 설치 에러 - dpkg: error processing archive ... trying to ovewrite

dpswlsldj 2021. 3. 12. 19:41
728x90

수행 동작

ROS2 설치 중 아래 명령어 수행.

$ sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  libbullet-dev \
  python3-colcon-common-extensions \
  python3-flake8 \
  python3-pip \
  python3-pytest-cov \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  wget

 

에러 내용

아마도 기존에 Ubuntu에 설치해둔 다른 패키지이나 찌꺼기 파일 때문에 설치가 꼬인 것 같습니다.

 

콘솔에서는 sudo apt --fix-broken install 명령어를 통해 해결하라고 안내를 해주지만 해당 명령어로 해결이 안 되는 상황이었습니다.

Preparing to unpack .../python3-catkin-pkg-modules_0.4.23-1_all.deb ...
Unpacking python3-catkin-pkg-modules (0.4.23-1) ...
dpkg: error processing archive /var/cache/apt/archives/python3-catkin-pkg-modules_0.4.23-1_all.deb (--unpack):
 trying to overwrite '/usr/lib/python3/dist-packages/catkin_pkg/__init__.py', which is also in package python3-catkin-pkg 0.4.16 -1
Preparing to unpack .../python3-rospkg-modules_1.2.10-1_all.deb ...
Unpacking python3-rospkg-modules (1.2.10-1) ...
dpkg: error processing archive /var/cache/apt/archives/python3-rospkg-modules_1.2.10-1_all.deb (--unpack):
 trying to overwrite '/usr/lib/python3/dist-packages/rospkg/__init__.py', which is also in package python3-rospkg 1.2.3-1
Preparing to unpack .../python3-rosdistro-modules_0.8.3-1_all.deb ...
Unpacking python3-rosdistro-modules (0.8.3-1) ...
dpkg: error processing archive /var/cache/apt/archives/python3-rosdistro-modules_0.8.3-1_all.deb (--unpack):
 trying to overwrite '/usr/lib/python3/dist-packages/rosdistro/__init__.py', which is also in package python3-rosdistro 0.8.0-1
Errors were encountered while processing:
 /var/cache/apt/archives/python3-catkin-pkg-modules_0.4.23-1_all.deb
 /var/cache/apt/archives/python3-rospkg-modules_1.2.10-1_all.deb
 /var/cache/apt/archives/python3-rosdistro-modules_0.8.3-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

 

해결책

위에서 에러가 난 파일들에 대해 dpkg -i --force-overwrite 를 수행해준 후 해결할 수 있었습니다.

$ cd /var/cache/apt/archives

$ sudo dpkg -i --force-overwrite python3-catkin-pkg-modules_0.4.23-1_all.deb
$ sudo dpkg -i --force-overwrite python3-rosdistro-modules_0.8.3-1_all.deb
$ sudo dpkg -i --force-overwrite python3-rospkg-modules_1.2.10-1_all.deb

$ sudo apt-get -f install

 

스터디

dpkg 명령어는 .deb 패키지의 설치, 삭제, 정보 제공을 위해 사용됩니다.

 

dpkg -i <.deb file> 옵션은 .deb 파일을 설치하거나 최신 버전으로 업그레이드 합니다. 이 과정을 --force-overwrite 플래그를 통해 강제로 수행하게 한 것입니다.

 

apt-get -f install 명령어는 의존성이 깨진 package들을 확인하고 수정합니다.