
패키지를 설치하려고 하는데 우분투가 설치해 주지 않고, Apt가 "설치 후보 없음(No installation candidate)"이라는 메시지만 표시한 적이 있으신가요? 이 오류는 무엇을 의미하고, 원인은 무엇이며, 과연 해결할 수 있을까요? 이 글에서는 이 문제를 해결하는 다양한 방법을 소개합니다.
'설치 후보 없음'은 무슨 의미일까?
Apt가 존재조차 모르는 패키지를 설치하려고 하면, 해당 패키지를 찾을 수 없다는 메시지가 표시됩니다. 이는 패키지 이름을 잘못 입력했거나, 저장소에 존재하지 않는 애플리케이션을 설치하려고 할 때 발생합니다.
또 다른 경우도 있습니다. Apt는 평소 패키지를 찾는 위치에서는 해당 패키지를 발견하지 못하지만, 다른 패키지가 이를 참조하고 있기 때문에 존재 여부는 알고 있는 상황입니다.

이런 경우의 문제는 Apt가 해당 패키지를 어디서, 어떤 방식으로 찾아야 할지 모른다는 점에 있습니다.
해결 방법
먼저, 최근에 수행한 업데이트/업그레이드 과정에서 해당 항목이 제거되었는지 확인해 보세요. 복잡한 로그를 일일이 뒤질 필요는 없습니다. 단순히 업데이트/업그레이드를 한 번 더 실행하여 설치된 소프트웨어의 최신 버전 정보를 받아오면 됩니다. 이 과정에서 Apt의 데이터베이스도 함께 갱신되므로, 이후 패키지를 다시 설치해 보세요.

이 방법으로도 해결되지 않는다면, 해당 패키지가 아직 시스템에 등록되지 않은 저장소에 있을 가능성이 높습니다. 이때는 누락된 저장소를 찾아 배포판의 소프트웨어 소스에 추가하기만 하면 됩니다.
누락된 저장소를 찾을 때는 인터넷 검색이 큰 도움이 됩니다. 저장소를 찾았다면 다음 명령어로 우분투에 추가할 수 있습니다:
sudo add-apt-repository REPOSITORY_PPA
드문 경우지만, 문제의 원인이 누락된 저장소가 아니라 변경된 패키지 이름일 수도 있습니다. 비슷한 이름의 사용 가능한 패키지를 확인하려면 다음 명령어를 사용하세요:
apt-cache search PACKAGE_NAME
검색어에 따라 방대한 소프트웨어 목록이 표시될 수 있습니다. 이럴 때 결과를 좁히는 유용한 요령이 있습니다. 일반적으로 패키지 이름은 완전히 바뀌지 않고, 버전 번호나 부가적인 키워드만 달라지는 경우가 많습니다. 다행히 apt-cache는 정규식(Regex)을 지원하므로, 특정 키워드로 시작하는 패키지만 검색할 수 있습니다.
예를 들어 위 명령어에서 PACKAGE_NAME 대신 "firefox"를 입력했다면, 이름이나 설명에 firefox가 포함된 수십 개의 항목이 한꺼번에 표시됩니다. 이럴 때는 아래와 같이 검색해 보세요:
apt-cache search "^PACKAGE_NAME*"
위 명령어는 이름이 PACKAGE_NAME으로 시작하는 모든 패키지의 목록을 반환합니다. PACKAGE_NAME을 firefox로 바꿔 실행하면 "firefox"로 시작하는 모든 패키지 목록이 나타나며, 그중에서 찾고자 하던 패키지의 대체品을 발견할 수도 있습니다.
"설치 후보 없음" 문제를 겪어본 적이 있으신가요? 해결하셨다면 어떤 방법을 사용하셨는지 아래 댓글로 공유해 주세요. 이어서 우분투에서 git 사용자명과 이메일을 설정하는 방법도 확인해 보시기 바랍니다.