리눅스를 활용할 수 있는 방법은 놀라울 정도로 다양하며, 선택지도 넘쳐납니다. .deb나 .rpm 패키지 형식에 의존하는 배포판이 대부분이지만, 자체 형식을 사용하거나 아예 패키지 없이 운영되는 배포판들도 존재합니다. 그중 젠투(Gentoo)는 다른 배포판들과 비교했을 때 매우 독특한 위치를 차지하는데, 개발자들이 소프트웨어를 손쉬운 설치를 위한 바이너리 패키지로 만들어 제공하지 않기 때문입니다.
대신 젠투는 설치의 편의성보다는, 머신별 최적화를 통해 여러분의 시스템에서 소프트웨어가 최상의 성능을 발휘하도록 만드는 것에 중점을 둔 배포판입니다.
젠투(Gentoo)란?
젠투는 완전히 독창적인 프로젝트로, 다른 대부분의 배포판과는 확연히 다른 구조적 접근 방식을 취합니다. 젠투의 핵심 철학은 설치되는 모든 소프트웨어를 직접 컴파일한다는 것입니다. 즉, 소프트웨어의 소스 코드를 다운로드한 후 자신의 시스템에서 직접 빌드함으로써, 컴파일러가 해당 시스템의 사양에 정확히 맞춰 소프트웨어를 생성하도록 하는 것입니다.
반면 일반적인 배포판에서는 소프트웨어가 이미 개발사의 서버에서 컴파일되어 패키징되며, 운영체제는 이 패키지를 풀어 바이너리 파일을 적절한 위치에 배치하기만 하면 됩니다. 이러한 바이너리는 특정 아키텍처를 사용하는 모든 시스템을 대상으로 컴파일된 것이기 때문에, 여러분의 시스템에서 빌드된 것이 아니라면 이론적으로 최적화 수준이 떨어질 수밖에 없습니다.
Emerge: 강력한 패키지 관리 시스템
모든 소스 코드를 직접 내려받고 컴파일해야 한다고 해서, 일일이 코드를 찾아 헤매고 빌드 방법을 고민하며 업데이트를 관리해야 하는 것은 아닙니다. 젠투에는 Emerge라는 패키지 관리 도구가 내장되어 있으며(GUI 프론트엔드로는 포트홀(Porthole)이 제공됩니다), 우분투 같은 데비안 계열의 apt나 페도라의 yum과 매우 유사한 방식으로 작동합니다.
Emerge는 다양한 '저장소'를 검색하여 새롭거나 업데이트된 소프트웨어를 찾아내고, 그 결과를 포트홀에 목록으로 보여줍니다. Emerge가 사용하는 포트 시스템의 각 항목은 단순한 .ebuild 파일로, 소스 코드를 내려받고 소프트웨어를 올바르게 컴파일하기 위해 필요한 명령들이 기록되어 있습니다. Emerge가 포트 시스템을 점검하는 과정에서 더 최신 버전을 발견하면, 소프트웨어 목록을 갱신하고 그에 맞게 동작합니다.
장점과 단점
이러한 설치 방식에는 분명한 장단점이 공존하기 때문에, 젠투는 특정한 상황에서만 진가를 발휘하거나, 직접 시도해 보고 싶은 리눅스 숙련자에게 적합합니다. 가장 큰 장점은 모든 소프트웨어가 여러분의 시스템에서 컴파일되기 때문에, 컴파일러가 가능한 모든 최적화를 반영하여 소프트웨어를 최대한 빠르게 구동할 수 있다는 점입니다.
또한 자신이 무엇을 하고 있는지 정확히 안다면(리눅스 전문가가 아니라면 쉽지 않겠지만) 소프트웨어 설치 과정이 훨씬 유연해집니다. 이러한 유연성과 극한의 최적화 덕분에 젠투 리눅스 위에서 구동되는 미사 디지털 기타(Misa Digital Guitar)처럼 색다른 프로젝트도 세상에 나올 수 있었습니다. 따라서 마지막 1%의 성능까지 끌어내야 하는 상황이라면 젠투가 탁월한 선택이 될 수 있습니다.
하지만 일반 사용자 입장에서는 젠투를 일상용 운영체제로 삼기 부담스러운 단점들도 존재합니다. 우선 젠투는 결코 쉽지 않으며, 리눅스 초보자에게는 사용을 권장하기 어렵습니다. 게다가 아무리 강력한 CPU라 해도 컴파일에는 상당한 시간이 소요됩니다. 대부분의 개발자들이 자체 서버에서 소프트웨어를 빌드한 후 패키지로 배포하는 데에는 그만한 이유가 있는 것입니다.
이러한 문제를 완화하기 위해 젠투 개발팀은 파이어폭스나 KDE 데스크톱 환경처럼 컴파일에 오랜 시간이 걸리는 것으로 알려진 일부 소프트웨어에 한해 사전 빌드된 바이너리를 제공합니다. 다만 이는 배포판의 본래 취지와 다소 어긋나는 부분이 있어, 거의 모든 소프트웨어를 이런 식으로 설치할 것이라면 차라리 (상대적으로) 전통적인 방식의 배포판을 쓰는 편이 나을 수도 있습니다.
결국 젠투는 여러분의 용도에 따라 장점이 단점을 능가한다면 충분히 훌륭한 선택지가 될 수 있습니다.
결론
개인적으로 가까운 미래에 젠투를 주 운영체제로 사용할 계획은 없지만, 리눅스 커뮤니티에 수많은 가치와 아이디어를 불어넣는 훌륭한 배포판임에는 틀림없습니다. 젠투를 사용하거나 테스트해 볼 계획이라면, 원하는 목표를 반드시 이루시길 바랍니다. 어떤 작업이든 그에 맞는 올바른 도구를 쓰는 것이 최선이며, 젠투는 분명 그 역할을 충실히 수행할 수 있는 도구입니다.
젠투의 접근 방식에 대해 어떻게 생각하시나요? 어떤 배포판의 철학이 가장 마음에 드시는지, 혹은 젠투에서 개선되었으면 하는 점이 무엇인지 댓글로 의견을 나눠주세요!