젠투 리눅스 설치 가이드

[3.1.1-200103]


서문(2.0.0)

아무도 읽지 않을 것으로 예상하고, 뼈대만 갖춘 뒤 던져두었던 젠투 리눅스 설치 가이드를 생각보다 많이 찾아주셔서 다시 살펴보게 되었습니다. 기본적으로 메인 워크스테이션에서 젠투를 운용하고 있기 때문에, 상당 부분 쓸모 있는 부분을 추가하여 간단한 위키 처럼 제작하였습니다.

오타를 전면 수정하고 업데이트 로그를 적기 시작하였습니다. 아무쪼록 많은 분들이 이 페이지를 통해서 젠투 리눅스 사용법을 익히실 수 있도록 노력하겠습니다. 감사합니다.

기존에 상당 부분 리눅스 지식을 갖춘 독자를 상대로 했다면, 2.0 버전부터는 간단한 설명을 포함할 예정으로, 젠투 리눅스를 통해 리눅스를 입문하는 것도 가능한 수준까지 쉽게 설명해볼 생각입니다.

문서에 오류가 발견되시면 댓글 혹은 이메일(wh@withjeon.com)으로 알려주시면 적극 수정하겠습니다. 궁금하신 점도 언제든 이메일 주시면 감사하겠습니다.


서문(1.01)

(아래 서문은 1.01 버전의 서문입니다.)

기존 아치 리눅스 설치 가이드를 바탕으로, 통일성을 가지면서 새로 작성하게 되었습니다. 어느 정도의 유사성은 가지고 있지만 도저히 통합된 카테고리에 분류하기 힘든 내용이 있었습니다. 아래는 새로 작성된 젠투 리눅스 가이드입니다.

젠투 리눅스를 처음 입문하는 분들이 우선은 시스템을 성공적으로 빌드해내기위한 내용에 초점을 맞추고 진행합니다. 따라서, 아예 GNU/LINUX 시스템이 처음이신 분들은 따라오기가 힘드실 수도 있습니다.

물론, 추후에 Linux from Scratch 의 설치 가이드도 제작하겠지만, 개인적으로 젠투 리눅스부터는 공부하기에도 상당히 좋은 배포판입니다. 따라서, 입문자들의 경우에는 무작정 커맨드를 복사/붙여넣기 하지 마시고 처음보는 명령어의 경우 검색을 통해 익숙하게 하는 것이 좋습니다.

이번 가이드를 따라오시면, OpenRC 기반의 KDE/Plasma를 데스크탑 환경으로 가지는 젠투를 완성하실 수 있습니다. 어느정도 익숙해지신 이후에, 본인의 환경이나 선호에 맞는 젠투로 빌드하시면 될 것 같습니다.


업데이트 로그

3.1.1-200103: 오타수정(euedev > eudev)
3.1.0-191230: 일부 수정, 내용 추가(genkernel, etc-update)
3.0.0-190330: 목차 추가, Git에 올려두었던 자료들 통합
2.1.2-181203: 커맨드 리스트 추가
2.0.2-181110: 양식 통일
2.0.1-181106: 웹사이트 리뉴얼
2.01: 전면 업데이트(오타 수정, 업데이트 로그 추가)
1.01: 초판


설치 전 주의사항

  1. 기본적으로 root환경에서는 커맨드 프롬프트가 ‘#’이고, 사용자 환경일 때 ‘$’이지만 통일성을 위해 ‘$’로 표기합니다. 전체 수정하였습니다. (프롬프트 > root: #, user: $)
  2. 구성: 기본 설치 > XORG 설치 > PLASMA 설치 로 구분하였습니다.
  3. 젠투 리눅스는 모든 것을 직접 컴파일하여 설치하기 때문에, CPU가 뒷받침되지 않는 경우 설치에 상당히 오랜 시간이 소요됩니다.workstation 수준의 PC에 데일리 머신으로 젠투를 써보실 생각이 아니시라면,컴파일 도중에 사용할 PC가 있는 경우에만 설치를 시도하실 것을 권장합니다.(필자의 경우, G1610 CPU(Dual Core)에서 kde-plasma-apps 패키지 컴파일에 580분이 소요되었습니다. i5-4690: 80~120분 소요)
  4.  커맨드가 포함된 영역에서 ‘##’이후 적힌 것은 주석입니다. 여러분의 이해를 돕기위해 적은 것일뿐 명령어로 입력하시면 안됩니다. 오해의 소지를 없애기위해, 아예 별도로 구분하였습니다.

기본 설치

ISO 다운로드 및 ‘부팅 USB’ 제작

젠투 위키의 미러 페이지에 방문합니다.

Asia>KR>Daum Communications Corp>”http://ftp.daum.net/gentoo/

releases/ > amd64/ > autobuilds/ > current-install-amd64-minimal/ > install-amd64-minimal-날짜.iso 를 다운로드합니다.

USB를 꽂은 이후, 리눅스 환경에서의 부팅 usb 제작

#lsblk

usb에 해당하는 디바이스 이름을 정확히 확인합니다. (예- /dev/sdb 등)

보통 용량으로 확인하면 편합니다. (14.4G 짜리는 /dev/sdb 만 있다는 등)

#wipefs --all /dev/sdb
#dd if=./Downloads/($젠투파일명).iso of=/dev/sdb status=progress && sync

인터넷 연결 확인

#ping -c 3 www.google.com

파티션

계획

UEFI 부팅을 전제로 합니다. (UEFI 와 BIOS는 /boot 파티션의 타입부터 다릅니다. 따라서, 설치 이미지 부팅을 UEFI로 하신 후, UEFI 설치를 진행하시거나, 혹은 BIOS로 부팅 후, BIOS설치를 진행할 것을 권장합니다.)

UEFI 부팅이 되었는지 확인합니다. 아래의 명령으로 ‘efivars’디렉터리가 보이면 UEFI로 부팅된 것입니다.

#ls /sys/firmware/efi

그렇지 않을경우(UEFI 부팅이 아닌 것으로 보일 경우), 별도의 파티션 계획대로 설치하시면 됩니다. 아래는 BIOS 부팅의 경우 예시입니다.

## /dev/sda1: 2M: BIOS Boot Partition: vfat
## /dev/sda2: 128M: Boot System Partition: ext2
## /dev/sda3: swap size: Swap Partition: swap
## /dev/sda4: rest: Root Partition: ext4

아래는 정상적으로 UFEI 부팅이 되었을 경우의 파티션 예시입니다.

  • 파티션: 마운트될 위치: 용량: 타입(cfdisk 기준): 설명: 포맷할 때의 타입
  • /dev/sda1 : /boot: 512M: EFI System Partition: 부트로더가 설치될 파티션: vfat
  • /dev/sda2: swap: 원하는 용량: Linux Swap: 스왑 파티션: swap
  • /devs/da3: /: 나머지 용량: Linux Filesystem: 루트 파티션: ext4
  • (/dev/sda4: /home: 원하는 용량: Linux Filesystem: 홈 파티션: ext4)

본인이 선호하시는 프로그램을 이용해서 파티션을 나누어주시면 됩니다.

## mbr(msdos)라벨의 디스크를 gpt로 변경하는 방법

#parted /dev/sda
(parted) mklabel gpt
~really want to make label?(y,N): y
(parted) q

## 이후, 파티션을 나누시면 됩니다.
#cfdisk /dev/sda

파일시스템 생성

기존에 계획을 잡아두었던대로 포맷 및 파일시스템을 만들어주면 됩니다.

## /boot 에 쓰일 파티션 (/dev/sda1)
#mkfs.vfat -F 32 /dev/sda1

## swap 에 쓰일 파티션 (/dev/sda2)
#mkswap /dev/sda2

## swap on
#swapon /dev/sda2

## / 에 쓰일 파티션 (/dev/sda3)
#mkfs.ext4 -j /dev/sda3

파티션 마운트

#mount -v -t ext4 /dev/sda3 /mnt/gentoo

#mkdir -pv /mnt/gentoo/boot
#mount -v -t vfat /dev/sda1 /mnt/gentoo/boot

날짜 맞추기

#date 030117532018

#hwclock --systohc --utc
## hardware clock을 system에서(to) hardware clock으로, 기준은 utc입니다.
## 이 과정이 생략되면 추후에, 시간이 안 맞는 오류가 발생하는 이슈가 있습니다.

월/일/시/분/연도 순입니다.

stage 3 tarball 다운로드 및 설치

다운로드를 위해 젠투 폴더로 이동합니다.

#cd /mnt/gentoo

‘링크스’라는 커맨드라인 기반 브라우저를 활용해 다운로드합니다.

#links https://www.gentoo.org/downloads/mirrors/

iso를 다운로드 받을때 처럼

Asia>KR>카이스트~다음  중에 한군데 진입>

release>amd64>autobuilds>current-stage3-amd64>

stage3-amd64-날짜.tar.bz

압축을 해제합니다.

#tar xpf stage3-(tab) --xattrs-include='*.*' --numeric-owner

make.conf 환경설정

앞으로 아래에서 편집할 make.conf라는 파일을 굉장히 자주 마주치게 됩니다.

이 파일은 젠투의 상징이라고 할 수 있을 정도로 중요합니다.

지금은 우선, GCC의 옵션을 설정해주도록 하겠습니다.

#nano -w /mnt/gentoo/etc/portage/make.conf

CFLAG와 CXXFLAGS를 설정해주어야합니다.

아직 GCC 컴파일러의 최적화 옵션을 잘 모르신다고 가정하고 우선 일반적인 옵션만 넣어보겠습니다.(더 자세히 확인하고 싶으신 분들은 링크를 클릭하시면 됩니다.)

CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" 
#C++ 플래그로 C플래그를 동일하게 사용함
##추후 젠투 사용에 익숙해지시면, 본인 아키텍쳐에 맞는 옵션을
##사용하시는 것도 권장합니다. 필자의 경우 '-march=haswell' 등
##을 사용하고 있습니다.
#ls /proc/cpuinfo

등의 커맨드를 통해 나오는 코어의 수(i5의 경우 4개)를 아래 옵션으로 적어줍니다.

MAKEOPTS="-j4"

미러 선택

#mirroselect -i -o >> /mnt/gentoo/etc/portage/make.conf

South Korea에 해당하는 미러들을 선택한 후 OK 하시면 됩니다.

이빌드 레파지토리 정보 설정

/etc/portage/repos.conf/gentoo.conf 파일은 portage시스템이 활용하는 정보를 담고 있는 파일입니다. 이 것을 설치 이후 시스템에서도 활용하기 위해서 세팅을 해줍니다.

#mkdir --parents /mnt/gentoo/etc/portage/repos.conf
## 아직 존재하지 않는 repos.conf 디렉토리를 만들어줍니다.

#cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
##젠투 레파지토리 설정을 복사해줍니다.
##각 /mnt 이전에 띄어쓰기가 존재합니다. 즉 repos.conf 이후 띄우고, /mnt/gentoo~진행하시면 됩니다.


DNS 정보 복사

#cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
##마찬가지로 resolv.conf 이후 띄우고, /mnt/gentoo/etc/입니다.

마운팅

#mount --types proc /proc /mnt/gentoo/proc
#mount --rbind /sys /mnt/gentoo/sys
#mount --make-rslave /mnt/gentoo/sys
#mount --rbind /dev /mnt/gentoo/dev
#mount --make-rslave /mnt/gentoo/dev

젠투 환경 진입

#chroot /mnt/gentoo /bin/bash
#source /etc/profile
#export PS1="(chroot) ${PS1}"

부트 파티션 마운트

## 이 가이드를 따라 오신 경우, 위에서 이미 진행한 부분입니다.
## 아래의 portage 트리 업데이트로 넘어가시면 됩니다.

#mkdir /boot
##이미 존재한다고 할 수도 있습니다.
#mount /dev/sda2 /boot

portage 트리 업데이트

젠투는 패키지 설치를 할 때에 필요한 정보를 포티지 트리(portage tree)에 다 담아서 내가 가지고 있습니다. 따라서 A라는 패키지를 설치하고 싶을 때 포티지 트리에서 A라는 패키지의 이빌드(ebuild) 파일을 읽어낸 후, 시키는 대로 온라인에서 소스 코드를 다운받고 컴파일 하는 것입니다. 따라서, 내 PC에 저장된 포티지 트리가 최신이어야 최신 소스코드를 다운받아 설치할 수 있습니다. 이 과정에 해당합니다.

#emerge-webrsync
##rsync를 통할 경우, 대략 하루 전의 업데이트를 받아볼 수 있습니다.
##아예 최신의 시스템을 구축하고 싶다면, emerge --sync 를 사용하시면 됩니다.

news item 읽는 방법

eselect 커맨드는 젠투에 있어서 자주 사용되는 커맨드 중 하나입니다. 지금은 뉴스를 읽는데 활용하고 있고, 추후에는 프로파일 설정, 로케일 설정 및 커널 업데이트 시에 부팅할 때 선택할 커널을 결정할 때에도 eselct를 활용합니다.

당연한 말씀이지만, emerge가 제공하는 뉴스는 반드시 읽어보시기 바랍니다.

#eselect news list
#eselect news read (숫자추가가능)
##지금은 우선 넘어가겠습니다.

profile 설정

젠투의 특징 중 하나입니다. 제가 사용해보지 못한 과거의 젠투는 이 프로파일이 없었다고 합니다. 아래에서 더 자세히 설명드릴 USE flag를 사용자가 직접 모든 부분에 걸쳐 설정해야 했습니다. 하지만, 이 과정이 불필요하게 번거롭다고 생각하여 추가된 것으로 알고 있습니다.

사용자가 시스템을 구축할 방향을 프로파일로서 선택하면 그 시스템에 불가피하게 필요할 USE 플래그 등은 자동으로 세팅됩니다. (물론, 심볼릭 링크의 형태를 취합니다. 따라서, 사용자가 기본적으로 제공되는 프로파일 이외의 혼합 프로파일을 설정하는 것도 가능합니다.)

모든 설정과 설치가 완료된 이후에는 프로파일이 본인이 사용할 시스템의 방향과 정확히 일치하는 것이 좋지만 현재는 컴파일 하는 개수를 줄이기 위해 가장 기본적인 세팅을 하도록 하겠습니다.

물론, 이 글만 따라오셔도 두 번의 프로파일 설정이 더 진행되고, 결국은 plasma 프로파일을 선택하게 됩니다. 걱정하지 않으셔도 됩니다.

#eselect profile list
#eselect profile set default/linux/amd64/17.0
##혹은 해당 숫자를 입력해주시면 됩니다. (#eselect profile set 18)처럼 해주셔도 됩니다.

설치된 패키지 업데이트

#emerge -avuDN --with-bdeps=y @world
##꽤나 긴 시간이 소요됩니다. 하지만 이게 가장 짧은 편에 속합니다.

USE Flag 설정

$nano /etc/portage/make.conf

젠투는 모든 패키지를 선택할 때 어떤 기능을 포함하여 설치하고, 어떤 기능은 제외하고 설치할지 사용자가 선택할 수 있습니다.

이것은 $emerge –ask 혹은 $emerge -p (pretend) 등의 옵션을 통해 설치는 진행하지 않고 어떤 USE 플래그 설정이 가능한지 확인하는 과정을 통해 이루어집니다.

예를 들어서, A패키지를 설치할 때 $emerge -pv A 를 했고 그 결과가 아래와 같다고 하겠습니다.

[ebuild   N    ]

sys-example/A-1.3.7 [1.3.6] USE=”abcdef -ghi -jkl” 3,129kB

가장 좌측에 괄호 안에 알파벳 한글자로 표현되는 것들은 아래와 같습니다.

  • N : 새로운 패키지 입니다. 새로 빌드합니다.
  • NS : 새로운 버전일 경우, 이전 버전도 활용할 수 있도록 New Slot에 설치합니다. 모든 패키지가 지원하지 않지만, GCC등 버전이 상당히 중요한 경우에는 자동으로 지원합니다.
  • U : Upgrade(Update)합니다. 업데이트가 있어서 새로 빌드합니다.
  • R : Rebuild. 설치되어 있고, 업데이트도 없지만 요청할 경우 새로 빌드합니다. 보통 컴파일 과정에서 오류가 있다고 유추되거나, 혹은 에러코드가 컴파일 과정을 의미할 때 실행합니다.

그 이후, 본인이 설치하려는 패키지 이름과 버전이 등장합니다. 괄호 안의 버전은 지금 설치된 패키지가 있는 경우 그 패키지의 버전입니다.

용량을 제외하고 마지막 필드에 해당하는 것이 USE플래그 입니다. 색깔은 강조하거나 이쁘려고 넣은것이 아니라 실제로 저렇게 등장합니다.(오토컬러 옵션이 켜져있는 경우)

  • 빨강색 : 켜진 옵션, 포함하여 빌드합니다.
  • 파랑색 : 꺼진 옵션, 제외하여 빌드합니다.
  • 노랑색 : 새로 추가된 옵션입니다.(emerge -N 혹은 –changed-use 등으로 빌드할 때 자주 보입니다.)
  • 초록색 : 마지막 설치 이후 변경된 옵션입니다. 끝에 *이 붙습니다.
  • man emerge 참조바람

따라서 간혹, 까다로운 분들은 X, qt4, qt5 등 온갖 옵션을 make.conf 에 넣으려고 하십니다. 다만, 그럴 필요가 없습니다. USE 플래그는 상당히 견고한 계층 구조를 지닙니다. 기본적으로 프로파일 USE플래그가 적용된 이후, 그와 상반되는게 있거나 없는 것이 make.conf에 있으면 덮어 씌웁니다.(따라서, 전역 설정이라고도 부릅니다. Global) 마지막으로, 개별 패키지에서만 사용하거나, 제외하고 싶은 플래그는 따로 적용할 수도 있습니다. 그럴 경우 전역에서 이 패키지만 설정된 USE 플래그를 다시 덮어씌웁니다. 즉, 전역으로 반드시 설정해야하는 변수만 make.conf에 넣어주시고, 개별로 필요하거나 필요 없는 경우는 각 패키지 설정에 해주시면 됩니다. 다음은, 패키지별 설정을 하는 방법입니다.

예를 들어, make.conf파일에 이미 C옵션은 사용할 것으로 설정했는데

##예를 들어, make.conf 파일에서
USE=" blah blah -blah c"

B패키지의 경우 설치하더라도 C옵션은 반드시 끄고 싶다고 합시다. 아래와 같습니다.

$echo 'sys-example/b -c' >> /etc/portage/package.use
##package.use가 디렉토리라고 오류를 뿜으면 아래와 같습니다.
$echo 'sys-example/b -c' >> /etc/portage/package.use/package.use

##더 까다로운 사용자의 경우에는 패키지별 파일을 생성후 거기서 관리하기도 합니다.
$touch /etc/portage/package.use/sys-example/b
$echo 'sys-example/b -c' >> /etc/portage/package.use/sys-example/b

이것 저것 활용해보았지만, 역시 가장 좋은 노하우는

  • 전역 변수 최소화
  • 개별 변수 생성시
    • 보기 편하게(개별 파일 설정, 아니면 최소한 패키지 트리 생성)

입니다.

자세한 설명은 링크를 클릭.(프로파일 별 설정된 USE flag 보는 방법 등은 생략합니다.)

타임존 설정

#ls /usr/share/zoneinfo
#echo "Asia/Seoul" > /etc/timezone
#emerge --config sys-libs/timezone-data

## 위의 timezone-data 이머지 이후, 시간이 변경되는 이슈가 있음
## '#date' 등의 명령을 통해 반드시 시간이 맞는지 확인 바람
## 안맞는경우, '#hwclock --set --date="2018-09-30 15:04:00"
## 등을 통해 맞춘 후 진행하시길 권장합니다.

로케일 설정

#nano -w /etc/locale.gen
##ko_KR.UTF-8 UTF-8
##추가도 가능

#locale-gen

#eselect locale list
##원하는 언어의 해당 숫자를 확인(en_US.utf8 등)
#eselect locale set 3

설정 업데이트 및 프롬프트 재수정

#env-update && source /etc/profile && export PS1="(chroot) $PS1"

커널 설치

#emerge --ask sys-kernel/gentoo-sources


커널 설치 상세 설명

아래의 상세 설명은 [1]. 부터 [6]. 까지 있습니다. 해당 사항이 없는 부분을 스킵하더라도 반드시 마지막 [6]. 까지 읽어보시길 바랍니다. 커널 소스의 종류부터 업데이트와 initramfs, microcode 업데이트, grub 업데이트를 마지막으로 모두 다루고 있기 때문입니다.

[1]. 커널 소스

젠투 리눅스의 경우 다양한 형태의 sources라는 패키지로 커널이 포함되어있습니다. 개발 진영에서 가장 추천하는 것은 ‘gentoo-sources’입니다. https://github.com/torvalds/linux와 같은 실제 개발되고 있는 커널은 ‘vanilla-sources’라는 이름으로 이머지가 가능하나, 권장하지 않는 옵션입니다.

[2]. 컴파일 방법(최초)

젠투 리눅스는 커널을 가져다가 직접 컴파일 합니다. 물론 여기에는 두 가지 방법이 존재합니다. 처음 설치를 진행하는 경우, 우선 부팅을 성공적으로 완료하기 위한 목적으로 ‘genkernel’을 사용합니다. 하지만 최초 부팅에 성공하였거나, 처음 설치하는 것이 아닐 때에는 자주 직접 컴파일을 실시합니다.

[2]-1. 직접 컴파일

리눅스 소스가 다운로드된 디렉터리로 이동하여 몇가지 커맨드를 활용합니다.

#cd /usr/src/linux 

#make defconfig
## 'defconfig'는 본인 PC의 아키텍쳐에 맞추어 커널 개발자들이
## default라고 생각하여 켜두는 옵션대로 우선 설정을 맞춥니다.

#make menuconfig
## 이후, 'menuconfig'를 통하여 ncurses기반의 시각적 도구를 바탕으로
## 커널을 컴파일합니다. [*]로 설정하여 커널에 담을지, [m]으로 설정하여
## 모듈의 형태로 컴파일 할지 결정합니다. [m]의 경우는 컴파일에 담기지
## 않지만, 필요한 경우 모듈을 로드하여 사용하는 것입니다.

#make -j4 
## 커널을 빌드합니다.

#make modules_install
## 모듈로 컴파일 한 것들을 설치합니다.

#make install
## 커널도 마저 설치를 진행합니다.

[2]-2. genkernel 사용

genkernel을 사용하는 경우 훨씬 용이합니다. (시간이 나실 경우, ‘man genkernel’등을 충분히 읽어보시길 권장합니다.)

#nano -w /etc/fstab
## 최소 부트 파티션만이라도 파일 시스템 테이블에 추가하고 나서, 젠커널을 실행

#genkernel --menuconfig all
## 혹시나 반드시 필요한 드라이버가 로드 되는지 등을 확인하기 위해
## menuconfig 옵션을 켜서 빌드합니다.

##all 을 인자로 넘겨주는 경우, 커널 뿐만이 아니라, 
##initramfs 까지 빌드해줍니다.

[3]. 커널 업데이트

어떤 방법을 사용하였든, 추후에 시스템을 사용하는 도중에 ‘gentoo-sources’의 업데이트가 있을 수 있습니다. 이 때 새로운 커널이 추가됩니다.

#eselect kernel list
## 등을 통하여 커널이 어떤 것이 최신인지 확인할 수 있습니다.
## 아직 새 커널로 심링크를 변경하기 전에 '.config'파일을 복사해둡니다.

#cd /usr/src/linux
#cp ./.config ~/.config.old

#eselect kernel set 1
## 등을 통하여 새로운 커널로 링크를 변경해줍니다.

#cd /usr/src/linux
##위에서 리눅스 디렉터리로 이동하였다고 하더라도 새로 해주셔야합니다.
##리눅스 디렉터리가 가리키는 링크가 변경되었기 때문입니다.

#make olddefconfig
## 옛 .config 파일을 사용하여 새로운 커널에 맞는 .config파일을 생성
## 다른 인자들도 많으니 리눅스 디렉터리 내부에서 'make help' 권장

#make -j4
#make modules_install
#make install

[4]. initramfs

initramfs를 만들어줍니다.(반드시 필요한 것은 아닙니다. 다만, root 파일 시스템이 특이하거나 raid, lvm 등의 옵션을 사용할 경우 마운트를 위해 initramfs가 필요합니다.)

initramfs 생성을 위해서는 genkernel을 자주 사용합니다.

#genkernel --install initramfs

##위의 커널 업데이트 이후에도, 새로운 커널을 이용하는
##initramfs를 같은 방식으로 생성해줍니다.

[5]. microcode

CPU instruction set의 패치라고 보시면 간단합니다. intel-microcode 를 이머지하고, iucode_tool 을 이머지해줍니다.

#emerge -a --noreplace sys-firmware/intel-microcode sys-apps/iucode_tool

#genkernel --microcode --install initramfs

[6]. 부트로더 업데이트(GRUB:2)

위의 과정이 모두 진행되고 나면, 부트로더를 업데이트하여 변경점으로 부트가 되도록 합니다.

#grub-mkconfig -o /boot/grub/grub.cfg

1.직접 설치

커널 설치를 안해보신 분들은 아래 2.젠커널 사용을 추천합니다. 또, 방법이 처음이신 분들은 링크를 클릭하신 후 진행하기 바랍니다.

#emerge --ask sys-apps/pciutils

#cd /usr/src/linux
#make menuconfig
##아래를 보면서 설정을 진행합니다.

필수로 설정할 것들

xorg를 위한 옵션

  • Device Drivers >
    • Input device support >
    • <*>Event interface
  • Device Drivers >
    • Graphics support >
      • Frame Buffer Devices >
        • <*> Support for frame buffer devices >
        • 나머지는 전부 사용하지 않음으로 해주시면 됩니다.
      • Console disply driver support >
        • <*> Framebuffer Console Support

nVidia 세팅

  • Device Drivers >
    • Graphics support >
      • <M/*> Nouveau (nVidia) cards

AMD/ATI Radeon 세팅은 링크를 참조해주시기 바랍니다.

2.젠커널 사용

#emerge --ask sys-kernel/genkernel
#nano -w /etc/fstab

##내용에 아래를 추가
/dev/sda1    /boot   vfat   defaults   0 2

#genkernel all
##일부 설정은 꼭 확인해야 겠다 하시면 #genkernel --menuconfig all하시면 됩니다.

##혹시 모르니 리눅스-펌웨어 추가 설치(보통 이미 의존성으로 묶여와있습니다.)
#emerge --ask sys-kerenl/linux-firmware

시스템 설정

파일시스템테이블 설정

#nano -w /etc/fstab

##내용에 아래를 추가
/dev/sda1    /boot    vfat    defaults,noatime    0 2
/dev/sda2    none     swap    sw                  0 0
/dev/sda3    /        ext4    noatime             0 1

##/home 파티션을 따로 구축하신 분들은 추가하시면 됩니다.(아래는 예시)
##/dev/sda4    /home    ext4    noatime    0 1

각종 기타 세팅

#nano -w /etc/conf.d/hostname
## 위 파일에서 PC의 이름을 적어주시면 됩니다.
## hostname="something"
#nano -w /etc/conf.d/net
## ISP(인터넷 회사)나 관리자가 필요로 하는 정보를 기입합니다.
## 추가로 본인에게 인터넷 관련 필요한 설정이 뭔지 모르시는 경우,
## 그냥 두시면 됩니다.

네트워크를 위한 세팅

#emerge --ask --noreplace net-misc/netifrc

#ifconfig
##본인 인터넷 드라이버의 이름을 확인, 예- enp3s0

#nano -w /etc/conf.d/net

##DHCP를 사용하는 경우, 아래의 내용을 추가하되 본인 드라이버의 이름으로
config_enp3s0="dhcp"

부팅시 인터넷 연결 설정

#cd /etc/init.d
#ln -s net.lo net.enp3s0 
##본인 드라이버의 이름을 넣어야 합니다.
#rc-update add net.enp3s0 default

##ifplugd 이머지를 권장합니다.(랜이 연결되어 있는 경우 관련한 이슈입니다.)
#emerge -av ifplugd

호스트 파일

#nano -w /etc/hosts
## 사실상 건드릴게 없습니다.

루트 계정 비밀번호 설정

#passwd

부트 관련 설정 변경

#nano -w /etc/rc.conf
##부팅 관련 로그를 확인하고 싶으신 분들은
##파일 내부에 로그 생성 부분을 "YES"로, 
##위치를 "/var/log/rc.log"로 변경해주시면 됩니다.
##현재 기준, 51번째, 55번째 줄
##rc_logger="YES"
##rc_log_path="/var/log/rc.log"

#nano -w /etc/conf.d/keymaps

#nano -w /etc/conf.d/hwclock

#mkdir -pv /var/log/news
##관련 디렉터리가 없어서 뿜는 오류를 해결합니다.

기본적으로 필요한 앱들 설치

#emerge --ask app-admin/sysklogd
#rc-update add sysklogd default

#emerge -a logrotate

#emerge --ask sys-process/cronie
#rc-update add cronie default

#emerge --ask sys-apps/mlocate

#emerge --ask net-misc/dhcpcd

##와이파이 사용하셔야 하는 분들
#emerge --ask net-wireless/iw net-wireless/wpa_supplicant

부트로더 설치

#echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
## UEFI 부트와 관련한 이슈입니다. make.conf에 efi 부팅임을 알립니다.

#emerge --ask --verbose sys-boot/grub:2
#grub-install --target=x86_64-efi --efi-directory=/boot

##Could not prepare Boot variable: Read-only filesystem
##이라고 오류가 뜨는 경우
#mount -o remount,rw /sys/firmware/efi/efivars
#grub-mkconfig -o /boot/grub/grub.cfg
##추후 GRUB관련 설정을 변경하거나 리눅스 커널을 업데이트 했을 때에도
##활용하는 명령어입니다.

설치 완료 후 재부팅 준비

#exit
#cd
#umount -l /mnt/gentoo/dev{/shm,/pts,}
#umount -R /mnt/gentoo
#reboot
linuxlogo

성공적으로 재부팅이 되셨다면 로그인 하라는 프롬프트가 뜰 것입니다.

축하드립니다. 젠투 리눅스의 설치를 완료하셨습니다.

사실, 아직 해야할 것들이 남았습니다.

계정 생성

root로 로그인
#useradd -m -G users,wheel,audio -s /bin/bash (원하는이름)
#passwd (적으신이름)

처음에 받았던 타르볼 제거

$rm /stage3(tab)

XORG 를 위한 준비

프로파일 설정

##그냥 다시 root로 로그인 하는게 편합니다.
#su
#password:

#eselect profile list

##desktop 이 포함된 프로필을 선택합니다.
##예를 들면, default/linux/amd64/17.0/desktop 의 숫자를 기억합니다.

#eselect profile set 18
#emerge -avuDN --with-bdeps=y @world
##꽤 시간이 걸립니다. 

#env-update && source /etc/profile


커널 설정

위에서 커널 설치를 직접 하신 분들은 준비가 되어 있습니다. 젠커널을 사용하신 분들은 아래를 참조하시면 됩니다.

xorg를 위한 옵션

  • Device Drivers >
    • Input device support >
    • <*>Event interface
  • Device Drivers >
    • Graphics support >
      • Frame Buffer Devices >
        • <*> Support for frame buffer devices >
        • 나머지는 전부 사용하지 않음으로 해주시면 됩니다.
      • Console disply driver support >
        • <*> Framebuffer Console Support

nVidia 세팅

  • Device Drivers >
    • Graphics support >
      • <M/*> Nouveau (nVidia) cards

AMD/ATI Radeon 세팅은 링크를 참조해주시기 바랍니다.


make.conf 파일 준비

#portageq envvar INPUT_DEVICES
##어떤 인풋 디바이스들이 있는지 확인한 후,

#nano /etc/portage/make.conf
##맨 아래에 작성해줍니다. synaptics는 필요한 경우 추가합니다.
INPUT_DEVICES="libinput keyboard synaptics"

##그래픽 카드 정보를 입력합니다.
VIDEO_CARDS="nouveau"
##AMD/ATI 카드의 경우 아래로 입력합니다.
VIDEO_CARDS="radeon"

##혹 이 파트의 설정이 모두 끝났지만, 작동이 원할하지 않은 경우에
##아래를 설치해줍니다.
#emerge --ask x11-base/xorg-drivers

xorg 서버 설치

$emerge --ask x11-base/xorg-server
##꽤나 긴 시간이 소요됩니다.
##하지만 아직도 더 오래걸리는 것들이 남아있습니다.

#env-update
#source /etc/profile

kde-plasma-logo

KDE5 – PLASMA Desktop Environment

프로파일 변경

#eselect profile list

##default/linux/amd64/17.0/desktop/plasma 의 숫자를 기억합니다.
#eselect profile set 18 
#emerge -avuDN --with-bdeps=y @world
##상당한 시간이 소요됩니다.

##끝난 이후, 아래의 패키지들이 설치되어있는지 확인해야 합니다.
##패키지 버전들 사이에 'installed'가 보이거나, 혹은 좌측에 'R'이라고 
##Rebuild 예정이라면 설치가 완료된 것입니다.
##확인할 패키지들 입니다.
##<Services> 총 3개
#dbus (dbus는 설치되신 경우 추가로 '#rc-update add dbus default')
#polkit
#udisks

##<Device manager> 
#eudev (추가로 '#rc-update add udev sysinit', 근데 추가 되어 있어서 skipping 할 겁니다~)

##<Session tracker
#consolekit (추가로 '#rc-update add consolekit boot')

플라즈마 설치

#emerge --ask kde-plasma/plasma-meta

##SDDM이 설치 되었는지 확인합니다.
##설치된 경우 아래를 진행합니다.

#usermod -a -G video sddm
#nano -w /etc/conf.d/xdm

##해당 줄을 찾아 아래와 같게 만들어줍니다.
DISPLAYMANAGER="sddm"

#rc-update add xdm default

##먼저 아래를 읽어보시고 진행하시기 바랍니다.
##이대로 플라즈마 환경에 진입해보면 사용이 힘들정도로, 아무것도 존재하지 않습니다.
##최근 KDE 프로젝트에서는 데스크탑 환경의 패키지에 있어서
##Desktop/Application/Framework 를 구분하였습니다.
##Framework의 경우 필요한 것들이 의존성으로 묶여 설치되기 때문에 상관없지만
##Application을 설치해줄 필요가 있습니다.

#emerge --ask kde-apps/kde-apps-meta
##필자의 경우 580분 정도가 소요되었습니다.(G1610 CPU/Dual Core)

모두 완료 되었습니다.

다만, vim,sudo,firefox,chromium 등 어떤 것도 따라오지 않습니다.

따라서, 사용자의 입맛에 맞게 설치해주시면 됩니다.

[참고말씀]

sudo는 원래 리눅스계열에서 필수가 아니었습니다. 필요할 때 ‘$su’를 통하여 잠시 root권한을 부여 받는 것이 일상적이었습니다. ubuntu를 필두로 한 엔드 유저에게 편리한 리눅스가 대두되며, sudo를 기본적으로 탑재하여 배포되기 시작하였습니다. 심지어, 일부 배포판(페도*, 솔루*)등은 root 계정의 비밀번호를 변경할 기회가 인스톨에서 없습니다. 즉, 일부 엔드 유저의 경우 루트 계정의 비밀번호를 모른채로 사용하고 있다는 뜻입니다.

젠투에서는 일반 사용자 계정을 ‘wheel’계정에 추가하여 ‘$su’명령어를 입력하는 것이 가능하도록 하여 사용하는 분들이 꽤 있습니다. 저도 물론 그 쪽입니다. sudo가 반드시 필요한지 한번쯤 고민해보시길 권장합니다.

logorealfinal

젠투 리눅스 설치 가이드”의 17개의 생각

  1. 핸드북을 참고해서 bios를 이용해 진행한 결과 왜인지 grub2에서 바로 운영체제가 안 잡히더라구요. 혹시 이 글을 보고 바이오스로 진행하실 분들은
    grub2 화면에서
    ls ( 이후 tab으로 어떤 항목들이 있는지 확인하시고 / 저 같은 경우는 예를들어 (hd0),(hd0,gpt1) , … ,(hd0,gpt3) 까지 있었고 이 중에 gpt2번이 boot gpt3번이 root였습니다.

    linux (hd0,gpt2)/vm [===> press TAB to auto-complete] root=/dev/sda3 (저의 경우)

    initrd (hd0,gpt3)/ini [===> press TAB to auto-complete]

    커널과 이닛램디스크fs이걸 알려주는 작업 같습니다. 이렇게 하고 grub-mkconfig -o /boot/grub/grub.cfg 이걸로 환경설정을 저장하니 다음 화면에서는 운영체제 알려주더라구요. 다시 생각해보니 저 메이크 컨피그 과정을 안해서 이런 일이 벌어진 것 같군요. 핸드북이 정말 읽기 힘드네요.

    https://askubuntu.com/questions/978886/i-cant-get-out-of-grub-you-need-to-load-the-kernel-first/1002240

    좋아요

    1. 이게 젠투를 처음 접할 때 저도 꽤나 고생한 부분입니다. 마치, 기본적인 부분은 이미 산전수전 겪은 유저들을 대상으로 젠투만의 특이한 점만을 설명해놓았다고 보셔도 무방합니다. 즉, 과거엔 데비안/우분투/페도라 마저도 grub을 업데이트하게되는 경우, (1): grub 패키지를 설치(apt/yum/dnf등을 활용), (2): grub 을 파티션에 설치 (grub-install –target ~~~ 등을 활용), (3): /etc/default/grub을 수정, (4): 수정된 것을 적용(grub-mkconfig -o /boot/grub/grub.cfg)이 자동으로 항상 필요한 작업이었습니다. 다만, 위의 배포판등은 grub-update등의 추가 스크립트를 활용하기에 이르렀고, 아치 리눅스 혹은 슬랙웨어 정도만 아직 위의 작업을 수작업으로 진행합니다(메이저 하다는 배포판 중에서). 핸드북이 읽기 어려운 점은 충분히 이해하며 혹시 이정도로라도 변명이 될는지 모르겠습니다 ㅠㅠ

      뿐만아니라 더 하드코어한 배포판, 즉, exherbo, lunar linux, sourcemage, crux 등은 거의 documentation이 부존재하는 것과 다름없습니다. “우리는 패키지 매니지먼트를 이런 툴로 하고 있고, 설치는 iso 이 링크에 올려놨으니 하시면 됩니다. “수준이더라구요. 정작 극 하드코어에 해당하는 LFS는 문서 만큼은 완벽한데 말이죠..

      좋아요

      1. 따라하기 좋은 메뉴얼은 역시 아치쪽이 아닌가 싶습니다. 예제가 친절한 편이라 읽으면서 이해가 가는 편이더군요. 생각없이 따라해도 되구요 ㅎㅎ. 제 사실상 첫 (그 전에 우분투 사용을 해봤지만 우분투는 너무 잘 되어있어서 오히려 도움이 안되는 ㅎㅎ) 설치가 아치리눅스인데 한번에 성공했으니 젠투는 그에 비해 조금 불편하군요. 정확하진 않지만 아치가 더 인기있는 이유에 이런 점도 한 몫 하나 봅니다. grub 같은 경우 제가 아치에서는 systemd boot인가 예전 거미부트인 부트로더를 사용해서 이번에 grub2를 처음 사용해봐서 당했네요 ㅎㅎ 사실 리눅스가 너무 어려워서 저 아치리눅스의 부트로더도 기본추천 부트로더로 저도 모르게 설치했고 잊고 살다가 마이크로코드 삽입하느라 검색검색하면서 알게 되었던 기억이 있습니다.

        아직 설치가 끝나진 않았지만 이번 설치로 kde환경도 조금 알게 되었고 grub2도 조금 알게 되었고 설치과정도 조금 더 익숙해질 것 같아 기분이 좋네요. 다만 아직 useflag는 아무것도 설치하지 않고 기본으로 주어지는 프로파일을 활용하다보니 아치리눅스와 차이가 뭔지 모르겠네요. 젠투는 컴파일을 한다고 아치는 바이너리 설치라고 표면적으로는 알겠는데 본질적인 차이는 아직 못 느끼겠습니다. portage가 팩맨보다 더 좋은 점도 잘 모르겠구요.

        overlay = aur 인 것 같은데 (아직 사용해보지 않아서 잘 모르겠습니다.) 그리고 아직 사용해보진 않았지만 abs라고 결국 아치에서도 포트를 흉내낼 수 있는 것 같더라구요. pkgbuilds 파일을 만드는 과정을 거쳐야 하는 것 같지만 제 초보적인 수준에서는 거의 같다고 느껴집니다. 젠투를 설치해보려던 이유는 여러가지가 있지만 그 중 하나는 소스만 있는 패키지들도 잘 관리해주는 배포판을 찾자 였는데 (가령 간단한 명령어 입력을 통한 자동 업데이트가 가능하다던가) 젠투를 설치해보면서 아치랑 비교해보고 검색해보고 abs 같은 걸 찾게되니 pkgbuilds 파일을 잘 관리해주는 프로그램들 (보통은 aur에 있겠지만 아니더라도)의 경우 그냥 pkgbuilds 파일만 잘 다운받아 주면 되는 문제인 것 같네요. 다만 pkgbuilds를 제공해주지 않는 소스들의 경우는 아치를 통해 버전을 꾸준히 관리하기는 꽤나 귀찮은 일 일 것 같군요. 혹시 이런 상황에서 젠투는 더 효율적인 방법을 제공해주나요? 가령 git 명령어들로 소스를 받는 과정을 꽤나 자동화하고 간단한 emerge 같은 명령어들로 업데이트를 하는 그런 방법들이 가능할까요?

        뻘 짓 같지만 그래도 젠투 설치과정을 통해 배운게 정말정말 많습니다. 가이드 너무 감사합니다. 아직 끝나지 않았지만 얼른 끝내고 사용해보고 싶네요.

        첨부로 중간쯤에 ls /proc/cpuinfo 가 있는데 그 부분이 cat이나 less 나 more 등등이 아닌가 싶습니다. ls 로는 저는 코어 숫자등이 나오진 않더라구요.

        좋아요

        1. 리눅스 쪽에서 소위 ‘불꽃전쟁(Flame war)’을 일으키는 몇몇 주제가 있습니다. 가장 유명한 것이 에디터 전쟁(editor war)라고 하여 vim vs emacs 진영이 다툽니다. systemd vs other init system도 그 중 하나입니다. systemd가 ‘한 가지만 잘 하라(Do one thing, and do it well)’는 UNIX철학을 벗어나 점점 갖가지 잡기능을 추가(bloated)하고 있다는 점입니다. 현재 거미부트를 흡수하여 grub과 같은 부트로드 기능까지 추가한 것, 네트워크, 각종 서비스를 이닛(init)단계까지 끌고 내려가는 것에 불만을 가진 유저들이 많습니다. 그에 따른 반발로 각종 메이저 배포판은 systemd를 사용하지 않는 포크 버전이 존재하게 되었습니다. Devuan(Debian – systemd), Arch: Artix, Hyperbola, Parabola등이 있습니다. 그 전부터 systemd를 사용하지 않던 Slackware(아직도 sysvinit을 사용), Void(runnit init system) 등도 점점 인기를 끌고 있습니다. Gentoo는 그 와중에 systemd도 사용이 가능하지만, Openrc를 기본으로 사용한다는 것이 매력 포인트로 작용하기도 합니다.

          그런데, 마치 프로그래밍 언어가 여러가지 기준으로 분류가 가능하듯이 배포판도 또 다른 기준을 가져다 대면 binary vs source compile 배포판으로 나눌 수 있습니다. 그 기준에서도 소스 컴파일 배포판은 젠투가 가장 유명하고, 펀투/Crux/Exherbo/LFS와 같이 어마어마하게 마이너한 배포판들이 따라옵니다.

          또 하나의 구분 기준에 릴리즈 모델이 있습니다. Fixed는 새로운 버전이 출시될 때마다(9.0 > 9.1이 아닌 10.0이 출시될 때) 새로이 설치해야한다는 귀찮음이 있습니다. 물론, Fedora를 시작으로 Ubuntu등 많은 배포판이 자동으로 업데이트가 가능한 스크립트를 제공하지만 어쨋든 빌드가 실패할 가능성이 있고, 스크립트도 백업 등을 반드시 해놓으라고 안내합니다. 이런 면에서 롤링 릴리즈는 한번 설치해놓고 주기적인 업데이트로 언제든 현재 버전을 사용할 수 있다는 장점이 있습니다. 이 진영에서는 물론 아치가 가장 유명하고, OpenSuse Tumbleweed(Leap가 픽스드 버전), 새롭게 추가된 CentOS Stream, 젠투 리눅스가 유명합니다.

          ===

          질문에 대한 답변 전 상세한 백그라운드 인포를 추가한 이유는 답변에 용이하기 위해서입니다. 말씀하신 것처럼 아치와 젠투는 그 사용 방법에 따라 매우 유사하다고 하실 수 있습니다. 튜링 컴플릿 프로그래밍 언어 끼리는 서로 사실상 어떤 한 언어가 가능한 기능은 다른 어떤 언어라도 만들어낼 수 있지만 그 성능이나 기능 삽입을 위한 노력수준이 다르듯이 배포판도 마찬가지입니다. Distrowatch 기준 200위 까지의 배포판은 대개 하나가 할 수 있는 기능을 다른 배포판도 무난히 할 수 있습니다. 특화된 부분이 무엇인가가 다를 뿐입니다.

          젠투는 사실상 메타 배포판(Meta-Distro)이라고 부릅니다. 기본적인 스테이지 타르볼을 가져다가 본인이 원하는 시스템을 만들 수 있다는 뜻입니다. 진정한 제다이라면 아키텍쳐에 맞는 스테이지3 타라볼 수백메가바이트만 가져다주면 서버용 headless OS를 만들어놓고 서버로 쓰든지, 슈퍼컴퓨터용 OS를 만들든지 할 수 있습니다. 구글측이 보급용 성능의 ARM랩탑을 위한 OS를 고민하다 젠투를 베이스로 활용한데는 그만한 이유가 있죠.

          말씀하신 유사점은 매우 정확합니다. 다만, 그 유사점은 한 쪽의 기능을 다른쪽이 억지로 똑같이 할 수 있는 방법에 해당하는 거라고 생각합니다. 아치 유저는 빠른 패키지 설치와 업데이트를 위해 사용하는데 굳이, 소스를 컴파일하는 명령어가 존재하기 때문에 그렇게 할 이유가 드물죠. 또한 아치는 상기한 동일한 이유로 인해, 각 패키지의 가장 보편적인 기능은 거의 모두 켜진 채로 컴파일된 바이너리 버전을 설치하게 됩니다. 이에 따라, 서서히 시스템이 커지는(bloated) 결과가 발생합니다. 젠투의 경우 내가 시스템 전반에 gtk 라이브러리를 사용하지 않고 싶으면 make.conf의 USE Flag를 “-gtk”로 해줄 수 있는 겁니다. 이 부분이 세세하게 설정되기 시작하면 정말 정밀한 시스템을 구축할 수 있습니다. 온라인 상에서 흘러가는 말로 자주 하는 얘기가 “젠투는 시간이 갈수록 단단한 시스템이 되고, 바이너리 배포판은 시간이 갈수록 bloated된다”고 합니다. 이 부분이 make.conf의 글로벌 USE flag와, package.use에서의 로컬 USE flag(패키지별 플래그)에 기인한다고 봅니다.

          모든 배포판은 그 배포판만의 아름다움이 있고( 200위 안짝까지만ㅋㅋ ), 본인이 사용하기에 혹은 본인 목적에 가장 부합하는 배포판을 활용하면 그만입니다. 사실 이제는 거의 종교와 유사점이 많습니다. 굳이 다른 사람에게 선교할 필요도 없고 굳이 다른 사람에게 그 배포판을 쓰지 말라고 할 이유도 없어보입니다. (이게 글을 수차례 수정하는데도 너무 공격적으로 보여서 주석으로 추가 수정합니다. 이게 말씀하신 댓글이 그렇다는게 아니라 그냥 요새 분위기가 그런거라고 말씀드리는 것 뿐이고, 절대 화나거나 언짢았던 것은 아닙니다. 오히려 이 문장으로 인해 언짢게 되셨다면 사과드립니다..;;;)

          P.S.[0]
          국내 커뮤에까지 퍼진 농담으로 유명한 것이 “리눅스 계열에서 가장 큰 거짓말 두가지: 1. Vim 에디터 고수가 앞으로 Vim을 안쓰겠다는 말, 2. Gentoo고수가 앞으로 귀찮아서 Gentoo는 못쓰겠다는 말” 입니다ㅋㅋㅋ

          P.S.[1]
          슬랙웨어 할아버지들만 써먹는 유명한 얘기중에 “우분투를 배우면 우분투를 알고, 레드햇을 배우면 레드햇을 다루지만, 슬랙웨어를 배우면 리눅스를 알 수 있다”가 있습니다 ㅋㅋㅋ

          Liked by 1명

          1. 답변 감사합니다. 혹시 소스만 올리거나 우분투만 패키지 매니징 해주는 git에 올라온 오픈소스 프로그램이 있다고 가정했을때 젠투에서 portage가 관리하게 설치하는 방법은 어떤 것이 있나요? 혹시 무엇을 검색해 보면 알 수 있을까요? 그리고 설치과정중에 euedev 오타인 것 같습니다. eudev가 맞을 것 같습니다!

            좋아요

            1. 오타 부분은 감사합니다. 즉시 수정하였습니다!

              젠투는 ebuild 스크립트를 이용해 패키지를 설치합니다. Slackware의 Salckbuild 스크립트와 동일한 역할을 합니다. 이 ebuild 스크립트를 로컬 환경에 작성, 커스텀 레파지토리를 설정하여 설치하신 후, layman등의 유틸을 활용하시는 방법이 있습니다. 자세한 내용은 아래의 링크를 참조하시면 됩니다.(영문)

              Custom Repository: https://wiki.gentoo.org/wiki/Custom_repository
              ebuild:https://wiki.gentoo.org/wiki/Ebuild
              Layman: https://wiki.gentoo.org/wiki/Layman

              좋아요

              1. 답변 감사합니다. 꼭 읽어봐야겠네요!
                마지막 kde어플리케이션 이머지가 생각보다 꽤 오래걸리네요. 초보라 일단은 따라 했는데 중수였다면 하지 않았을 것 같습니다ㅋㅋㅋ 설치과정에서 많이 배웠지만 좀 더 확실히 이해할겸 kde 조금 사용해보다가 지워야할 것 같네요. 다음 목표는 awesome wm로 더 가볍게 시스템을 만들어 가는 것을 계획중입니다. 이머지 시간보고 바로 마음 먹었네요 ㅋㅋㅋ 현재 거의 48시간에 가까이 걸리는 것 같습니다. (사실 아직 설치중..ㄷㄷ) 가상머신에 샌디브릿지급 컴퓨터 + 스왑메모리를 주로 사용(하드디스크)이긴한데 조금 충격적이라..ㄷㄷ.
                awesome wm로 내려가면서 각종 앱들도 제 취향에 맞는 걸 찾아가고 또 rc-update로 한 친구들의 의미도 찾아보고 싶네요. (dbus, polkit 등등 시작프로그램으로 등록한 친구들도 궁금하고 사실 rc-update 자체가 한번에 여러 파일을 건드리는 것 같더군요. 검색해봐도 딱히 하나의 파일에 등록한다는 이야기는 없는 것 같더라구요. 왜 여러군데를 수정하는지는.. 이해가 잘 ㅠ) (예를들어 consolekit과 sddm이 제 눈엔 중복되는 역할처럼 보여서 말이죠. 초보인지라 이런 미묘한 부분들이 헷갈리네요 ㅠ 데스크톱 매니저를 바꾸면서 자연스럽게 검색하면서 공부하게 되리라 생각해봅니다 ㅋㅋ) . genkernel 사용한 것도 다음에 awesome wm로 넘어가면 커널도 필요한 부분만 남기고 줄여보면 자연스럽게 공부될 것 같구요. 다만 제 나름의 이 거창한 계획을 짜면서 portage에서 패키지들 삭제할 때 의존성이나 이런 것 처리하는 옵션도 배워야하겠구나 하는 절망감이 드네요ㅋㅋㅋ. 도움이 정말 많이 되었습니다. 감사합니다. 다음에 wm 바꾸면서 다시 찾아올 것 같습니다!!

                좋아요

                1. 감사합니다! 돌아오셨을땐 한결 정리된 가이드로 찾아뵙도록 노력하겠습니다^^*

                  (1): kde-apps-meta: 저는 Plasma 너무 좋아해서 아직도 새로 설치할 때 그냥 이머지해놓고 외출합니다 ㅋㅋ
                  (2): rc-update: systemctl enable과 유사합니다.
                  (3): 예전에 해외 커뮤에서 polkit/consolekit/dbus와 같은 프로그램은 맨 페이지를 읽어도 무슨 말인지 모르는 프로그램이라고 하는 글을 봤습니다. 사실 위의 프로그램들이 맡는 역할을 명확하게 정의/정리하고 구분할 수 있다면 중수를 넘어 이제 고수에 해당하는 것 같아요. sddm은 Gnome에서 gdm이 하는 것처럼 디스플레이 매니저라고 해서 DE로 넘어갈 때 로그인등을 돕는 프로그램입니다!
                  (4): 패키지 삭제는 각종 업데이트나 유즈 플래그 업데이트 이후에 ’emerge -avc’등의 옵션을 통해 수행합니다! ‘c’옵션을 통해 삭제를 명령하는데, 허락을 받고 지우라는 ‘a’플래그와 자세한 내역을 출력하는 ‘v’옵션을 반드시 추가하시는 것을 권장합니다. 그러면 현재 의존성이 없는 패키지가 삭제됩니다. 다만, 아마 처음 수행하시면 ‘nano’에디터와 같이 시스템에 있으면 좋을 패키지도 의존성으로 설치된 것은 아니다보니 출력되는데, 이 때는 ‘No’를 선택하셔서 나오신 후, ’emerge –av –noreplace nano’와 같이 ‘noreplace’ 옵션을 통해 world 파일에 추가하실 수 있습니다. world파일은 배타적으로 유저가 사용하려고 선택하여 설치한 패키지의 목록입니다. 오히려, 설치했었는데 이젠 사용하기 싫어서 삭제하시고 싶으신 경우, world파일에 직접 에디터를 통해 삭제하거나, 혹은 ’emerge -av –deselect nano’와 같이 ‘deselect’옵션을 통해 world파일에서 지우신 후, ’emerge -avc’를 수행하시면 아마 해당 패키지가 삭제 대상으로 출력될 것입니다!

                  좋아요

  2. 설치과정을 따라하는데 커널 설치과정에서 genkernel all을 해도 bash : genkernel : command not found 문장이 나오네요.
    의아했던 부분은 emerge –ask sys-kernel/genkernel 하고 y 로 넘어가면 이전과는 다르게 설치하는 과정은 없고 autounmask changes succesfully written 이것만 나와서 좀 이상하긴 합니다.
    uefi 구성이 아니라 bios 구성이구요. vmware로 설치중입니다. (원래 시스템도 bios입니다.)
    혹시 조언이 있을까요?

    좋아요

    1. 파티션은 sda1: bios boot
      sda2 : boot
      sda3 : root
      스왑은 안 잡았구요. 마운트는 sda2를 부트에 sda3을 /에 잡았습니다. sda1은 놀던데 왜 잡아야하는지 모르겠더군요ㅠ
      리눅스 이용경험은 아치리눅스 사용중이긴 한데 설치횟수는 1번이라 초보입니다 ㅠ

      좋아요

      1. 사실 서문 1버전에도 적어두었지만 다른 리눅스 사용 경험이 적은 경우는 리눅스에서 효율적으로 활용할 유틸 경험이 부족해서 어렵고, 젠투 설치만도 여러차례 경험해봐야 뭐가 뭔지 감이 잡힙니다. 이 부분은 누구든 그 사람이 문제가 있어서 그렇다기 보다는 젠투 리눅스와 특수성(각종 설정을 직접 만져야 하는 부분)과 더불어 문서들이 영어로 존재한다는 점 때문으로 보입니다. 우선, 질문을 정리하여 답변 드리도록 하겠습니다.
        (1): genkernel: command not found에 대하여
        genkernel을 emerge, 즉 설치 완료 하셨는지 궁금합니다. genkernel 바이너리 자체를 찾지 못해서 오류가 나온 부분이므로 설치에 이상이 있었음으로 짐작됩니다.
        (2): 두 번째 질문과 관련하여
        이 두 번째 문제로 인하여 genkernel설치가 완료되지 않았습니다. 젠투 리눅스가 충분히 익숙해지시고 나면 다른 배포판을 사용하는게 오히려 껄끄러워지는 대표적인 젠투 리눅스의 기능이 설치를 가로막았습니다. ‘autounmask changes successfully written’은 이 패키지를 설치하기 위해선 설정되어야할 것들이 제대로 설정되어 있지 않아서 자동으로 그 부분을 적용하였다는 내용입니다. ‘etc-update’ 혹은 ‘dispatch-conf’ 등의 명령어를 통하여 해당 설정이 적용된 파일을 실제로 적용한 후 다시 ’emerge’해 보시면 정상적으로 설치가 될 것입니다.
        (3): BIOS 구성과 관련하여
        혹 하드웨어의 특성상 반드시 BIOS를 이용해야 하나요? 그렇지 않다면 UEFI를 권장합니다. 뿐만 아니라, 제가 BIOS환경에서의 젠투 리눅스 설치 경험은 너무 적어서 함부로 말씀드리기 어렵습니다. 다만, GRUB이 확인할 MBR record 로서 BIOS_GRUB 라벨이 붙은 파티션이 필요하다는 점이 적어주신 파티션 테이블과 다른 점으로 보입니다. 즉, boot 파티션 이전에 아주 작은 공간이 grub이 설치 파일을 저장할 bios_grub 파티션으로 존재해야 합니다.

        좋아요

        1. 답변 감사합니다. 혹시 질문 하나만 드려도 될까요. 현재 vmware로 설치 중이었는데 원래 컴퓨터가 bios환경밖에 지원하지 않더라도 가상머신은 uefi 환경으로 설치가 가능한가요? 가상머신이라도 메인보드쪽 환경은 그대로 사용할 것 같아서 bios가 맞겠지 생각했는데 제 생각이 틀린건가요? 가상머신은 전혀 현재 컴퓨터랑 별개로 작동하나요?

          좋아요

      2. (2)질문의 대답에 추가
        ‘etc-update’를 하실 경우 숫자 옵션으로 어떤 파일들이 새로 변경되었는지 안내됩니다. 확인하실 파일의 숫자를 입력해주시면 (여기서는 아마도 높은 확률로 ‘1’파일일 것으로 사료됩니다.) 어떤 파일이 추가되었거나 변경되었는지 보여줍니다. 이 후, 이 파일에 대해서 어떤 행동을 취할 것인지 선택해야하는데, 기존 파일을 새 파일로 업데이트 한다는 옵션의 숫자를 입력해주신 후, 혹시 기존 파일은 삭제할까요? 묻는다면 yes하시면 됩니다.
        이 후, ’emerge -av genkernel’을 통해 다시 설치 시도해보시면 됩니다.

        genkernel을 통해 커널 설정까지 완료하시면 부팅에 반드시 필요한 몇 가지 옵션이 설정되지 않아 부팅에 어려움을 겪을 수도 있습니다. 번거로우시더라도 최소한 핸드북에 제시된 옵션은 정상적으로 켜져 있는지 모든 것이 컴파일 된 후, ‘cd /usr/src/linux’, ‘make menuconfig’를 통해 옵션을 확인하시는 것을 추천합니다.

        좋아요

        1. 우선은 grub2 까지 이용해서 부팅하고 유저계정을 만드는 것 까지는 성공했습니다. etc-update가 아직은 정확이 어떤 의미인지 모르겠으나 대충 config 파일 문법이 바뀌는 걸 보정해준다거나 그런 것인게 아닌가 추측해봅니다. 사용하면서 다음 업그레이드를 하다보면 알 수 있겠죠. 아직 막바지 작업중에 여전히 질문이 있어서 남깁니다. xorg 깔려고 프로파일을 바꾸고 (제 경우엔 20번 17.1/desktop) 이번에도 오토언마스크떠서 새 설정파일로 바꾸고 진행했는데도 emerge -avuDN –with-bdeps=y @world 이 행동의 시간이 굉장히 적게 걸리네요. 그 로그를 읽어서 무슨 문제가 있는지 확인해보고 싶은데 혹시 기본 터미널에서 위로 가는 방법 좀 알려주실 수 있나요? 인터엑티브 하지 않으면 | less같은 방식으로 해결했는데 이머지는 yes를 눌러줘야하는데 어떻게 해야하는지 잘 모르겠네요ㅠ 초보인지라 이미 설치가 완료된 터미널은 위로 드래그가 가능해서 이렇게 답답한 환경에서 어떻게 돌아가야하는지 잘 모르겠네요.

          좋아요

          1. (1): etc-update 조금 더 상세히
            특정 패키지를 emerge하라고 지시하였으나, 그 패키지 설치를 위해선 “A” Use flag가 필수적일 경우, 그것이 크리티컬하지 않은 이상 auto-unmask 옵션에 의해 자동으로 /etc/portage/package.use/.cfg-(somenumber)와 같은 파일에 언마스크 옵션을 설정합니다. 이 때, 이 것을 /etc/portage/package.use/zz-autounmask 혹은 같은 디렉터리에 package.use (즉, 디렉터리 명과 동일한 이름의 파일명)으로 실제 적용을 시키기 위해서 etc-update를 활용합니다. etc-update를 실행할 경우, 위처럼 .cfg 등 아직 미적용인 히든 파일을 읽어와서 어떤 것들이 적용될 것인지 알려줍니다. 숨겨지지 않은 파일에 적힌 이후에는 기존 히든 파일은 삭제할 것인지 물어봅니다. etc-update 는 package.use 뿐만 아니라 /etc/default/grub 혹은 각종 패키지 특화 설정 파일이 변경된 경우 그 것들을 업데이트 하기 위해 별도의 이름으로 저장되었다가 etc-update를 실행하였을 때, 사용자에게 어떤 것을 사용할지 묻는 기능을 수행합니다. 즉, 사용자가 편리하도록 수정하였는데 디폴트 설정 파일이 새 버전에서 새롭게 추가되었거나, 혹은 기존의 양식과 다른 새로운 디폴트 버전을 사용하게 된 경우(i3 wm과 같이) etc-update가 이 것을 알려줍니다.

            (2): 터미널에서 위를 보는 방법
            tty에서 위를 보는 방법은 ‘shift’+’PageUp’ 입니다. 다만, 버퍼가 작아 몇 페이지 못봅니다. 뿐만 아니라, 아직 xorg환경에 진입하지 않은 경우에는 오랜 시간 인풋이 없어 스크린 블랭크가 되는것을 막기 위해 ‘#setterm –blank 0’ 명령어도 알아두시면 유용합니다.

            (3): emerge @world의 경우 팁
            emerge -avutDN @world를 할 상황이더라도 ‘a’옵션을 ‘p’옵션으로 변경하여 ‘pretend’옵션을 켜주면서 동시에 파이프로 less에 보내주실 경우, 이렇게 명령했다고 가정했을 때의 변화를 보여주는 것에 불과하여 ‘less’ 안에서 찬찬히 변화를 살펴보신후 ‘q’로 나와 ‘a’옵션을 다시 준 채로 재실행하시면 됩니다. dependency(의존성)계산을 두 번 수행하는 불편함은 있으나, 실제로 유저들도 자주 활용하는 방법입니다. 나중에 루트 권한 없는 사용자가 sudo등의 명령 없이 -av옵션으로 패키지를 설치하려 할 경우, 알아서 -pv로 바꿔서 수행할까요 묻기도 합니다. (참고로 추가하여 예로 든 명령어의 -t옵션은 새로 변경되는 패키지의 의존성 트리까지 보여주는 옵션입니다. 즉 새로 설치되거나 업그레이드되거나 다운그레이드 되는 등의 결과를 어떤 패키지때문에 수행하게되었는지를 보여줍니다. 또한, –with-bdeps=y는 default설정으로 되어있으니 반드시 입력할 필요는 없습니다. 가이드에 적어둔 이유는 youtube ‘das gregor’의 영상 중, 분명 Default임에도 이 옵션을 수기로 입력해야 해결되는 에러가 있었던 점으로 미루어 새 사용자가 어려움을 겪지 않기 위해 적었습니다. ‘man emerge’, ‘man portage’, ‘man make.conf’등 참조)

            좋아요

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.