alpine默认是没有语言环境的,没有中文不舒服不说。有时可能还会遇到中文乱码。那就来尝试一下安装中文语言环境吧!
检查语言环境
查看当前语言环境
echo $LANG
我的执行结果如下:
➜ ~ echo $LANG
C.UTF-8
查看当前系统是否有中文语言包
locale -a
我的执行结果如下:
➜ ~ locale -a
zsh: command not found: locale
发现没有locale命令,那么我们先要解决的问题就是locale命令的安装。
准备工作
安装软件
apk --no-cache add ca-certificates wget
# 安装公钥
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
#下载相关apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-2.33-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-bin-2.33-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-i18n-2.33-r0.apk
#安装apk
apk add glibc-bin-2.33-r0.apk glibc-i18n-2.33-r0.apk glibc-2.33-r0.apk
执行结果如下:
➜ ~ apk add glibc-bin-2.33-r0.apk glibc-i18n-2.33-r0.apk glibc-2.33-r0.apk
(1/4) Installing glibc (2.33-r0)
(2/4) Installing libgcc (10.2.1_pre1-r3)
(3/4) Installing glibc-bin (2.33-r0)
(4/4) Installing glibc-i18n (2.33-r0)
Executing glibc-bin-2.33-r0.trigger
/usr/glibc-compat/sbin/ldconfig: /usr/glibc-compat/lib/ld-linux-x86-64.so.2 is not a symbolic link
OK: 178 MiB in 77 packages
如果报错了请自己网上找答案,这里要说一下,这个方法只适用于x86平台,如果是arm的cpu需要找arm平台的apk包安装,我在Termux中就安装失败了,至今没找到合适的包(找到的包多数安装不成功,pub无效之类的)。
执行下面命令,设置语言环境。
/usr/glibc-compat/bin/localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
然后在环境变量中增export LANG=zh_CN.UTF-8
我使用的是zsh所以加到~/.zshrc
中
检验
安装完成后,我发现虽然LANG=zh_CN.UTF-8已经设置成功了,使用apk安装的程序也只会显示英文,比如:vim
date 执行结果都是英文,但是手动安装的软件已经可以显示中文了。
我在想可能alpine的软件包本身就没有考虑其他的语言支持吧,自己安装的软件包才有中文。
自己安装的nvim也是可以显示中文的。
至少现是是不会出现中文乱码了。
下载的jdk命令也显示的是中文:
总结
既然没有中文乱码了,那我们的任务就完成了。美中不足的就是apk安装的软件包,基本还都显示英文。
参考
- 《基于alpine制作UTF-8的jdk8镜像》
https://blog.csdn.net/qq_33285112/article/details/109726538
版权声明:本文为lxyoucan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。