소개
아치 리눅스(Arch Linux)는 2002에 개발되어 지금까지 유지보수되는 리눅스 배포판입니다. 기존의 사용자 중심에서 쉽고 단순함을 추구하던 다른 배포판이나 운영체제들과는 달리 아치 리눅스는 기술적인 측면에서 단순함을 목표로 만들어졌으며, 다음과 같은 특징을 제공합니다.
- i686, x86_64 기반으로 컴파일된 패키지
- BSD 스타일의 스크립트 및 환경 설정 파일
- 동적 initramfs 생성기 mkinitcpio 제공
- 가볍고 빠른 패키지 관리자 팩맨(pacman)을 제공
- 포트(port) 형태의 패키지 빌드 시스템(Arch Build System)으로 쉽게 설치 가능한 패키지 생성
- 사용자가 직접 참여가능한 저장소(Arch User Repository)
다운로드
아치 리눅스를 설치하려면 아치 리눅스 홈페이지에서 설치 시디 이미지를 선택하여 내려받아 설치하면 됩니다. 홈페이지에는 속도를 이유로 비트토렌트(bittorrent), 시디(CD) 주문, 직접(http/ftp) 다운로드 링크가 제공되고 있습니다. 설치 형태로는 넷인스톨(netinstall)과 코어 이미지(core image)가 있고, cpu 구조(architecture)에 따라 i686, x86-64, i686과 x86-64가 함께 있는 듀얼 아키텍쳐(dual architecture)가 있습니다. 여기에서는 코어 이미지로 듀얼 아키텍쳐를 선택해서 내려 받았습니다. 정상적으로 내려받으면 659MB의 용량을 갖고 있습니다.
부팅 및 준비
내려받은 시디(live cd)로 부팅을 하면 부트 로더가 실행되고 ‘i686′이나 ‘x86-64′ 중에 원하는 것을 선택합니다. 여기서는 ‘i686′을 선택합니다. 부팅이 완료되면 콘솔 로그인 화면이 실행되어 있습니다. root 또는 arch를 입력하여 로그인합니다. 여기서는 root로 로그인 합니다. 설치하기 전에 fdisk -l 명령으로 어느 디스크에 설치할 것인지 장치명을 확인합니다. 여기에서는 ‘/dev/sdb: 1000.2 GB, /dev/sda: 64.0 GB’라고 나와 있습니다. 여기서는 64GB의 /dev/sda에 설치를 하도록 하겠습니다.
설치 시작
/arch/setup 명령으로 설치 프로그램을 실행합니다. 명령 실행 결과는 ‘ALT-F7′ 을 눌러서 나오는 콘솔 터미널에서 확인할 수 있다는 안내문이 나옵니다. Ok를 눌러주면 8개의 메뉴로 이뤄진 주 메뉴(MAIN MENU)가 나타납니다.
설치 원본 선택
1번 ‘Select Source’ 단계에서 설치 원본 위치를 ‘cd’와 ‘net’을 선택할 수 있습니다. 여기서는 ‘cd’를 선택합니다.
날짜 및 시간 정보 설정
2번 ‘Set clock’ 단계에서는 날짜 및 시간 정보를 입력합니다. ‘Date/time configuration’ 창에서 ‘Select region and timezone’ 항목을 눌러 지역 목록이 나오면 ‘Asia’와 ‘Seoul’을 차례대로 선택해줍니다. 다시 ‘Date/time configuration’ 창이 나타나면 ‘Set time and date’ 항목을 눌러 ‘UTC’와 ‘localtime’이 나오면 ‘localtime’을 선택합니다. 현재 설정된 시간이 나타나면서 이 시간을 고칠것인지 말건지를 결정하기 위해 ‘return, ntp, manual’ 항목이 있습니다. 시간이 이상하지 않으면 ‘return’을 눌러 메인 메뉴로 나갑니다. 이상하다면 ‘ntp’를 통해 인터넷으로 시간을 맞추거나 ‘manual’을 통해 직접 시간을 고칩니다. 여기서는 ‘return’을 선택한 뒤 주 메뉴로 나갑니다.
파티션 설정
3번 ‘Prepare Hard Drive(s)’ 단계에서 파티션 설정을 합니다.
새 하드 디스크를 장착해서 설치한다면 ‘Auto-Prepare’를 선택해주면 편합니다. 기존에 사용하던 하드 디스크를 기존 데이터를 보존하면서 설치를 하고 파티션을 생성하려면 ‘Manually Partition Hard Drives’를 선택합니다. 여기서는 ‘Auto-Prepare’를 선택했습니다. /dev/sda를 선택하고 /boot 파티션에 100MB, ‘swap’ 파티션에 256MB, / 파티션에 7500MB, /home 파티션에 남은 용량을 모두 할당하고 ‘ext4′를 선택했습니다. /boot 파티션은 ‘ext2′로 포맷되었습니다.
패키지 선택
4번 ‘Select Packages’ 단계에서 설치할 패키지들을 선택합니다. 패키지는 ‘base’와 ‘base-devel’을 선택만 하고 세부 목록에서는 추가로 선택하지 않고 기본값으로 그대로 두었습니다.
패키지 설치
5번 ‘Install Packages’ 단계를 선택하면 선택된 패키지들을 설치합니다. 설치가 완료되면 그동안의 과정을 다시 보여주는데 ‘Continue’를 눌러 주 메뉴로 나오면 됩니다.
설정 편집
6번 ‘Configure System’ 단계에서는 환경 설정 파일들을 편집할 수 있습니다. /etc/pacman.d/mirrorlist에 들어가니 #으로 주석처리된 미러리스트들이 보입니다. 맨 위의 Any에서 ftp 부분만 주석을 해제해주고 저장하고 나와서 루트 계정 암호를 정해줍니다.
부트 로더 설치
7번 ‘Install Bootloader’ 단계에서 그럽(Grub)을 선택하면 편집기 선택창이 나오고 편집기를 고르면 설정 파일이 열리는데 저장하고 나옵니다. 부트로더가 설치될 파티션은 /dev/sda를 선택합니다.
재부팅
주 메뉴에서 마지막 메뉴를 선택하면 reboot로 다시 시작하라는 메시지가 나오고 다시 프롬프트 모드로 바뀝니다. reboot를 실행시키고 설치 시디를 빼면 하드 디스크에 설치한 아치 리눅스로 부팅됩니다.
팩맨(pacman) 사용법
팩맨(pacman)은 데비안의 apt-get처럼 패키지를 관리하는 프로그램입니다. 팩맨 매뉴얼 페이지에 자세한 옵션이 나와 있습니다. 다음은 조요 명령어 목록입니다.
| 목록 갱신 | pacman -Sy |
패키지 목록을 갱신합니다. |
| 업그레이드 | pacman -Su 패키지이름 |
지정한 이름의 패키지를 업그레이드합니다. 이름을 지정하지 않으면 모든 가능한 패키지를 업그레이드합니다. |
pacman -Syu |
목록을 갱신한 뒤 업그레이드를 수행합니다. | |
pacman -Sc |
더이상 사용되지 않는 패키지들의 캐쉬를 삭제합니다. | |
| 설치 | pacman -S 패키지이름 |
지정한 이름의 패키지를 검색합니다. |
pacman -S "bash>=3.2" |
특정 버전을 지정할 수도 있습니다. | |
pacman -S extra/패키지이름 |
다른 저장소에 있는 패키지도 설치할 수 있습니다. | |
| 삭제 | pacman -R 패키지이름 |
지정한 이름의 패키지만 삭제합니다. |
pacman -Rs 패키지이름 |
지정한 이름의 패키지와 그에 의존하는 모든 패키지를 포함하여 삭제할 수 있습니다. | |
pacman -Ru 패키지이름 |
지정한 이름의 패키지와 그에 의존하는 모든 패키지 중 사용되지 않는 패키지만 삭제합니다. | |
| 검색 | pacman -Ss 정규식 |
지정한 단어가 패키지 이름이나 설명에 포함된 패키지를 찾습니다. 검색어가 여러 개이면 모든 검색어와 일치하는 결과를 돌려줍니다. |
pacman -Qs 정규식 |
-Ss와 기능이 같으나 설치한 패키지에서만 찾습니다. |
|
| 정보 | pacman -Si 패키지이름 |
지정한 이름의 패키지의 저장소에 있는 설명을 보여줍니다. |
pacman -Qi 패키지이름 |
-Si와 기능이 같으나 설치되어 있는 패키지에 대한 정보만 보여줍니다. |
|
pacman -Ql 패키지이름 |
지정한 이름의 패키지에 포함된 파일 목록을 볼 수 있습니다. | |
pacman -Qe |
명시적으로 설치한 패키지 이름의 목록을 보여줍니다. | |
pacman -Qo 파일이름 |
지정한 파일을 소유한 패키지를 보여줍니다. |
yaourt 설치 및 사용법
AUR(Archlinux User-community Repository)은 사용자 커뮤니티가 조직적인 방법으로 수집된 각종 자료를 모아서, 그 내용을 유지하는 중심 저장소입니다. 기본 패키지 저장소에는 매우 기본적인 소프트웨어만 존재하지만, 여러가지 글꼴을 포함해서 안드로이드(android), 드랍박스(dropbox) 등과 같이 우분투에서는 직접 설치하거나 외부 APT 소스를 추가해야 하는 기능들을 대부분 AUR에서 찾을 수 있습니다. 우분투와 달리 모든 패키지가 롤링 릴리스(rolling release) 방식이라 테스팅(testing) 저장소에서 큰 문제가 없을 경우 바로 메인 저장소로 넘어오면서 항상 최신 소프트웨어를 사용할 수 있습니다. 이 저장소(AUR)에 있는 패키지를 내려받아 사용하기 위해서는 yaourt가 필요한데 정식 패키지 저장소에는 포함되어 있지 않습니다.
설치하는 방법은 블로그를 참조하여 내용을 작성한 것입니다. 먼저 yaourt를 받기 위해서는 다음 저장소를 /etc/pacman.conf 파일에 추가해야 합니다. 32비트 환경인 경우,
[archlinuxfr] Server = http://repo.archlinux.fr/i686
64비트 환경인 경우,
[archlinuxfr] Server = http://repo.archlinux.fr/x86_64
설정이 추가되었으면 다음 명령으로 설치합니다.
$ sudo pacman -Sy yaourt
참고로 /etc/pacman.conf 설정 파일에서 ‘testing’ / ‘community-testing’ 섹션을 활성화하면 더 빨리 패키지 최신 버전을 설치할 수도 있고, x86_64 버전에서는 ‘mulitilib’ 섹션을 활성화해주어야 android-sdk 등을 설치하는데 문제가 없습니다.
yaourt 사용법은 팩맨과 거의 동일해서, AUR + 기본패키지를 모두 검색하고 설치합니다. 예를 들어 yaourt -Ss 명령어로 패키지가 있는지 검색하고, sudo yaourt -S 명령으로 패키지를 설치할 수 있습니다. 업그레이드도 sudo yaourt -Syu 명령으로 동시에 처리할 수 있습니다. 좀 더 자세한 명령은 다음과 같습니다.
| 검색 및 설치 | yaourt [keywords] |
지정한 이름의 패키지를 검색해서 설치합니다. 검색된 패키지가 여럿이라면 앞에서부터 번호가 1부터 매겨져서 원하는 패키지의 번호를 골라줘야 설치가 됩니다. |
yaourt -S [packages] |
지정한 이름의 패키지를 설치합니다. 필요하다면 AUR에서 컴파일도 합니다. | |
yaourt -Ss [keywords] |
지정한 키워드에 해당하는 패키지를 기본 저장소와 AUR 저장소에서 찾습니다. | |
yaourt -Sb [packages] |
지정한 이름의 패키지가 기본 저장소에 있다면 ABS를 사용해서 소스를 컴파일합니다. 기본 저장소에 없다면 AUR을 통해서 시도합니다. | |
yaourt -Si [packages] |
지정한 이름의 패키지의 정보를 모든 저장소와 AUR 데이터베이스를 검색해서 보여줍니다. | |
yaourt -Sl [repos] |
지정한 이름의 저장소에 속해있는 모든 패키지 목록을 보여줍니다. | |
yaourt -Qd [packages] |
-Si와 동일한 역할을 하나 설치한 패키지에 대한 정보만 검색해서 보여줍니다. | |
yaourt -Qo [progname] or [filename] |
지정한 이름의 프로그램이나 파일이 어느 패키지에서 제공하고 있는지 보여줍니다. | |
| 업그레이드 | yaourt -Syu |
기본 저장소에 있는 패키지 데이터베이스 목록으로 지역 목록을 갱신하고 업그레이드 가능한 패키지가 있으면 업그레이드합니다. |
yaourt -Syu --aur |
-Syu와 같은 동작을 하나 AUR 저장소에서도 검색을 합니다. |
|
yaourt -Sybu --aur |
-Syu --aur과 같은 동작을 하나 소스 컴파일을 통해서 합니다. |
|
yaourt -Su --devel |
cvs/svn/mercurial/git 패키지들을 갱신하고 업그레이드합니다. | |
| 삭제 | yaourt -C |
.pac* 파일을 관리(수정(edit), 교체(replace), 숨기기(suppress))합니다. |
yaourt -Cc |
.pac* 파일을 삭제합니다. | |
yaourt -Qt |
현재 설치한 패키지에서 사용하지 않는 패키지들을 가려냅니다. -d 옵션과 혼용하면 사용되지도 않고 의존관계도 없는 고아(orphan) 패키지들을 찾아 지울 것인지 물어봅니다. |
|
yaourt -Cd |
설명상에는 구식 저장소(obsolete repos)에서 찾는다고 했는데 -C 옵션과 동일한 결과를 나타내고 있는 것 같습니다. |
|
| 기타 | yaourt -S --aur [packages] |
AUR에도 있고 기본 저장소에도 있는 패키지를 찾아 컴파일합니다. |
yaourt -G [packages] |
현재 위치에 ABS와 AUR에서 컴파일하기 위한 PKGBUILD 파일을 내려받습니다. | |
yaourt -B |
팩맨 데이터베이스 목록(alpm local database)을 현재 디렉토리에 내려받습니다. |
사용자 계정 추가
루트 계정으로 다음과 같이 실행하여 일반 사용자 계정을 추가합니다.
$ adduser Login name for new user []: (사용자의 로그인 이름을 써줍니다)
이후 물어보는 항목은 기본값을 사용해도 됩니다. 모두 입력하면 개인정보를 입력하는 부분이 나옵니다. 비밀번호를 제외한 나머지 부분은 비워도 상관없습니다.
sudo 설치
루트(root) 계정만 쓸 것이 아니라면, 등록한 사용자에 한해서 sudo 명령으로 사용자 암호를 사용해서 관리자 권한으로 명령을 실행시키는게 좋습니다. 이를 위해 다음과 같이 루트 계정으로 명령어를 설치합니다.
$ pacman -S sudo
/etc/sudoers 파일에 %wheel ALL=(ALL) ALL을 추가하고 저장한 다음부터 사용이 가능합니다. 단 사용자 계정이 ‘wheel’ 그룹에 가입되어 있어야 합니다.
그룹 가입
특정 그룹에 가입하려면 gpasswd 명령을 사용하면 됩니다. 위에서 언급된 ‘wheel’그룹에 사용자 ‘username’을 가입시키려면 다음과 같이 실행합니다.
$ sudo gpasswd -a username wheel
이 그룹을 가입한 효과는 다시 로그인한 뒤부터 적용됩니다.
그놈(GNOME) 설치
다음 명령으로 그놈과 GDM(GNOME Display Manager)을 설치해줍니다.
$ sudo pacman -S gnome gnome-extra gdm
X 환경으로 부팅하기 위해서 /etc/inittab 파일을 편집해줘야 합니다. 다음 부분을 찾아 3을 5로 바꿔줍니다.
id:3:initdefaultgdm의 경로가 잘못되어 있습니다. 다음 부분을 찾아 ‘/’ 부호로 시작되는 gdm 경로를 /usr/sbin/gdm으로 바꿔줍니다.
x:5:respawn:/usr/sbin/gdm/etc/rc.conf 파일에 설정을 추가해줘야 합니다. DAEMONS=() 부분을 찾아 괄호 안에 dbus를 추가해 줍니다.
한글 환경 구성
아치 리눅스에서 지원되는 한글 입력기는 scim-hangul이 있습니다. AUR에서 나비(nabi)도 찾을 수 있습니다. 이들 패키지 설치와 함께 로케일(locale)을 설정해줘야 합니다. /etc/rc.conf 파일을 열어서 LOCALE=ko_KR.UTF-8을 설정해주고 /etc/locale.gen 파일을 열어서 ko_KR 부분을 찾아서 주석 표시(‘#’)를 제거해줘야 합니다. 설정이 끝났으면 sudo locale-gen을 실행한 뒤 재부팅 또는 로그아웃했다가 다시 로그인해야합니다.
nvidia 드라이버 설치
팩맨으로 설치할 수 있습니다.
$ sudo pacman -S nvidia
아래는 제가 사용하는 프로그램을 설치하고 사용하지 않는 프로그램을 제거하는 내용에 대한 글입니다. 사용자의 환경이나 취향에 따라 프로그램 선택이 달라질 수 있습니다.
synergy 설치
네트워크를 통해 한 쌍의 키보드와 마우스를 두 개 이상의 컴퓨터에서 공유할 수 있게 해주는 프로그램입니다. 팩맨으로 설치할 수 있습니다.
$ sudo pacman -S synergy
키보드와 마우스가 직접 연결되어 있는 서버 쪽에 설정을 해야합니다. AUR에서 시너지 GUI 설정 프로그램(quicksynergy)를 설치하면 좀 더 쉽게 설정할 수 있습니다.
git 및 ctags 설치
git은 버전관리 프로그램, ctags는 함수나 변수가 정의된 곳으로 찾아갈 수 있도록 경로를 제공하는 프로그램입니다. 간단하게 팩맨으로 설치가 가능합니다.
$ sudo pacman -S git ctags
리눅스 커널 헤더 설치
리눅스 커널 헤더는 팩맨으로 설치 가능합니다. 현재 커널 버전이 2.6.x대라 다음 명령으로 설치합니다.
$ sudo pacman -S kernel26-headers
openssh 설치
다른 컴퓨터로 접근하거나 다른 컴퓨터에서 접속하고 싶을 때 필수적인 프로그램입니다.
팩맨으로 설치 가능합니다.
$ sudo pacman -S openssh
다른 컴퓨터에서 접속하기 위해서는 /etc/hosts.allow 파일을 편집해야 합니다.
# 모든 사용자를 허용할 경우 sshd: ALL # 특정 IP만 허용할 경우 sshd: 192.168.0.1 #특정 IP 범위만 허용할 경우 sshd: 10.0.0.0/255.255.255.0 #일치하는 부분까지 허용할 경우 sshd: 192.168.1.
부팅시 자동으로 시작하게 하려면 /etc/rc.conf 파일의 ‘DAEMONS’ 섹션에 ‘sshd’를 추가합니다.
DAEMONS=(... ... sshd)
sshd 데몬을 재시작해주면 설정이 적용됩니다.
sudo /etc/rc.d/sshd restart
고정 IP 사용하기
고정 IP를 사용하려면 다음 두 파일을 고쳐야 합니다. 다음 두 파일은 공유기를 사용하는 상황에서 설정되었습니다.
/etc/resolv.conf 파일에는 다음 내용을 추가합니다.
nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 192.168.0.1
/etc/rc.conf 파일에는 다음 내용을 추가합니다.
gateway="default gw 192.168.0.1" ROUTES=(gateway)
위와 같이 고쳤으면 네트워크 서비스를 재시작해야 합니다.
$ sudo /etc/rc.d/network restart
