Alpine Linux
최근 수정 시각: (5년 전)
분류
1. 개요 [편집]
Alpine Linux (알파인 리눅스)
공식 홈페이지
공식 다운로드 페이지
공식 미러 페이지
공식 패키지 페이지
공식 위키
리눅스 커널을 기반으로 한 리눅스 배포판 가운데 하나이며 타 배포판과는 다르게 Musl과 BusyBox를 기반에 두었다. MIT 라이선스 아래에 배포되었으며 LEAF 리눅스의 포크 버전이다. 알파인 리눅스는 '작고', '보안이 뛰어나고', '간단함'을 염두에 두고 만들어졌으며 이는 LEAF 리눅스 때와 같다. 하지만 시간이 지나면서 이 장점들을 더욱이 다양하게 활용하고 싶은 사람들이 늘어났고 그 결과로 커널을 제외한 배포판의 용량이 8MB 밖에 되지 않으면서 그 위에 수많은 패키지들을 설치할 수 있는 지금의 상태가 되었다.
기본적으로 타 리눅스 배포판보다 훨씬 가볍고 깔끔한 것이 장점이기 때문에 Docker 컨테이너에 사용되는 예는 매우 많고 유명하다. 위에서 커널을 제외한 배포판의 용량이 8MB 밖에 되지 않는다고 하였고 실제로 Docker에 올라가는 Alpine Linux는 그렇다. 그 이유는 Docker가 호스트 운영체제의 커널 위에 격리를 시켜주는 반가상화 시스템이기 때문이다. 이러한 가벼움 덕분에 Docker를 사용하여 많은 패키지를 가상화하여 올리는 경우나 정말로 서버에 올리고 싶은 것만 깔끔히 올리고 싶은 경우에 Alpine Linux를 사용한다. 리눅스를 데스크톱으로 사용하는 경우에는 직접 모든 것을 세팅하는 시간보다 다른 사용성에 더 중점을 맞춘 배포판을 설치하는 시간이 더 짧다.
공식 홈페이지
공식 다운로드 페이지
공식 미러 페이지
공식 패키지 페이지
공식 위키
리눅스 커널을 기반으로 한 리눅스 배포판 가운데 하나이며 타 배포판과는 다르게 Musl과 BusyBox를 기반에 두었다. MIT 라이선스 아래에 배포되었으며 LEAF 리눅스의 포크 버전이다. 알파인 리눅스는 '작고', '보안이 뛰어나고', '간단함'을 염두에 두고 만들어졌으며 이는 LEAF 리눅스 때와 같다. 하지만 시간이 지나면서 이 장점들을 더욱이 다양하게 활용하고 싶은 사람들이 늘어났고 그 결과로 커널을 제외한 배포판의 용량이 8MB 밖에 되지 않으면서 그 위에 수많은 패키지들을 설치할 수 있는 지금의 상태가 되었다.
기본적으로 타 리눅스 배포판보다 훨씬 가볍고 깔끔한 것이 장점이기 때문에 Docker 컨테이너에 사용되는 예는 매우 많고 유명하다. 위에서 커널을 제외한 배포판의 용량이 8MB 밖에 되지 않는다고 하였고 실제로 Docker에 올라가는 Alpine Linux는 그렇다. 그 이유는 Docker가 호스트 운영체제의 커널 위에 격리를 시켜주는 반가상화 시스템이기 때문이다. 이러한 가벼움 덕분에 Docker를 사용하여 많은 패키지를 가상화하여 올리는 경우나 정말로 서버에 올리고 싶은 것만 깔끔히 올리고 싶은 경우에 Alpine Linux를 사용한다. 리눅스를 데스크톱으로 사용하는 경우에는 직접 모든 것을 세팅하는 시간보다 다른 사용성에 더 중점을 맞춘 배포판을 설치하는 시간이 더 짧다.
2. 미러 서버 [편집]
공식 미러 페이지
Alpine Linux는 주로 호스트 환경보다 특정 애플리케이션을 서비스만 하면 되는 컨테이너 환경에서 사용할 수만 있으면 되기 때문에 미러 서버의 규모가 타 배포판에 비해 크지는 않다. 그렇기 때문에 또한 대부분의 아시아 미러 서버는 중국에 위치하여 있다. 기본 미러 서버(dl-cdn.alpinelinux.org)도 국내에서 준수하게 약 100Mbps 정도 수준에서 다운로드할 수 있기 때문에 국내 미러가 필수는 아닌 수준이다. 미러 서버와 같은 경우는 설치 시에 미러 서버를 선택하는 창에서 f 옵션을 사용하면 지연 속도에 기반하여 가장 빠른 미러를 선택해준다.
Alpine Linux는 주로 호스트 환경보다 특정 애플리케이션을 서비스만 하면 되는 컨테이너 환경에서 사용할 수만 있으면 되기 때문에 미러 서버의 규모가 타 배포판에 비해 크지는 않다. 그렇기 때문에 또한 대부분의 아시아 미러 서버는 중국에 위치하여 있다. 기본 미러 서버(dl-cdn.alpinelinux.org)도 국내에서 준수하게 약 100Mbps 정도 수준에서 다운로드할 수 있기 때문에 국내 미러가 필수는 아닌 수준이다. 미러 서버와 같은 경우는 설치 시에 미러 서버를 선택하는 창에서 f 옵션을 사용하면 지연 속도에 기반하여 가장 빠른 미러를 선택해준다.
3. 특징 [편집]
3.1. 가벼운 용량 [편집]
가벼운 용량을 컨셉으로 잡은 덕분에 패키지 하나하나의 용량이 매우 작고 기본적으로 man 문서를 분리하여 용량에서 더 많은 이점을 가져갔다고 볼 수 있다.
- 각 패키지의 man 문서는 패키지이름-doc 형태로 분리되어 있다.
- Glibc가 아닌 Musl을 사용하여 더더욱 임베디드에서 가볍게 동작한다.
- BusyBox 기반으로 단일 바이너리의 용량을 줄였다.
3.2. Musl libc [편집]
타 리눅스 배포판과 달리 Musl libc로 컴파일되었기 때문에 포팅이 되지 않은 패키지나 프로그램의 경우에는 Musl libc로 다시 컴파일하여야 사용할 수 있는 경우가 간혹 생길 수 있다. Alpine Linux의 공식 홈페이지의 설명에는 Musl을 통해 타 GNU/Linux 배포판들보다 더 가볍고 효율적인 자원 분배를 이루었다고는 하나 Musl과 Glibc는 서로간의 장단점이 있기 때문에 무조건 한 편이 나쁘다고 할 수 없다. 그 결과로 작업에 따라 격차가 많이 생길 수 있음을 인지하고 사용해야 한다. 또한 호환성의 격차를 줄이기 위하여 BusyBox도 사용한다.
3.3. APK 패키지 관리자 [편집]
알파인 리눅스에서는 APK를 패키지 관리자로 사용한다. 저장소(레포지토리/브랜치)의 경우에는 /etc/apk/repositories 파일을 수정하면 된다. APK 패키지 관리자의 구성은 타 배포판과 달리 마찬가지로 매우 단순하며 유용하다. 기본적으로 다음과 같은 문법을 따른다.
apk [옵션] <명령> [인자...]
명령 | 설명 |
apk update | 패키지 저장소 목록을 업데이트한다. |
apk search <패키지> | 패키지 저장소 목록에서 패키지를 검색한다. v 옵션을 추가하면 설명도 출력된다. 혹은 알파인 리눅스 패키지 페이지에서도 검색할 수 있다. |
apk add <패키지[=버전]> | 특정 패키지를 설치한다. 뒤에 >나 = 등을 붙여 버전 정보를 추가로 작성할 수 있다. |
apk del <패키지> | 특정 패키지를 제거한다. |
apk cache clean | 패키지 캐시를 모두 제거한다. |
apk cache -v sync | 패키지 캐시를 초기화하고 부족한 패키지를 자동으로 다운로드한다. |
apk stats | 현재 패키지 저장소에서 사용가능한 패키지나 설치된 패키지 등의 정보를 불러온다. |
apk fix | 복구가 필요한 패키지를 복구하거나 종속성을 제외하고 업그레이드한다. |
- 기본 저장소 구성에는 v3.12(2020년 9월 17일 기준 최신 버전) 브랜치만 추가되어 있지만 대부분의 패키지들을 사용하려면 /etc/apk/repositories에서 edge 브랜치의 주석을 해제하면 된다. 단, Alpine Linux 자체도 Edge 브랜치로 업데이트되기 때문에 각별한 주의가 필요하다.
- -U 옵션을 붙이면 캐시를 무시하고 항상 저장소 서버에서 가져온다. 그렇기 때문에 apk update를 실행할 필요가 없다.
- 버전을 업그레이드하기 위해서는 단순히 브랜치를 변경하면 된다. 예를 들어서 v3.11에서 v3.12로 업그레이드 시에는 /etc/apk/repositories에서 버전을 변경하면 된다.
4. 기반으로 한 다른 소프트웨어 [편집]
현재 섹션에서는 Alpine Linux를 기반으로한 다른 소프트웨어 혹은 운영체제를 나열하고 설명합니다.
4.1. WSL [편집]
Alpine Linux에서 공식적으로 지원하고 있지는 않으나 Microsoft Store에서 Alpine Linux를 WSL로 사용 가능하다. Alpine WSL에서는 기본 계정이 Root가 아니지만 su -l root를 통해 root 계정으로 액세스가 가능하다.
5. 유용한 문서 혹은 명령 [편집]
- Alpine Linux Intel Video 지원, 기본적으로 Linux에서 Intel Video 드라이버는 Xorg의 한 부분이었다.
- Alpine Linux 미러 서버 만들기, Alpine Linux 위키에서는 공식적으로 미러 서버를 만드는 방법을 설명한다.
라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.