Computer >> 컴퓨터 >  >> 시스템 >> Linux

Debian·Ubuntu에서 apt-get 대신 apt 명령어 쓰는 법: 핵심 차이와 실전 활용 가이드

리눅스는 끊임없이 진화하는 운영체제입니다. 대부분의 변화는 커널과 내부 코드 개선처럼 눈에 잘 띄지 않지만, 때로는 사용자가 새로운 방식에 적응해야 할 때도 있습니다.


apt-get 명령어의 변화가 바로 그런 사례입니다. 다행히 데비안 기반 시스템(우분투, 리눅스 민트, 라즈베리 파이 OS 등)은 apt-get을 갑자기 없애는 대신, 더 간결한 apt 명령어를 함께 제공하며 점진적으로 전환하고 있습니다.


그렇다면 왜 이런 변화가 일어난 것이고, 실제로 무엇이 달라졌을까요?


APT vs APT-GET


apt 명령어 도입에는 분명한 논리가 있습니다. 지금까지 고급 패키지 도구(Advanced Package Tool)를 사용하려면 apt-getapt-cache 두 명령어 세트를 익혀야 했고(데스크톱 환경에서는 시냅틱 같은 GUI 패키지 관리자를 쓰기도 했습니다), 오랜 기간 기능이 덧붙여지면서 구조가 다소 난잡해졌습니다.


apt는 apt-get과 apt-cache에서 가장 자주 쓰이는 옵션만 모아 놓은 통합 명령어입니다. 덕분에 명령어 길이도 짧아지고 개수도 줄었으며, 중복으로 인한 혼란도 사라졌습니다.


게다가 apt는 단순한 통합을 넘어 명령줄 사용 경험 자체를 개선했습니다. 예컨대 프로그램을 설치하거나 삭제할 때 진행률 표시줄(progress bar)이 나타나 진행 상황을 한눈에 확인할 수 있습니다.


그럼 apt를 어떻게 활용하면 좋은지 예시를 통해 살펴보겠습니다.


핵심 요약: 더 이상 '-get'은 붙이지 않는다


기존에 apt-get으로 하던 작업은 '-get' 부분만 빼면 그대로 apt로 실행할 수 있습니다. 예를 들어 다음 명령어는...


apt-get install [packagename]

...다음처럼 바뀝니다.


apt install [packagename]

이 규칙은 모든 apt-get 명령어에 동일하게 적용됩니다. 게다가 apt에는 추가 기능도 있습니다. 여러 패키지 한 번에 설치부터 시스템에서 패키지 완전 삭제까지, 소프트웨어 업그레이드와 제거와 관련된 옵션이 한층 풍부해졌습니다.


full-upgrade로 완전한 업그레이드


updateupgrade 명령어는 이미 잘 알고 있을 겁니다. update는 저장소의 패키지 정보를 갱신하고, upgrade는 실제 설치된 패키지를 업그레이드합니다.


여기에 apt는 full-upgrade라는 새로운 명령어를 선보입니다.


sudo apt full-upgrade

이 명령어는 패키지를 업그레이드할 뿐 아니라, 업그레이드 과정에서 더 이상 필요하지 않은 구버전 패키지까지 함께 정리해 줍니다. 일반적인 apt upgrade로는 처리되지 않는 부분입니다.


여러 패키지 한 번에 설치하기


바쁠 때 여러 프로그램을 한꺼번에 설치해야 한다면? 아니면 설치 작업 자체를 더 효율적으로 처리하고 싶다면? apt install 명령어 하나로 충분합니다. 설치할 패키지 이름을 차례로 나열하기만 하면 됩니다.


sudo apt install [package_1] [package_2] [package_3]

이미 설치된 앱이라면 apt가 데이터베이스에서 더 최신 버전을 찾아 대신 설치해 줍니다. 아주 간단하죠.


업그레이드 없이 패키지 설치하기


때로는 기존 패키지를 최신 버전으로 올리지 않고 재설치해야 할 수 있습니다(손상된 패키지 복구 등). 이럴 때도 apt가 편리합니다.


sudo apt install [packagename] --no-upgrade

반대로 아직 설치하지 않은 패키지의 업그레이드 파일만 미리 내려받아 두고 싶다면 다음 명령어를 사용하세요.


sudo apt install [packagename] --only-upgrade

마지막 명령어는 다소 생소한 상황에서 쓰이긴 하지만, 알아두면 언젠가 분명 도움이 됩니다.


특정 버전의 패키지 설치하기


최신 업데이트가 내가 쓰는 기능을 망가뜨렸다면 어떻게 해야 할까요? 이럴 때는 특정 버전으로 되돌리는 것이 좋습니다. 먼저 원하는 패키지의 정확한 버전 번호를 조사해 두어야 합니다.


버전을 확인했다면 패키지명과 버전을 지정해서 설치하면 됩니다.


sudo apt install [packagename]=[version_number]

단, 이후 업그레이드가 진행되면 다시 최신 버전으로 교체될 수 있다는 점을 기억하세요. 개발자가 문제를 수정하기 전까지는 필요할 때마다 이 명령어를 반복해서 실행해야 합니다.


업그레이드 가능·설치된 패키지 목록 보기


데비안 계열 시스템에서 apt로 소프트웨어를 관리할 때 또 하나 유용한 기능이 바로 list 옵션입니다. 지정한 조건에 맞는 패키지 목록을 출력해 줍니다.


예를 들어 업그레이드가 대기 중인 패키지 목록은 다음과 같이 확인할 수 있습니다.


apt list --upgradeable

더 간단하게, 설치된 패키지 목록은 이렇게 조회합니다.


apt list --installed

세 번째 옵션은 현재 운영체제와 하드웨어에서 사용 가능한 모든 패키지의 목록을 보여줍니다.


apt list --all-versions

remove vs purge: 무엇이 다를까?


기존의 remove 방식도 apt에서 그대로 동작합니다. 설치의 반대 개념으로 패키지 이름을 지정하면 됩니다.


sudo apt remove [packagename]

그런데 비슷하게 동작하는 purge 명령어도 있습니다.


sudo apt purge [packagename]

그렇다면 차이점은 무엇일까요?


apt remove는 실행 파일(바이너리)만 삭제합니다. 그래서 설정 파일 같은 잔여 파일이 시스템에 남을 수 있습니다.


반면 apt purge는 바이너리와 설정 파일 등 해당 패키지와 관련된 모든 흔적을 깔끔하게 지워줍니다.


autoremove로 시스템 청소하기


remove와 purge는 시스템에서 불필요한 소프트웨어를 제거할 때 유용합니다. apt-get 시절에는 cleanautoclean 명령어로 좀 더 체계적인 정리를 했는데요.


apt에서는 이것이 autoremove 단 하나의 기능으로 통합됐습니다. 실행하면 다른 애플리케이션의 의존성으로 자동 설치됐던 라이브러리와 패키지 중, 더 이상 어느 곳에서도 필요로 하지 않는 것들을 찾아 제거합니다.


sudo apt autoremove

물론 그만큼 소중한 디스크 공간도 확보됩니다!


새로운 명령어, 더 나은 기능


apt-get만으로도 데비안 계열 리눅스에서 소프트웨어를 업데이트, 업그레이드, 설치, 제거할 수 있습니다. 하지만 더 간결한 apt 명령어를 사용하면 훨씬 많은 작업을 손쉽게 처리할 수 있습니다.


여러분은 어느 쪽을 선호하시나요? apt-get이 완전히 사라질 때까지 고수할 계획인가요, 아니면 이미 apt로 갈아타셨나요? 댓글로 의견을 남겨주시고, 이 글에서 다뤘으면 하는 명령어가 있다면 함께 알려주세요.


이미지 출처: Brian A Jackson/Shutterstock