우분투 20.04 Focal Fossa는 많은 이들에게 훌륭한 배포판으로 평가받고 있습니다. 하지만 소프트웨어 센터에서 스냅 기반 애플리케이션 설치를 기본으로 설정한 결정은 여전히 논쟁의 여지가 있습니다. 이 변화가 사용자에게 어떤 의미인지 자세히 살펴보겠습니다.
리눅스 스냅 패키지란 무엇인가?
“스냅”은 snap 명령어와 스냅 설치 파일 모두를 지칭합니다. 스냅은 애플리케이션과 필요한 모든 종속성을 하나의 압축 파일로 묶습니다. 종속성에는 라이브러리 파일, 웹 또는 데이터베이스 서버, 또는 애플리케이션 실행에 필요한 기타 모든 요소들이 포함될 수 있습니다.
스냅의 주요 장점 중 하나는 의존성 문제를 줄여 설치 과정을 단순화한다는 것입니다. 의존성 지옥은 필요한 리소스를 사용할 수 없거나 버전 불일치, 또는 기존 애플리케이션에 필요한 파일을 덮어쓰는 등의 문제로 인해 새 애플리케이션을 실행할 수 없게 되는 상황을 의미합니다.
일반적으로 설치 시 스냅 파일이 압축 해제되고 내용이 추출될 것으로 예상할 수 있습니다. 그러나 스냅 파일은 실행 시간에 블록 루프 장치를 통해 마운트됩니다. 이 방식은 내부의 SquashFS 파일 시스템에 접근할 수 있게 합니다.
애플리케이션은 격리된 환경에서 실행되므로 시스템 파일에 영향을 주지 않습니다. 또한, 동일한 애플리케이션의 여러 버전을 설치하더라도 서로 간섭하지 않습니다.
스냅의 단점으로는 데비안 패키지 관리자 (DEB) 파일보다 설치 파일 크기가 크다는 점을 들 수 있습니다. 또한, 더 많은 하드 드라이브 공간을 사용합니다. 스냅은 필요한 모든 리소스가 각 애플리케이션마다 자체 복사본을 가지도록 하여 저장 공간을 효율적으로 사용하지 못합니다. 하드 드라이브 용량이 증가하고 가격이 저렴해지고 있지만, 일부 전통적인 사용자들은 여전히 각 애플리케이션이 격리된 환경에서 실행되는 방식에 대해 우려를 표합니다. 애플리케이션 실행 속도도 상대적으로 느릴 수 있다는 점도 지적됩니다.
스냅은 데스크톱 테마를 따르지 않고 자동 업데이트가 강제된다는 비판도 있습니다. 또한, 일부 사용자는 스냅이 소프트웨어 개발자가 직접 만든 것이 아니라는 점에서 완전하게 ‘공식적’으로 간주하지 않는다는 우려를 표합니다.
결론적으로 Canonical은 Focal Fossa부터 우분투 소프트웨어 애플리케이션을 스냅을 기본 설치 방법으로 사용하는 버전으로 교체했습니다. 이것이 사용자에게 미치는 영향을 자세히 알아보겠습니다.
우분투 소프트웨어 센터
다음 명령어를 사용하여 컴퓨터에 마운트된 SquashFS 파일 시스템을 확인할 수 있습니다. -t (유형) 옵션을 사용하여 파일 시스템을 필터링할 수 있습니다.
df -t squashfs
다음으로, 설치된 스냅 목록을 확인하기 위해 다음 명령어를 사용합니다. 설치된 스냅 목록 확인:
snap list

GNOME 데스크톱 관련 스냅이 몇 가지 있습니다. 두 개는 핵심 스냅 기능, 하나는 GTK 테마, 또 다른 하나는 스냅 스토어 관련입니다. 당연하게도 스냅 스토어 앱 자체도 스냅입니다.
여기서 핵심적인 문제는 터미널에서 snap-store 명령어를 실행했을 때 실행되는 애플리케이션이 바로 ‘우분투 소프트웨어’라는 점입니다.
일반적으로 우분투 소프트웨어 애플리케이션은 아이콘을 클릭하여 실행됩니다. 그러나 명령어 라인에서 실행해보면 그 이면에는 스냅 스토어 애플리케이션이 존재함을 알 수 있습니다.
snap-store

우분투 소프트웨어 애플리케이션은 겉보기에는 이전과 동일하게 보입니다. 이전과 동일한 소프트웨어를 검색할 수 있습니다.
“sqlitebrowser” 애플리케이션을 검색하여 설치해 보겠습니다. 검색 결과 화면에는 애플리케이션 세부 정보와 스크린샷이 나타납니다. “설치” 버튼을 눌러 소프트웨어를 설치합니다.

눈치채지 못하면 변화를 알아차리기 힘들 수 있습니다. 하지만 스크롤을 아래로 내리면 스냅 관련 새로운 정보를 확인할 수 있습니다.

“세부 정보” 섹션에서 다음 정보를 확인할 수 있습니다.
채널: 설치 시 애플리케이션을 가져올 채널입니다.
버전: 소프트웨어 버전입니다.
라이선스: 라이선스 유형입니다.
개발자: 스냅을 만든 사람 또는 애플리케이션을 작성한 사람입니다.
소스: 스냅 다운로드 소스(Snapcraft.io, Canonical의 Snapcraft 스냅 스토어).
다운로드 크기: 스냅 파일 크기입니다.
채널은 다음 중 하나일 수 있습니다.
안정적: 가장 안정적이고 검증된 패키지가 포함된 기본 채널입니다.
후보: 덜 안정적이지만 릴리스 후보 수준의 소프트웨어가 포함된 채널입니다.
베타: 개발 주기 후반 단계이지만 안정성이 보장되지 않는 소프트웨어가 포함된 채널입니다.
엣지: 초기 빌드 테스터 및 실험을 원하는 사용자를 위한 채널입니다. 주요 작업에는 사용하지 않는 것이 좋습니다.
설치가 완료되면 설치된 스냅 목록을 다시 확인할 수 있습니다.
snap list

새 항목이 맨 아래에 추가되었습니다. 이제 프로그램을 실행해보겠습니다.
sqlitebrowser
인터페이스가 다소 구식으로 보이지만 애플리케이션은 정상적으로 작동합니다. 약간 3D 효과를 준 인터페이스는 과거의 GUI 스타일을 보여줍니다. 모든 스냅에서 이러한 특징이 나타나는 것은 아니지만, 이 예시에서는 두드러지게 보입니다.
명령줄에서 설치
명령줄에서 애플리케이션을 설치하는 방식에는 변화가 없습니다. 스냅 명령어 도구를 사용하여 터미널에서 스냅을 설치하고 제거할 수 있습니다. apt-get install 명령어와 apt, apt-get 래퍼도 여전히 사용할 수 있습니다.
이제 동일한 애플리케이션을 명령줄에서 설치해 보겠습니다. 이전에 설치한 스냅 버전과는 별개로 설치될 것이며, 서로 영향을 미치지 않습니다.
sudo apt-get install sqlitebrowser

설치가 완료될 때까지 기다립니다. Super 키를 누르고 “sqlitebrowser”를 입력합니다. 몇 글자만 입력하면 컴퓨터에 두 버전의 프로그램이 모두 나타납니다.

두 버전을 모두 실행해봅니다.

보시는 것처럼 두 가지 다른 버전이 동시에 설치되어 실행되고 있습니다.
이미지 뒤에 있는 버전은 명령줄에서 설치한 버전이고, 앞에 있는 버전은 스냅으로 설치된 버전입니다.
apt-get 버전은 3.11.2 버전이고, 스냅 버전은 3.11.99 버전입니다.
겉모습과는 달리 명령줄 버전이 이전 버전입니다. 그럼에도 불구하고 두 버전이 공존하고 잘 작동한다는 점이 중요합니다. 스냅은 동일한 애플리케이션의 여러 버전을 격리된 환경에서 실행해야 한다는 목적에 부합합니다.
또한, apt 또는 apt-get을 사용하여 명령줄에서 애플리케이션을 설치하는 방식은 이전과 동일하며 스냅의 영향을 전혀 받지 않습니다.
어떤 것을 사용해야 하는가?
어떤 유형의 애플리케이션을 사용하는지에 대해 약간이라도 신경 쓰는 편인가요? 그렇지 않다면 스냅을 선택하는 것도 좋습니다.
다음 사항 중 하나라도 문제가 된다면 (또는 여러 사항이 복합적으로 작용한다면) 우분투 소프트웨어 애플리케이션을 피하고 전통적인 방식으로 애플리케이션을 설치하는 것이 좋습니다.
스냅은 로딩 속도가 느립니다. 구형 하드웨어에서 더 심하게 느껴질 수 있습니다.
스냅은 더 많은 하드 디스크 공간을 차지합니다.
스냅은 자동으로 업데이트됩니다.
스냅은 시스템 테마와 일치하지 않을 수 있습니다.
스냅은 항상 ‘공식적’이지 않습니다. 스냅은 종종 자원 봉사자에 의해 만들어집니다.
컴퓨터가 최신이라면 스냅을 실행하는 것과 일반 애플리케이션을 실행하는 것 사이의 속도 차이는 크지 않을 것입니다. 우리가 발견한 가장 큰 시간 지연은 설치 과정에서 발생했습니다. 스냅은 다운로드하는 데 훨씬 더 오래 걸렸습니다. 파일 다운로드 후 설치는 빠르게 진행되었지만, 다운로드는 일회성 작업이므로 매일 겪어야 하는 문제는 아닙니다.
스냅이 미래라고 생각하고 적극적으로 수용할 준비가 되어 있더라도, 모든 것을 스냅으로 전환하는 것은 불가능할 수 있습니다. 일부 애플리케이션은 스냅 형식으로 제공되지 않습니다. 이러한 경우에도 명령줄에서 설치해야 합니다.
분명히 Canonical은 스냅을 우분투의 핵심 요소로 밀어붙이고 있습니다. 우분투 개발자들에게 있어 스냅은 이미 현실이 되었습니다. 언제나처럼 사용자는 스냅을 사용하거나 무시하거나 스냅과 기존 DEB 기반 설치를 혼합하는 하이브리드 시스템을 구성할 수 있습니다.
