Alpine Linux
1.0、参考
1.1、Alpine Linux简介
所属类型:GNU/Linux
base on:独立
所在国家:挪威
libcmusl libc
cli-Shell:ash
bin-utils:BusyBox
init-Soft:OpenRC
包管理器:apk
支持架构:x86_64aarch64
官方主页:https://www.alpinelinux.org

优点:轻量、安全

  • 内核都打了grsecurity/PaX补丁
  • 所有的程序都编译为PIE(Position Independent Executables)以增强系统的安全性

缺点:默认不支持本地化

Alpine Linux默认不支持本地化,导致除了以英语为母语的地区外的其他用户失去了其轻量的特点,这是因为musl libc没有相关的接口和工具。

注意:

Alpine Linux默认没有安装OpenRC的管理工具, 要使用这些管理工具,您需要自己安装:

apk add openrc
1.2、Alpine Linux distribution
发布时间发布名称
2019-10-213.10.3
2019-08-203.10.2
2019-07-113.10.1
2019-06-133.10.0
2019-05-093.9.4
2019-04-083.9.3
2019-03-043.9.2
2019-03-013.9.1
2019-01-293.9.0
2018-12-203.8.2
2018-09-113.8.1
2018-06-263.8.0
1.3、Alpine Linux Docker Image

下载Docker Offical Alpine Base Image,并以此创建、启动一个容器:

docker run -it --name alpine --hostname alpine alpine:3.8 /bin/sh

我们对比一下常用的基于不同操作系统的基础镜像的文件大小(大约):

Alpine Linux5M
Ubuntu90M
CentOS200M

显然,基于Alpine LinuxDocker基础镜像的镜像文件很小, 镜像文件很小是有很大的优势的,这意味这下载的时间大大缩小了。

但是,基于Alpine LinuxDocker基础镜像的镜像文件很小,也有代价:

  • glibc替换为了musl libc,但是musl libc不支持国际化和本地化, 所以你想显示中文,还得安装glibc
  • bash替换为了ash,但是ash不支持数组特性, 但是,我们大多数已经写好的脚本,基本上是以bash为标准的。

实际上,基于Alpine LinuxDocker基础镜像的出现, 是为了给不需要国际化和本地化的那些人使用的,比如本来就使用英语的国家。中国人要使用,我们经常要打印中文日志, 这时候,默认的不支持中文的显示,所以,只会是乱码。要想不乱码,只能安装glibc并配置上中文支持。 具体办法:点我

1.4、Alpine Linux ISO安装镜像
1.5、Alpine Linux chroot

Alpine Linux团队提供了一个Shell脚本, 用来创建一个Alpine Linux文件系统,然后通过chroot进入并操作。

1、使用wget下载该脚本:

wget https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.11.0/alpine-chroot-install

2、使用sha1sum验证脚本:

echo 'df472cbd2dc93eb0b3126d06209363c4fc328ea3  alpine-chroot-install' | sha1sum -c

3、赋予脚本执行权限:

chmod a+x alpine-chroot-install

4、执行该脚本,创建Alpine Linux文件系统:

./alpine-chroot-install -b v3.9 -m https://mirrors.tuna.tsinghua.edu.cn/alpine

5、进入该环境:

/alpine/enter-chroot -u $USER ./build