리눅스는 참 재미있지만, 때로는 기존 배포판에서 한계에 부딪히고 뭔가 새로운 것을 갈망하게 됩니다. 게다가 ISO 파일 크기와 메모리 요구 사항은 시간이 지날수록 점점 커지는 듯합니다. 어딘가에 더 작고 가벼운 배포판이 분명 존재해야 하지 않을까요?
가벼운 리눅스 배포판을 찾고 있다면 Alpine Linux가 여러분에게 신선한 산의 공기 같은 존재가 되어줄 것입니다!
Alpine Linux란 무엇인가?
Alpine Linux는 공간과 기능 면에서 미니멀리즘을 추구하면서도 높은 보안성을 목표로 하는 리눅스 배포판입니다. 기본 설치 미디어 용량은 단 133MB에 불과합니다. 다른 배포판의 ISO 파일들이 DVD나 대용량 USB 드라이브를 전제로 설계되는 것과 비교하면 놀라울 따름입니다. Alpine은 CD-R에도 여유 있게 담깁니다.
Alpine Linux는 '위치 독립 실행 파일(Position-Independent Executables)'이라는 기술을 활용해 메모리 내 프로그램의 위치를 무작위화합니다. 덕분에 공격자가 메모리의 취약점을 악용해 시스템을 장악하기가 훨씬 어려워집니다.
설정 역시 극도로 미니멀합니다. BusyBox 스위트를 사용해 대부분의 유틸리티를 하나의 실행 파일로 제공함으로써 작은 용량을 유지합니다.
이처럼 작은 용량 덕분에 Alpine은 컨테이너 환경, 특히 Docker를 운영하는 개발자에게 매우 적합합니다.
다운로드: Alpine Linux 공식 사이트
Alpine Linux 설치하기
Alpine Linux의 설치 과정은 다른 리눅스 배포판과 크게 다르지 않습니다. 설치 이미지를 내려받아 선호하는 미디어에 옮긴 뒤, 시스템을 재부팅하면 됩니다.
Alpine의 미니멀리즘은 설치 과정에도 그대로 적용됩니다. 부팅하면 표준 리눅스 텍스트 콘솔로 진입하며, 그래픽 설치 프로그램은 존재하지 않습니다.
설치 이미지는 다운로드 페이지에서 여러 종류 중 선택할 수 있으며, 얼마나 완전한 시스템을 구축하고 싶은지에 따라 골라야 합니다.
- Standard: 대부분의 사용자에게 권장되는 이미지로, 가장 널리 쓰이는 패키지를 포함합니다. Alpine이 처음이라면 이 버전을 선택하세요.
- Extended: 라우터처럼 자주 업데이트되지 않는 특수 장치를 위해 설계된 이미지로, Standard보다 더 많은 패키지를 포함합니다.
- Netboot: 부팅과 네트워크 연결에 필요한 최소한의 요소만 담고 있습니다. 나머지 패키지는 직접 내려받아야 하며, 시스템을 자신의 요구에 맞게 세밀하게 조정하고 싶은 숙련자에게 적합합니다.
설치 시에는 부팅된 시스템에 root로 로그인합니다. 메뉴 기반 인터페이스 없이 모든 설정이 명령줄에서 이루어지는데, Arch Linux를 설치해 본 경험이 있다면 이 과정이 낯설지 않을 것입니다.
Alpine은 초보자를 세심하게 배려하지는 않지만, 설치를 단계별로 안내하는 스크립트를 제공합니다. 그중 가장 중요한 것이 setup-alpine입니다. 이 스크립트는 키보드 레이아웃, 시간대 등을 차례로 물어보고 디스크 파티셔닝까지 도와줍니다. 물론 기본값을 그대로 수용해도 무방합니다.
더 자세한 설정 방법은 공식 문서와 위키에서 확인할 수 있습니다. 다만 일부 정보가 오래되었을 수 있으니 주의하세요. 문서에서 추천하는 패키지를 설치하려 했는데 저장소에 존재하지 않는 경우도 종종 발생합니다.
Alpine Linux 설정하기
새로 설치한 Alpine으로 부팅하면 텍스트 콘솔과 셸만 있는 텅 빈 상태입니다. 기본 시스템을 실질적으로 활용하려면 몇 가지 사용자 정의 작업이 필요합니다.
일반 사용자 계정 만들기
Alpine을 처음 설치하면 root가 유일한 사용자입니다. 항상 root로 작업하는 것은 보안상 위험할 뿐 아니라, 실수로 중요한 시스템 파일을 손상시킬 가능성도 있습니다.
새 사용자를 추가하려면 다음 명령어를 입력하세요:
adduser -h /home/username -s /bin/ash/ username
username 부분을 실제 로그인에 사용할 이름으로 바꾸면 됩니다. -h 옵션은 홈 디렉터리를, -s 옵션은 셸 경로를 지정합니다. ash는 BusyBox의 기본 셸이자 Alpine에 설치된 셸이며, 다른 셸을 선호한다면 해당 경로로 변경하면 됩니다.
사용자 비밀번호는 passwd 명령어로 설정합니다:
passwd username
비밀번호를 입력하고 확인 차 한 번 더 입력하면 끝납니다. 이후 root 계정에서 로그아웃한 뒤 일반 사용자 계정으로 로그인할 수 있습니다.
기본적으로 root 권한이 필요한 명령을 실행할 때는 su 명령어를 사용합니다:
su -
- 옵션은 root로 직접 로그인한 것과 동일한 로그인 셸을 시작한다는 의미입니다. root 비밀번호를 입력하면 # 프롬프트가 나타나며, 이는 root 권한으로 실행 중임을 뜻합니다. 관리 작업을 마쳤다면 logout을 입력하거나 Ctrl + D를 눌러 반드시 일반 세션으로 돌아오는 것이 좋습니다.
sudo 사용에 익숙하다면 공식 문서에서 sudo 설정 방법을 참고할 수 있습니다.
패키지 관리
현대적인 리눅스 배포판답게 Alpine 역시 패키지 관리자를 갖추고 있습니다. 자체 개발한 APK(Alpine Package Keeper)가 바로 그것입니다.
APK 사용법은 매우 직관적입니다. Debian이나 Ubuntu에서 APT를 써 본 경험이 있다면 더욱 쉽게 느껴질 것입니다. 우연인지 의도인지 모르겠지만 상당수 명령어가 동일합니다.
저장소 정보를 갱신하려면:
apk update
설치된 패키지를 최신 버전으로 업그레이드하려면:
apk upgrade
특정 패키지(예: Vim)를 설치하려면:
apk add vim
패키지를 삭제하려면:
apk del package
삭제 후 더 이상 필요 없어진 패키지가 있다면 APK가 자동으로 정리해 줍니다. APT에서는 apt autoremove를 별도로 실행해야 하는 것과 다른 점입니다.
데스크톱 환경 설정
Alpine을 서버 용도로 쓸 계획이 아니라면 그래픽 환경을 갖추고 싶어질 것입니다. 다행히 Alpine은 주요 윈도우 매니저와 데스크톱 환경을 폭넓게 지원합니다.
X 윈도우 시스템 설정을 위해 Alpine은 setup-xorg-base 스크립트를 제공합니다. 설치 과정과 마찬가지로 스크립트를 실행하고 몇 가지 질문에 답하면 되며, 대부분의 경우 구성이 자동으로 완료됩니다.
선호하는 윈도우 매니저, 데스크톱 환경, 파일 매니저 등은 직접 설치해야 합니다. LightDM 같은 디스플레이 매니저도 함께 설치하는 것이 좋으며, OpenRC가 부팅 시 자동으로 시작하도록 등록해야 합니다.
예를 들어 LXDM을 사용하려면 다음과 같이 입력합니다:
rc-update add lxdm
rc-service lxdm start
Alpine Linux가 당신에게 맞을까?
흔히 볼 수 있는 리눅스 배포판들과는 다른 무언가를 찾고 있다면, Alpine Linux는 충분히 고려할 가치가 있습니다. 특히 가상화나 컨테이너를 위한 가볍고 안전한 서버 OS를 원한다면 Alpine만한 선택지가 드물습니다.
인터넷에는 수많은 경량 리눅스 배포판이 존재하지만, Alpine Linux라면 여러분의 거의 모든 요구를 만족시켜 줄 것입니다.