젠투 리눅스 설치

젠투 리눅스 설치 가이드

logorealfinal

지속적으로 업데이트 하고 있으므로, 링크를 통해 새로고침해주시기 바랍니다.

서문

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

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

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

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

 

설치 전 유의사항

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

 gentoo

기본 설치

ISO 다운로드 및 부팅 USB 제작

젠투 위키의 미러 페이지에 방문합니다.
Asia>KR>Daum Communications Corp>”http://ftp.daum.net/gentoo/
releases/ > amd64/ > autobuilds/ > current-install-amd64-minimal/ > install-amd64-minimal-날짜.iso 를 다운로드합니다.

USB를 꽂은 이후,

$lslbk
##usb에 해당하는 디바이스 이름을 확인합니다.
##보통 용량으로 확인하면 편합니다.

##/dev/sdb가 usb라고 가정하겠습니다.
$sudo if=~/Downloads/젠투파일명.iso of=/dev/sdb status=progress && sync

 

인터넷 연결 확인

$ping -c 3 www.google.com

파티션

계획

  • /dev/sda1 : bootloader가 설치될 공간 : 2M : BIOS Boot Partition
  • /dev/sda2 : ext2 : 128M : Boot System Partition
  • /dev/sda3 : swap : 원하는 사이즈 : Swap Partition
  • /dev/sda4 : ext4 : 나머지 용량 : Root Partition

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

각 파티션별 코드는 fdisk 기준 ef/83/82/83 순 입니다.

 

파일시스템 생성

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

$mkfs.fat /dev/sda1
$mkfs.ext2 /dev/sda2
$mkswap /dev/sda3
$mkfs.ext4 /dev/sda4

##스왑도 켜두겠습니다.
$swapon /dev/sda3

 

루트 파티션 마운트

$mount /dev/sda4 /mnt/gentoo

 

날짜 맞추기

$date 030117532018

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

 

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='x.x' --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플래그를 동일하게 사용함
$ls /proc/cpuinfo

등의 커맨드를 통해 나오는 코어의 수를 아래 옵션으로 적어줍니다.

MAKEOPTS="-j2"

 

미러 선택

$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}"

 

부트 파티션 마운트

$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 -auDN @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=”abc def -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

 

로케일 설정

$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.직접 설치

커널 설치를 안해보신 분들은 아래 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/sda2    /boot   ext2   defaults   0 2

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

##혹시 모르니 리눅스-펌웨어 추가 설치
$emerge --ask sys-kerenl/linux-firmware

 

시스템 설정

파일시스템테이블 설정

$nano -w /etc/fstab

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

 

각종 기타 세팅

$nano -w /etc/conf.d/hostname
$nano -w /etc/conf.d/net
$nano -w /etc/conf.d/net

 

네트워크를 위한 세팅

$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

 

호스트 파일

$nano -w /etc/hosts

 

루트 계정 비밀번호 설정

$passwd

 

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

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

$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

 

부트로더 설치

$emerge --ask --verbose sys-boot/grub:2
$grub-install /dev/sda
$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-logo

XORG 를 위한 준비

 

프로파일 설정

$eselect profile list

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

$eselect profile set 18
$emerge --changed-use --ask --deep @world

커널 설정

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

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 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 -auDN @world
##상당한 시간이 소요됩니다.

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

##<Device manager> 둘 중 1개
#euedev 혹은 udev

##<Session tracker> 1개
#consolekit

 

플라즈마 설치

$emerge --ask kde-plasma/plasma-meta
$echo 'kde-plasma/systemsettings classic' >> /etc/portage/package.use/systemsettings
$emerge --ask --changed-use kde-plasma/systemsettings

##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 등 어떤 것도 따라오지 않습니다.

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

logorealfinal

 

One thought on “젠투 리눅스 설치

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s