기초 설치하면 좋은 패키지들과 근본적 오류

이번 내용은 기초 SETUP에 관한 내용이다. 사실, 글을 작성하기가 조금 무서운게 작성해야 할 사안들이 너무나도 많다. 본 필자가 Trouble shooting을 하며 겪은 내용들을 바탕으로 글을 작성하겠다.

  • 학부생 관점에서 이해한 내용이며, 실제 내용과 조금은 차이가 있을 수 있다.

필수 설치 패키지

만약 오류가 발생한다면, ‘1. 자주 발생하는 오류’로 이동하라. 대부분의 오류들은 이해만 한다면 해결이 가능한 문제들이다.

sudo apt update && sudo apt upgrade

위 구문은 가장 많이 보게 될 것인데, 이유는 간단하다. 우리들이 새로운 패키지를 apt install을 통해 설치하고 싶다면, 패키지를 찾아야 한다. 당연하게도 우리가 찾는 것이 아니고, 컴퓨터에게 갈 길을 안내해주는 역할을 우리가 해주어야 한다.

“어..? 어떻게요?”

-> echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main” sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

설치를 안내해주시는 분들은 순수 이동하지 않고 명령어로 할 수 있게, 동시에 architecture을 묻지 않는 수고스러움을 덜고 한번에 해 준다. (완전 감사한 존재들이다)

블로그에 대부분 다 명시되어 있는, sources.list.d 폴더에 list를 생성하여 추가하는 방식으로 대부분 차용한다. 실제로 /etc/apt/sources.list.d 폴더에 가본다면, ros를 설치하기 위해 추가 해 두었던 폴더와 리스트들이 각각 존재할 것이다. (추가적 패키지를 설치하기 위한 과정을 하나도 거치지 않았다면 없다.)

그렇다면, 이 소스들을 추가해 두었으니 업데이트를 받으며 없는 파츠들을 긁어모으는 행동을 진행하는데, 이 과정이 바로 apt update이다.

  • 완전 처음 보는 사람들에게는 sudo가 무엇인지 궁금할 수 있다.
  • sudo는 ‘관리자 권한으로 실행’ 이라는 뜻으로, 우리들이 무언가 하다가 ‘Permission denied(권한 거부)’가 뜬다면 관리자 권한(sudo)로 실행시켜서 해결할 수 있다.
  • 사용 방법은 당연하게도 앞에 sudo를 붙인다. (sudo가 무엇인지 찾을 수 없다는 오류 메세지가 뜬다면, apt install sudo를 진행하면 된다.)

sudo apt install net-tools && sudo apt install wireless-tools

net-tools와 wireless-tools는 각각 인터넷 연결과 관련된 패키지들이다.

net-tools는 ‘ifconfig’라는 명령어를 사용할 수 있게 해준다. ifconfig는 ip a 와 비슷한 명령어로, Network Managing, 즉 네트워크를 만지는 데 도움을 주는 도구이고,

wireless-tools는 ‘iwconfig’라는 명령어를 사용할 수 있게 해준다. iwconfig는 ifconfig와 비슷하게 생겼지만 다른 역할을 수행한다. wireless-tools라는 이름에 걸맞게 무선 통신에 관해 도움을 주는 녀석인데, 만일 인터넷이 안된다면 ‘iwlist wlan0 scan’과 같이 명령어를 입력하기도 한다.

iwlist wlan0 scan을 진행하면 주변 와이파이들을 검색하고, wpa_passphrase 명령어를 이용하면 와이파이 정보를 등록해 PBKey를 따내 와이파이 설정을 할 때 유용하게 쓰이는데, 이는 인터넷 오류와 관련하여 더욱 길게 작성할 예정이다. 왜냐면 보통 초기 설정을 진행하면 운이 없지 않는 이상 잘 작동한다. (본 필자는 이것 때문에 열 시간 넘게 소모했다.)

sudo apt install tmux

tmux는 완전 고수처럼 보이게 해주는 패키지다. tmux를 이용하게 되면 터미널을 쪼개고 이동하는 데 큰 도움을 주는데, 처음 사용하면 불편할 수도 있다.

그러나, 우리들이 만약 코딩을 진행하게 된다면 간단하게 하나의 터미널에서만 문제를 해결할 수 없다는 걸 금방 깨닫게 될 것이다. ROS의 경우, 우리는 Launch용 파일과, Rviz(통칭 알비즈), Gazebo(통칭 가제보), Teleop(무선통신제어)를 진행하게 되면 네 개의 터미널이 필요하다. 추가적으로 이 부분에 토픽과 서비스, RQT Graph를 띄우게 된다면 우린 5개 이상의 터미널과 그래프를 띄우게 된다. 물론, 이 내용에 대해서 몰라도 되지만 알아둬야 할 사실은 “터미널은 엄청 많이 쓰게 될 것”이다.

그렇다면, 이 터미널을 효율적으로 사용할 수 있는 수단은 뭐가 있을까? 그렇다. 바로 이런 tmux를 이용해 터미널 간 왔다갔다 하는 걸 편하게 진행하는 것에 익숙해지는 방법이 있다. 이것만 익숙해진다면 당신은 고수처럼 보임과 동시의 일의 효율성이 10% 이상은 증가할 것이다.

!!! 우분투 Server 버전을 사용하는 사람들(Desktop 버전이 아님)은 깔아도 사용하지 못한다. !!!

자주 발생하는 오류

처음 우분투 환경을 접했을 때, 그냥 블로그에서 적혀 있는 내용 그대로 따라쳤다. 당연하게도, 구문을 이해하지 못하고 따라치다 보면 발생하는 문제점들이 존재했다. 오류가 발생해도 발생했는지도 몰랐던 햇병아리 시절에는 그냥 System File들을 두려움 없이 건들었다가 우분투를 밀었던 적이 한 두번이 아니다.

이 과정에서 발생했던 오류들 중, 대부분의 오류들에 대해 해결헀고 이 점에 대해 이야기를 해주고자 한다.

404 ERROR

https://m.blog.naver.com/chandong83/220969444474 와 같은 오류가 발생하는 경우가 있다. Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim-tiny_7.2.330-1ubuntu3.1_amd64.deb 404 Not Found [IP: 91.189.88.161 80] 문제로, IP를 찾지 못하는 문제에서 발생한다.

이 오류를 근본적으로 이해하는 과정이 필요하다. 이 오류가 발생하는 이유는 Ubuntu가 새로운 릴리즈들이 쏟아져 나오면서 오류가 발생하는데,