<aside> 💡 sudo apt update 를 하다 보면 가끔 ‘i386’을 지원하지 않는다 하는 메세지가 나올 때가 있다. 해결 방법을 바로 알아보자.

</aside>

원인

apt(8)sources.list(5) 라는 소스 목록에서 패키지를 찾는다. 이 소스 목록에 내 아키텍처를 적어주지 않으면 apt 설정에 지정된 모든 아키텍처의 패키지를 다운로드 하는데, 해당 리포지토리에 i386 패키지가 없어서 나오는 메세지이다.

해결 방법

sources.list 에 어떤 아키텍쳐를 다운로드할지 명시해주면 이 문제가 해결된다. 이 소스 목록은 /etc/apt/sources.list.d/ 경로에 주로 있다. (물론 /etc/apt/sources.list 에 있을 수도 있는데, 이런 경우는 depreciation 메세지도 같이 나올 것이다. Debian, Ubuntu 를 참고해 주기 바란다.) 이 경로에서 문제가 발생하는 소스 목록을 찾아야 한다. 필자의 경우는 mono framework가 문제였다.

Untitled

Untitled

해당 .list 파일을 찾아 열어 수정해주어야 한다. 다만 ls -l (ll )로 보면 그룹 권한이 r--이기 때문에 sudo 를 이용하여 편집해야 한다.

sudovi nano code 등등 편한 에디터로 해당 파일을 열어 주자. (sudo vi mono-official-stable.list 와 같이)

Untitled

이렇게 생긴 한 줄이 있을 것이다.

꺾은 괄호 안에 들어가는 것들이 옵션이다. 여기에 arch=amd64 와 같이 자신의 아키텍쳐를 넣어주면 된다. 뭔지 모르겠다면 dpkg --print-architecture 명령을 실행하면 확인할 수 있다.

Untitled

이러한 모양이 되었다면 성공이다. 이제 sudo apt update 를 실행시켜 주면 더 이상 메세지가 나오지 않는 것을 확인할 수 있다.

본 김에 공부하기

deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]

이러한 형식으로 쓰는 것이라고 한다. deb 뒤의 꺾은 괄호 안에는 띄어쓰기로 옵션을 구분한다. uri에는 주소, suite 에는 stable, bullseye와 같은 데비안의 코드네임을 적는 칸이다. component 들은 보통 main을 적고 contrib, non-free 이 중 하나라고 한다.