최근 수정 시각 : 2024-10-10 16:14:18

Gentoo Linux

젠투 리눅스에서 넘어옴


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
인터넷 방송인이자 고멤 아카데미 소속 멤버에 대한 내용은 사랑전도사 젠투 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.

파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
비슷한 이름의 엘리베이터 라인업에 대한 내용은 오티스 엘리베이터 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
{{{#!wiki style="margin: -10px -10px;" <tablebordercolor=#ffdf33> 파일:Linux 로고.svg Linux
배포판
}}} ||
{{{#!wiki style="margin:0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
Debian APT 파일:우분투 아이콘.svg
Ubuntu
Ubuntu · Linux Mint · Kubuntu · Lubuntu · Ubuntu MATE · Pear OS · 하모니카 · elementary OS · Zorin OS · Xubuntu · JingOS · GalliumOS · Pop!_OS
파일:데비안 심볼.svg
Debian
Debian · Kali Linux · Crunchbang · 구름 OS · Kylin · Damn Small Linux · Slax · TmaxOS · Raspberry Pi OS · Tails OS · Whonix · Deepin · Endless OS · MX Linux openmediavault Astra Linux · VyOS · Vanilla OS · Proxmox · TrueNAS SCALE
Fedora RPM Red Hat
(RHEL)
Red Hat Enterprise Linux · Red Hat Linux · CentOS Stream · Scientific Linux · Oracle Linux · 아시아눅스 · Rocky Linux · CBL-Mariner
Mandriva OpenMandriva Lx · Mageia · PCLinuxOS
MeeGo MeeGo · Tizen · Sailfish OS
Fedora · Amazon Linux · 붉은별 · Fedora Asahi Remix
Slackware slackpkg Slackware Linux
Arch pacman Arch Linux · Manjaro Linux · EndeavourOS · Antergos · ArchBang Linux · Chakra Linux · SteamOS · Archcraft
Android apk Android · Android-x86 · Bliss OS · Fire OS · Polaris OS · Phoenix OS · Project Sandcastle · Remix OS · Wear OS · Wear OS Powered by Samsung · Meta Horizon OS · 그 외 기타 Android 커스텀 펌웨어
Gentoo portage ChromiumOS ChromiumOS · ChromeOS · ChromeOS Flex · Wayne OS · FydeOS · Whale OS
Gentoo Linux · Funtoo Linux
기타 OpenWrt · NixOS · Solus · Alpine Linux · openSUSE · RouterOS · webOS · Puppy Linux · TinyCore Linux · postmarketOS · dahliaOS · 티맥스 윈도우 · Clear Linux* OS · LinuxBoot
취소선 처리된 배포판은 개발 중단된 배포판.
}}}}}}}}} ||
파일:젠투 리눅스 로고.svg
파일:gentoo-signet.svg
Gentoo Linux
홈페이지
최신 버전: 롤링릴리즈
1. 개요2. 설명3. FreeBSD와의 차이점4. 버전 관리5. Portage
5.1. emerge5.2. ebuild5.3. USE flags5.4. eselect5.5. Overlay5.6. OpenRC
6. 논쟁거리7. 설치 관련8. 기타9. 관련 문서10. 외부 링크

[clearfix]

1. 개요

젠투 리눅스(Gentoo Linux)는 Gentoo Foundation에서 제작하고 있는 Linux 배포판이다.

2. 설명

대니얼 로빈스(Daniel Robbins)가 FreeBSD를 사용해보고서는 Ports 시스템에 감명을 받아(?) Linux쪽에서 구현한것이 Portage 시스템이고, Gentoo의 시초가 된다. Gentoo의 특징은 BSD 계열 유닉스 대부분이 그렇듯이, 모든 것을 컴파일하여 설치한다는 것이다. 다른 Linux 시스템에서는 보통 패키지 관리자를 통하여 소프트웨어를 설치하면 이미 컴파일이 끝난 바이너리를 통째로 다운로드하여 설치한다. 하지만 Gentoo는 패키지 관리자 자체가 바이너리를 다운로드하는 대신 소스 코드를 다운로드하여 현장에서 컴파일해 프로그램을 만들어 낸다. 장점은 원하는 대로 컴파일 옵션을 주어 보다 자신의 컴퓨터와 요구사항에 맞는 시스템을 구성하는 것이 가능하다는 것이고 단점은 엄청나게 긴 컴파일 시간이다. 일반적으로 10분 20분이면 설치가 끝나는 Ubuntu 같은 시스템을 Gentoo로 직접 컴파일해서 구성하려면 세팅시간을 제외하고 순수 컴파일 시간만 따져도 최고사양의 컴퓨터로도 최소 반나절, 일반 컴퓨터라면 며칠은 돌려야 할정도. 이 때문에 컴파일해서 사용하는 것이 익숙지 않은 Linux 계열 유저들 사이에서는 변태적인 배포판이라고도 불린다. 그도 그럴 것이, 다른 배포판은 호환성에 중점을 두기 때문에 특정 CPU만이 가지는 명령어 셋은 이용하지 않는 반면, Gentoo는 호환성을 포기하면서까지 순수하게 사양에 맞는 최적화만을 지향하기 때문.

참고로 역시 BSD 계열이 다 그렇듯이 Gentoo에도 컴파일하는 저 모든 것에는 OS 자체도 들어간다. 물론 아무것도 안깔린 무주공산에서 컴파일을 할 수 있을리 없기 때문에, 부팅가능한 OS 와 컴파일러 및 그에대한 소스를 포함한것을 컴파일된 홈페이지에서 다운받아서 깔아 두고 시작하며, 기초 설치 과정은 Gentoo에서 제공하는 CD나 Ubuntu 같은 다른 배포판에서 실행할 수 있다. 그래도 이 설치 과정 자체가 수동이라는 점은 변하지 않는다.(…)

참고로, 소스컴파일이라는 '시간'을 잡아먹는 점만 제외한다면 사용하기도 매우 편리한 편이며, 의외로 안정적인 배포판이다. 그리고 컴퓨터 사양도 많이 좋아진 요즘에서는 최신형 컴퓨터로 컴파일할 경우 그 시간이 그리 오래 걸린다고 보기도 힘들다. 이 때문에 최적화 전후의 속도차가 없어진다는 이유로 Gentoo의 앞날이 어둡다는 소리도 있었으나, 아이러니하게도 컴파일 시간도 크게 단축되어 오히려 Gentoo를 사용하기 더 편리한 환경이 되었다. 또한 과거에는 컴파일시 이러한 옵션들을 하나하나 시험해야 했지만, GCC 4.2부터는 native 옵션이 추가되어 컴파일시 CPU 검색과 최적화를 손쉽게 해결할 수 있게 되었으니 Gentoo를 설치할 때 투자해야 할 것은 '시간'(그리고 패키지 설정)만 남게 되었다.

처음 설치시에는 핸드북에 방법이 자세하게 나와있어 그저 따라하기만 하면 되며, emerge를 이용한 패키지 매니징 자체도 디테일은 거의 신경쓸 필요 없이 대부분 전자동으로 이루어지고, eselect를 이용하여 여러가지 귀찮은 세팅들도 간단히 처리할 수 있다. 커스터마이징이라는 장점이 사라진다이외에도 Gentoo만의 여러가지 유용한 툴들을 제공하기때문에 CLI 환경에서 자주 작업하는 유저라면 오히려 편리하다고 느끼는 경우도 많다. 업스트림 소스를 제공하는 소스 컴파일 배포판이라 업데이트 속도가 빠를것이라 생각하는 사람이 많지만, Gentoo만의 패치를 더해서 제공한다던가 안정성을 위한 테스트등으로 인해 업데이트 속도는 오히려 느린편에 가깝다. 빠른 업데이트 속도를 원한다면 Unstable 버전으로 사용하면 되며, 이때 업데이트 속도는 Arch Linux와 비슷한편. 서버용으로는 문제가 있겠지만, 데스크탑 용도로는 Unstable 버전도 쓸만한 편이다. 패키지가 제공되지 않거나 업데이가 아직 이루어지지 않았다면 Arch Linux의 AUR처럼 Overlay를 사용하는 것도 또다른 방법.

2024년부로 Gentoo에서도 모든패키지들을 바이너리로 배포하여 컴파일 없이 쓸수있게 되었다! 단 이경우 CFlag등을 이용한 CPU 최적화를 할 수 없으며, USEflag도 고정되어 있다.

3. FreeBSD와의 차이점

원조라 할 수 있는 FreeBSD 와의 차이점은 FreeBSD 의 경우 베이스 시스템과 유저랜드 영역을 칼 같이 구분하여 유저랜드에서 소프트웨어 인스톨/삭제하다가 이거저거 날려먹어도 베이스 시스템에는 전혀 영향이 가지 않는다. 그러나 Gentoo는 다른 Linux 배포판이 그렇듯이 인스톨/삭제시 잘못되면 부팅이 안 될 수도 있다. 물론 여기에는 이유가 있는데 FreeBSD는 기본적으로 관리자가 모든 시스템 세팅을 수동으로 하는 것을 전제하고 있다. 따라서 소프트웨어 인스톨 시 시스템영역을 바꾸는 것을 관리자의 손에 전적으로 맡기는 것이고 Gentoo와 다른 Linux 배포판은 소프트웨어 인스톨 시 어느 정도 시스템 세팅까지 자동으로 해주기 때문에 더 편리하긴 하지만 예상 밖의 상황이 일어날 가능성이 존재한다.

또 다른 차이점은 악명높은(?) USE flags이다. FreeBSD의 경우 컴파일 시 개별 패키지마다의 옵션과 그에 따른 의존을 미리 자주 쓰이는 디폴트값으로 잡아두고 각 Ports의 인스톨시 개별적으로 메뉴가 뜨며 세부적으로 결정하게 하는데 반해, Gentoo는 이러한 디폴트값이 없고 몇 가지의 프로파일을 제공하며 여기에 더해 USE flags를 이용하여 시스템와이드하게 미리 설정하여 설치하는 편이다. 물론 개별 옵션 설정도 가능하다. USE flags의 이득은 미리 설정을 해놓으면 인스톨시 개별 옵션과 패키지 선택에 신경을 쓸 필요가 없다는 점이고 단점은 미리 자신이 어떤 시스템을 만들려 하는지에 대한 정확하고 디테일한 구상이 없으면 상당한 난항을 겪게 된다는 점이다. 즉 OS 자체뿐 아니라 자신이 인스톨하여 사용하려는 개별 프로그램에 대하여 어느정도 수준의 지식을 미리 갖고 있어야 원하는 시스템의 구성이 가능해진다. 시스템와이드하게 이루어지기때문에 약간만 달리해도 시스템에 큰 변화를 유발하며 그것을 적용하는 것은 간단한 명령어로 끝나긴 하지만 보통 바닥부터 다시 컴파일을 해줘야 하기때문에 오랜 시간이 걸리는 경우가 보통이다. 즉 시간이 아주 많이 남아돌지 않는 이상 실험을 하거나 마음대로 갖고 놀만한 것은 아니며 문서로 정리되어 있긴 하지만 말했다시피 양이 상당히 방대하다.

반면 Gentoo의 패키지 매니징도 FreeBSD에 비해 상당히 유리한 점을 갖고있는데 FreeBSD의 패키지 매니징은 처음 설치할 때 더 편리한 반면 나중에 컴파일 옵션을 바꾸거나 삭제를 하거나 할 때는 애로사항이 꽃피게 된다. Gentoo는 패키지 삭제 혹은 USE flags를 변경 후 재적용 시키는 것들을 emerge에서 전자동으로 해주기 때문에 이런 측면에서는 오히려 훨씬 편리하다. 하지만 전자동인만큼 어느 정도 위험성도 갖고있어 패키지 삭제/변경 후에 반드시 라이브러리 링크 상태를 확인해주어야 한다. FreeBSD에서도 패키지 삭제 후 의존 패키지 삭제하는 작업이 위험한 건 매한가지지만 emerge 같은 전자동 시스템을 제공하지 않고 관리자에게 일임한 만큼 잘못되면 관리자 책임으로 떠넘길 수가 있다.

4. 버전 관리

Rolling release[1]버전 관리 체계를 가지고 있다. 이는 Arch Linux와 유사하다.

자주 업데이트하는 것은 그다지 좋지 않은데 타 배포판에 비해 컴파일의 압박 때문에 업데이트의 부담이 크다. 특히 커널과 gcc는 딱히 최신버전을 유지할 필요도 없을 뿐더러 unstable의 경우 잘못 업그레이드 했다간 시스템 운용이 불가능한 상태가 될 수 있다. 2016년 5월 현재 unstable의 gcc 버전은 5인데 이 버전에서 지원되지 않는 라이브러리들로 인해 소프트웨어 컴파일에 실패하는 경우가 있다. 다행히 eselect 덕분에 문제가 발생해도 빠른 해결이 가능하다.

한 번 시스템이 안정화된다면 업데이트 없이 꾸준하게 쓰는 것도 Gentoo를 활용하는 방법 중 하나이다. 원하는 포티지 업데이트를 찾은 뒤 해당 포티지가 본인의 시스템과 잘 맞다면 이후 포티지 업데이트를 하지 않고 그 포티지를 쭈욱 쓰는 것이다. 최신 소프트웨어가 필요없는 서버 운영자가 이 방법으로 Gentoo를 운용한다.

5. Portage

Gentoo의 패키지 관리는 기본적으로 Portage 시스템에 의해 이루어진다.

Portage 시스템은 Python으로 작성된 emerge에 의해 이루어 지며, emerge는 패키지의 의존성, USE flags, distfile 및 patch file들의 정보를 기록해둔 ebuild 파일들을 통해 패키지를 관리한다. 글로벌 세팅은 /etc/make.conf /etc/portage/make.conf[2] 에서 담당하고, 개별 패키지 세팅은 /etc/portage 내의 파일 및 디렉토리들로 구성된다.

5.1. emerge

emerge는 Gentoo의 핵심이 되는 스크립트로, 다음과 같은 역할을 수행한다.
  • 패키지 설치
    특정한 ATOM[3]을 인자로 넘기면 ebuild와 USE flags를 통해 의존성을 파악하고 필요한 패키지들과 인자로 넘긴 패키지를 설치한다.
  • 패키지 삭제
    마찬가지로 특정한 ATOM을 인자로 넘기면 해당 패키지의 상위 의존성이 없는 경우 패키지를 삭제한다. 이 때, 의존하고 있는 패키지들은 삭제되지 않는다.
    또한, 별도의 옵션을 주면 상위 의존성이 있는 경우에도 패키지가 삭제 된다. 이 때에는 상의 의존성 패키지들이 작동을 하지 않을 수 있으므로 주의를 요한다.
  • 불필요한 패키지 자동삭제
    데비안/ Ubuntu와 마찬가지로 emerge로 상의 의존성이 없음에도 설치되어 있는 불칠요한 의존성 패키지들을 삭제할 수 있다.
    이 때, 주의할 점은 데비안/Ubuntu와는 다르게 Gentoo Linux의 패키지들은 현재 시스템에서 직접 수많은 라이브러리들을 사용하여 컴파일해 설치하기 때문에 라이브러리들간의 연결 관계가 복잡해서 패키지 삭제 과정 중에 필요한 라이브러리들이 삭제될 수 있다는 것이다.
    패키지 자동삭제를 한 이후엔 gentoolkit 패키지의 revdep-rebuild 스크립트를 이용하여 라이브러리들의 연결 상태를 꼭 확인하도록 하자.
  • 패키지 재컴파일
    -e 옵션으로 가능하며, 희대의 삽질 노가다 변태짓 중 하나인 패키지 재컴파일을 emerge를 통해 할 수 있다. 재컴파일할 ATOM을 인자로 넘길 때 아무 옵션도 주지 않으면 해당 패키지를 재컴파일 한다. 특수한 문제가 있을 땐 이런 식으로 해결을 할 수 있어서 단일 패키지 재컴파일은 종종 쓰이는 편이지만...
옵션을 추가하면 패키지의 의존성 트리를 전부 재컴파일 할 수도 있다. 말 그대로 전부 재컴파일 한다. 만약 ATOM으로 world set/system set[4]을 주면 헬게이트가 열린다!
수백 수천개의 패키지가 재컴파일 되는 동안 당신은 즐겁게 밖에 나가 산책과 영양 만점의 외식을 즐길 수 있을 것이고, 오랜만에 십수 시간의 단잠을 즐길 수 있을 것이다. 세상 모든 컴퓨터에 Gentoo Linux를 설치해서 인류의 건강에 기여를 아 물론 십수시간으로도 안 끝난다. 그냥 며칠 푹 쉬어야 할 듯 이때 가장 중요한 옵션이 --resume 이다. 한참 재컴파일 하다가 도중에 오류가 나서 멈췄을 때 --resume 옵션 없이 다시 emerge 를 사용하면 완전히 처음부터 인스톨하기 시작한다. 시간이 왕창 남아도는 게 아니라면 --resume 옵션을 반드시 기억하자.

혹여 여러 패키지를 설치하는 중 몇몇 패키지의 에러가 나더라도 무시하고 넘어가고 싶다면 --keep-going 옵션을 추가하면 된다. 이렇게 하면 패키지 컴파일 중 에러가 나더라도 참고 끝까지 간다. 또한 패키지 빌드 중 쏟아져 나오는 아름다운(?) 빌드 메시지를 보고 싶지 않으면 --quiet 옵션을 붙여주면 화면이 깔끔하게 유지된다. 단, 패키지 설치 후 공지하는 중요 한 공지 사항은 그대로 출력된다.

5.2. ebuild

ebuild는 Portage에서 패키지를 관리할 때 쓰는 파일로, 패키지의 의존성, 다운로드 경로, 패치, USE flags 등의 정보를 담고 있는 파일이다.

ebuild에는 설치 방법또한 정의 되어 있는데, GNU Build System을 따르지 않는 패키지의 경우에도 emerge를 통해 일괄적으로 컴파일 할 수 있도록 여러가지 help function이 정의 되어 있다.

5.3. USE flags

Gentoo Linux의 접근 난이도를 높히는 주범

USE flags 는 중앙에서 시스템와이드한 설정을 통해 복잡하고 방대한 로우레벨 옵션과 패키지 선택에서 사용자를 해방시켜주려는 Gentoo의 배려이기도 한데, 편하라고 만든 이 USE flags 가 오히려 자체적으로 꼬이거나 의도하지 않았던 방향으로 기능하면서 사용자의 두통을 유발하는 경우가 상당히 흔하다.크래커 차단하라고 깔아놓은 SELinux 가 그 복잡함으로 인해 사용자의 행위까지 차단하는 것과 비슷하다. 하나하나 읽어보고 설정을 하려고 해도 양이 워낙 방대하여 링크 쉽게 건드리는게 힘들다. 덕분에 Gentoo에서도 이미 한번 각 패키지들의 컴파일옵션들을 추상화시켜 묶은 USE flags 를 한번 더 추상화시켜 묶은 profile 등을 제공하여 간단한 세팅방식을 제공하고 있다.

각각의 Flag가 대체 어떤 역할을 하는지 좀 더 명확한 설명을 원하면 'gentoolkit' 패키지를 설치한 후 터미널에 'equery u <패키지명>'을 치면 각 flag에 대한 보다 자세한 설명이 나온다. 타 배포판에 대한 Gentoo의 특징이자, 두드러진 장점이라면 장점인 것이 이 USE flag이므로 emerge로 패키지를 설치하기 전 어떤 USE flag가 있으며 각각이 대략 어떤 역할을 하는지 한 번 확인해보는 것이 시스템 관리 측면에서 권장할만하다.

USE flags의 유용한(?) 일례는 다음과 같다. zip, 또는 unzip은 압축된 파일 이름의 인코딩을 별도로 지정하지 않는데, 이 때문에 윈도우에서 압축한 파일이 Linux에서 압축을 풀 때 파일 이름이 깨질 때가 있다. 이 경우를 대비해 zip/unzip은 '-O' 옵션을 제공하는데, 이는 'libnatspec'이란 별도의 라이브러리에 의존한 것이다. Ubuntu 등의 배포판에서 zip/unzip 패키지를 깔면 무조건 libnatspec을 넣고 컴파일하여 -O 옵션이 활성화 되어 있지만 Gentoo는 이 옵션을 'natspec'이라는 USE flag를 통해 시스템에 사용할지 안 할지를 결정할 수 있다. 사실 로마자 외에 한글, 한자, 일본어 등의 여러 문자를 쓰는 환경이라면 이러한 기능이 필수적이지만 그렇지 않은 곳에서 이러한 기능은 별 쓸모가 없다.

Gentoo는 이렇게 각 패키지에 대한 상세한 옵션 설정이 가능하고 이를 통해 사용자에게 불필요한 기능을 위해 추가적으로 프로그램이나 라이브러리를 설치하는 것을 막아준다. 미니멀리스트라면 반드시 넘어야할 산, 컴파일 시간 줄여주는건 덤. Gentoo가 오랜시간동안 존재하는 이유중의 하나이다.

USE Flag를 정교하게 설정할 필요는 없다. 특히 X나 Wayland를 사용하는 GUI 환경에서는 돌아가는 온갖 라이브러리들이 각종 의존성으로 얽혀있으며, 하나하나 파악해서 USE Flags로 최적화시키려면 굉장히 많은 노력과 시간이 들어가지만 이로 인한 성능 차이는 체감하기 힘들기 때문.

5.4. eselect

eselect는 Gentoo Portage 시스템의 자유도를 증명하는 스크립트로써, 이름 그대로 Gentoo Linux의 전반적인 설정을 select할 수 있다.

선택 가능한 옵션으로는
  • Portage Profile 선택
  • EDITOR 환경변수 선택
  • Kernel Source 선택
  • Bash Completion Script 활성화/비활성화 [5]
  • python, binutils, php, emacs 등 여러 버전이 함께 설치 될 수 있는 프로그램의 기본 사용 버전 선택
  • locale, fontconfig 등 사용자가 설정하려면 귀찮은 것들 설정
  • java-vm, java-nsplugin 등 여러 종류가 설치 될 수 있는 가상 머신들 선택
  • Overlay 선택

등 알아두면 좋은 옵션이 많이 있다. 옵션들을 보면 알겠지만, /etc 에서 configuration 파일 찾아다가 열어서 설정해야 하는 여러가지 환경변수들을 쉽고 간단하게 설정할 수 있다. 또한 eselect-vi, eselect-wine 등의 패키지를 이용하여 다른 패키지들의 버전, 환경 변수 등을 선택할 수 있다.

5.5. Overlay

Ubuntu의 launchpad와 비슷한 개념으로 Gentoo Portage Overlay라는 것이 있다.

이름 그대로 Gentoo의 Portage 시스템 위에 사용자 정의 Portage 시스템을 덮어 씌운다는 의미로 기존 Portage에 없는 패키지나 커스텀 ebuild 파일 사용 등을 위해 사용하는 기능이다. 주로 Gentoo에서 정식적으로 지원하지 않는 (혹은 아직 추가되지 않은) 패키지들이나 패치등을 설치할 때 사용된다. 원한다면 자신이 만든 오버레이를 추가해서 쓸 수도 있다.[6]

여담으로 Overlay 중에는 데비안/Ubuntu의 APT 시스템과 페도라의 RPM 시스템도 존재한다. 따라서 커널과 몇몇 중요 시스템 패키지만 Gentoo로 컴파일하고 나머지는 Ubuntu나 페도라 시스템으로 대체하는 것도 가능하다.

Overlay는 eselect의 repository 모듈로 관리할 수 있다.

5.6. OpenRC

Gentoo는 init 시스템으로 일반적으로 Linux에서 주로 쓰이는 SystemD대신 OpenRC라는 Gentoo 개발자가 개발하는 init 시스템을 사용 할 수 있다. 설치시 SystemD 혹은 OpenRC으로 선택이 가능하다. SystemD가 유닉스 철학인 "Do one thing and do it well" 을 무시하고 하나의 프로그램 안에 많은 기능을 넣어 통합성을 제공한 것에 대한 반발이 꽤나 있는편. 이는 용량도 크고, init 시스템 영역을 넘어 다른 영역까지 통제하며 제국주의식으로 시스템을 관리하는 SystemD가 시스템을 불안정하게 만든다고 이미 데비안 Linux의 포럼에서도 큰 논쟁이 벌어지는 등 중요한 사안이다. 이 OpenRC는 Gentoo 이외의 SystemD 반대자에게도 무척 인기가 좋아서, non-SystemD인 배포판 중 대부분이 OpenRC를 지원하며 기존의 SystemD배포판들도 OpenRC를 사용할 수있게 배포되는경우도 있다 (Debian은 Devuan, Arch는 Artix 등).

6. 논쟁거리

컴파일해서 얻을 수 있는 속도이득에 대한 부분은 의견이 갈린다. 기본적으로, CPU를 혹사시키는 작업들(인코딩/연산작업 등)의 경우 자신의 컴퓨터에 최적화시켜 컴파일한 프로그램들이 꽤 빠른 속도를 보여준다. 그러나, 문제는 일반 데스크탑 유저들의 경우 게임따위를 제외하면 CPU를 혹사시킬만한 프로그램들을 거의 사용하지 않는다는 것이다.[7] 컴퓨터로 대단위 행렬을 연산하거나 인코딩을 죽어라 한다거나 하는 사람은 어디까지나 극소수에 불과하다. 그리고, CPU를 별로 사용하지 않는 에디터나 뷰어, 웹브라우저 등등은 사실상 CPU 속도보다 I/O 속도와 유저의 반응속도(?)에 영향을 더 많이 받기때문에 굳이 오랜시간을 투자해서 컴파일을 해줄 가치가 없다. 설령 연산작업이 필요한 프로그램이 필요하더라도, 웬만한 다른 배포판들 역시 Portage 시스템처럼 전자동으로 해주지는 않더라도, 몇몇 프로그램정도야 수동으로 컴파일하여 인스톨하는 것은 절대 어려운게 아니다.

결국, 일반적인 유저 입장에서 Gentoo같은 배포판을 사용함으로서 득을 볼 수 있는 유저층은 극도의 minimalism 과 simplicity 를 추구하는 사람[8] 혹은, 오만가지 컴파일 옵션을 갖고놀며 자신만의 시스템을 구성하려는 사람들이다. 이중 전자의 경우는 애초에 Gentoo를 가지고 놀려는게 아니라 자신의 '사용목적과 성향에 부합하기때문에' 사용하는거라 오래도록 문제없이 잘 쓰는 경우가 많지만, 후자의 경우는 어느정도 Gentoo에 대한 호기심으로 접근하여 초반에는 이것저것 건드려보며 열정적으로 달리지만 그 열정이 시들면 금방 질리고, 편한 배포판으로 옮기는 경우가 많다. Gentoo는 처음 시작시도 그렇지만, 사용하면서 들어가는 시간과 노력이 더 크게 필요한 운영체제인 관계로, 애초에 정말 자신의 사용목적과 성향에 부합하는지를 잘 따져보아야 할것이다.세상에는 이것 말고도 그 시간과 정열을 투자할만한 다른 좋은 것들이 많이 있다.

환경 보호에 관심이 많은 서양권의 유저들 중에서는 Gentoo와 같이 이미 컴파일된 바이너리를 쓰지 않고 로컬 환경에서 재컴파일 하는 것이 에너지 낭비이며 eco-friendly 하지 않다는 점을 지적하는 의견이 종종 있어왔다. 이에 대해서는 Gentoo 유저들은 불필요한 의존 패키지를 빼고 빌드해서 더 빠른 속도를 얻는 것으로 상쇄된다고 주장하거나 컴파일에 드는 에너지는 무시할 만큼 적다는 반박을 해왔다. 이 논쟁은 2000년대 초반부터 있었지만 Gentoo의 점유율이 계속 하락하면서 이제는 논쟁 자체가 시들해진 상태.

7. 설치 관련

Gentoo 핸드북에 많은 정보가 있다.

Gentoo 환경에서 미러사이트 목록은 국내외를 포함한 다음 명령으로 확인 할 수 있다.
livecd / # mirrorselect -i -o 

Gentoo Linux 같은 경우에 국내 미러사이트는 다음과 같이 미러링 하고 있으며, 안정적인 lanet.kr 사용이 최적화가 잘 되어 있다.
http://ftp.kaist.ac.kr/gentoo/
https://ftp.kaist.ac.kr/gentoo/
ftp://ftp.kaist.ac.kr/gentoo/
rsync://ftp.kaist.ac.kr/gentoo/
https://ftp.lanet.kr/pub/gentoo/

기본적으로 대부분의 패키지들은 64비트 컴퓨터에 최적화 되어서 나오니[9] 32비트 컴퓨터를 사용하는 분들은 64비트에 비해 많은 불이익이 있음을 감안하고 설치를 시도하기를 바란다.

자신의 컴퓨터의 CPU가 몇 비트 환경인지, 어떠한 명령어셋을 사용하는지, 코어수가 몇 개인지를 미리 알고 있어야 Gentoo 최적화에 도움이 되니 꼭 설치 전에 알아보는 것이 좋다.

8. 기타

  • 2009년 10주년 기념 라이브 DVD를 배포했다.
  • 참고로 LFS(Linux From Scratch)라는 것도 있는데, 이것은 말그대로 베이스 시스템부터 하나하나 자신이 원하는대로 Linux를 쌓아올리는 것이다. 엄밀히 말해서 배포판이라기보다 그냥 설명서라고 보면 된다. 실제 사용 목적이라기보다 Linux 교육용에 더 가깝다고 볼 수 있다.
  • Gentoo에서 파생된 사바욘이라는 배포판도 있는데, 해당 배포판은 Gentoo와는 달리 Systemd을 사용하여 그놈과의 호환성을 높였으며, emerge 대신 entropy/equo라는 패키지 관리자을 사용하여 설치속도가 빠르다.
  • Gentoo의 보안침투 배포판인 펜투(Pentoo)도 있다.
  • Gentoo의 제작자인 Daniel Robbins가 나와 Funtoo Linux라는 것을 만들었다. Gentoo의 장점은 그대로 유지한 채 더 쉽고 더 빠른 것을 철학으로 하며, 실제로 rsync 대신 git을 사용하여 업데이트 속도가 매우 빠르며, 인스톨 로그도 보다 간결해졌다.
  • 최근엔 Gentoo Linux 또한 git 저장소를 사용하기 시작함에 따라 속도가 매우 빨라졌다.
  • 4chan에선 Arch Linux와 함께 유난히 인기가 많다. 오픈소스에 가장 가깝기 때문이다. 덕분에 InstallGentoo라는 도 생겼다.

9. 관련 문서

10. 외부 링크


[1] Gentoo 시스템은 대부분의 Linux 배포판과는 달리 OS의 버전이 존재하지 않는다. 물론 OS를 구성하는 소프트웨어의 버전은 당연히 존재한다 인스톨 미디어로 기본 설치가 완료된 시점을 기반으로 하여 통합된 리포지토리(저장소)에서 최신의 소스 코드를 항상 가져오며, 따라서 언제 출시된 인스톨 미디어를 사용하든지 간에 상관 없이 그냥 닥치고 업데이트만 하다보면 항상 그 결과물은 '현재까지 출시된 최신의 Gentoo Linux'가 된다. 윈도우에 비유하여 설명하면, 2021년 11월 기준 윈도우 95 CD로 설치하든 윈도 XP CD로 설치하든 윈도우 7 CD로 설치하든 윈도우 10 1507 USB로 설치하든 윈도우 10 20H2 USB로 설치하든 상관없이 업데이트만 주기적으로 하다보면 최종 완료되는 시점에서는 모조리 윈도우 11 21H2가 설치된 상태가 된다는 것이다. [2] 2012년 9월 9일자 뉴스를 통해 make.conf의 기본 위치가 변경됨이 공지되었다. Gentoo 유저는 "eselect news list", "eselect news read <번호>" 명령을 통해 확인할 수 있다. 웹에서는 포럼을 통해 확인할 수 있다. [3] 패키지 이름, (부등호)패키지이름-버전, ebuild 파일, package set 등의 패키지 정보 [4] world set 은 모든 패키지를 말하고, system set 은 기본 베이스 시스템(stage 3)에 포함된 패키지만을 의미한다. 즉, world set 에서 system set 을 제외하면 유저가 인스톨한(의존 포함) 모든 패키지가 된다. [5] USE flag를 설정하면 웬만한 셸 기동 프로그램은 BachComp 스크립트가 함께 설치된다. [6] Project:Overlays/Overlays guide젠투 위키 [7] 게이머등이 아닌경우, 일반적인 유저가 오늘날 멀티코어 컴퓨터를 사용시, 평균적인 CPU 사용량을 보면 사실 CPU 를 10% 미만으로 사용하는 시간이 90% 이상이다. [8] Gentoo는 인스톨시 타 배포판에 비해 훨씬 미니멀한 시스템에서 시작하며, 가벼운 최소한도의 프로그램만 사용하는 경우 어차피 컴파일시간 자체가 얼마 되지 않는다. 여기서, 미니멀하게 설치한다고 해서 실제로 가볍게 사용하는게 아니라는점은 짚고 넘어가야 한다. 오히려 이런사람들중에 웹브라우저에 탭을 수백개씩 열어놓고 xterm 을 수십개를 띄어놓으면서 엄청나게 컴퓨터를 혹사시키는 사람들이 많다. 가벼운 프로그램 위주로 설치해 사용하는 이유는 소위 뽀샤시한 그래픽에 리소스를 낭비하는 것이 아까워서 그런 경우가 많다. 흠좀무... [9] 아예 32비트 환경에서는 구동되지 않는 프로그램도 많다

분류