alpine linux配置中文语言环境

2023-05-16

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

alpine linux配置中文语言环境 的相关文章

  • Linux、ARM:为什么仅当启动时存在 I2C GPIO 扩展器时才创建 gpiochip

    在 imx6sx 硬件平台 NXP 嵌入式 ARM 上使用 Linux 3 14 52 问题是设备树中指定的 PCF8575 I2C GPIO 扩展器不会实例化为 sys class gpio 结构中的设备 除非它们在内核启动期间存在 这些
  • 是否从页面缓存中的脏页面进行文件读取?

    当字节写入文件时 内核不会立即将这些字节写入磁盘 而是将这些字节存储在页缓存中的脏页中 回写缓存 问题是 如果在脏页刷新到磁盘之前发出文件读取 则将从缓存中的脏页提供字节 还是首先将脏页刷新到磁盘 然后进行磁盘读取以提供字节 将它们存储在进
  • 确保 config.h 包含一次

    我有一个库项目 正在使用 Linux 中的 autotools 套件移植到该项目 我对自动工具很陌生 本周 我已经了解了其操作的基础知识 我有一个关于如何保留内容的问题config h免遭重新定义 我惊讶地发现生成的config h文件也没
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • 怎样才能使 Windows 成为一个开箱即用的 POSIX 兼容操作系统?

    这个问题的动机是我的一个牵强的梦想 即 nix 平台上可用的许多优秀软件可以轻松移植到 Windows 微软最近对开源和开放性采取了不同的方法 所以我真的很想知道如果微软有这样的倾向 这样的事情会有多可行 我很好奇的一些更具体的事情是 是否
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • 停止服务时单元陷入故障状态(状态=143)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的问题 我有 CentOS 和 java 进程在上面运行 Java进程是通过启动 停止脚本来操作的 它也创建了 java 实例的 p
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然

随机推荐

  • no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask

    现象 执行命令 xff1a span class token function source span zshrc 报错如下 xff1a compinit 503 no such file or directory usr local sh
  • 黑苹果macOS Big Sur更新11.3后usb3.0无法使用解决办法

    现象 macOS Big Sur 11 2 usb都正常使用 xff0c 更新到macOS Big Sur 11 3后发现usb3 0无法使用了 xff0c usb2 0还是正常的 解决办法 修改配置文件 EFI OC config pli
  • React Native 学习笔记

    iOS模拟器切换软键盘 如果您使用的是iOS模拟器 xff0c 则可以连接硬件键盘 xff0c 并将其与 任何输入字段 这可以通过Shift 43 43 K切换到软键盘 输入法键盘遮挡问题解决 操作演示如上图 xff0c 解决问题关键代码如
  • linuxbrew安装pip3+ranger

    因为brew install ranger安装出来的ranger是基于python2的 xff0c nvim中无法使用rnvimr插件 所以需要使用pip3安装一下ranger 在centos7 中使用linuxbrew安装的python3
  • Expo使用隧道穿透远程开发记录

    expo启动项目默认是使用的端口是19000 而且expo自带一个免费的隧道穿透功能 但是这个免费的隧道穿透毕竟是国外的不稳定 既然官方都支持隧道穿透了 xff0c 自定义隧道应该也是可以的吧 xff01 如何能稳定远程开发呢 xff1f
  • vim中React JSX语法高亮插件vim-jsx-pretty

    项目地址 https github com MaxMEllon vim jsx pretty 安装方法 vim plug为例 xff0c vimrc加入 Plug span class token string 39 yuezk vim j
  • Error: ENOSPC: System limit for number of file watchers reached

    现象 RN开发使用expo创建项目遇到如下错误 Logs for your project will appear below Press Ctrl 43 C to exit node 18489 DEP0066 DeprecationWa
  • vmware中CentOS7使用NAT模式主机无法通过ip连接虚拟机(记录)

    背景 有客户遇到了个问题我帮其远程解决 xff0c 我把大概的解决思路记录一下 客户先遇到了个问题 xff1a vmware中CentOS7因为使用NAT模式无法上网 xff0c 所以一直使用桥接模式上网 使用桥接的模式虽然可以上网但是虚拟
  • Windows下oracle client安装exp导出imp导入表

    下载Windows 32位客户端 下载页面 xff1a https www oracle com cn database enterprise edition downloads oracle db11g win32 html 下载完成以后
  • kali新手入门教学(1)--安装后的配置

    第一次写博客 xff0c 可能经验不是很足 xff0c 有不到位的地方还请各位见谅 最近在自学kali 然后kali是一个更新较快的系统 xff0c 虽然网上教程也很多 xff0c 但有的可能过时了 xff0c 所以我就把我这段时间的经验分
  • CentOS7安装mysql8笔记

    全新安装MySQL的步骤 以下说明假定您尚未使用第三方分发的RPM软件包将MySQL安装在您的系统上 xff1b 实操记录 我仅在CentOS Linux release 7 9 2009 Core 下进行测试 xff0c 其他环境仅供参考
  • mysql数据库安装教程合集

    CentOS7安装mysql8笔记 https blog csdn net lxyoucan article details 116854446 archlinux使用docker运行mysql实例 https blog csdn net
  • CentOS7使用docker跑mysql8笔记

    什么是docker Docker 是一个开放源代码软件 xff0c 是一个开放平台 xff0c 用于开发应用 交付 xff08 shipping xff09 应用 运行应用 Docker允许用户将基础设施 xff08 Infrastruct
  • x509: certificate has expired or is not yet valid.

    CentOS7中使用docker运行报错如下 xff1a root 64 localhost sudo docker run hello world Unable to find image hello world latest local
  • archlinux配置Xfce+fcitx5中文输入法

    因为图形界面我用的相对比较少 xff0c 所以喜欢安装小巧一些的桌面管理器 Centos中我比较喜欢使用openbox xff0c 但在是archlinux不知道在openbox使用中文输入法 xff0c 搞了半天也没解决 xff0c 不想
  • vim自动关闭标签

    一行代码搞定 inoremap span class token operator lt span buffer span class token operator gt span span class token operator lt
  • vim中jsx语法高亮

    没安装高亮插件前 安装插件vim jsx pretty xff08 卡顿 xff09 安装插件 Plug span class token string 39 yuezk vim js 39 span Plug span class tok
  • vmware安装alpine linux

    alpinelinux之前都没听过 xff0c 后来因为termux和docker发现这个发布版本 对这个发行布的最大印象就是小 为什么要在vmware中安装alpine linux xff0c 因为它小哇 xff01 主要好奇它安装后到底
  • alpine安装oh my zsh

    今天在vmware中安装了alpine 第一件事情就想安装oh my zsh 毕竟用了就回不去的东西 vmware安装alpine linux https blog csdn net lxyoucan article details 117
  • alpine linux配置中文语言环境

    alpine默认是没有语言环境的 没有中文不舒服不说 有时可能还会遇到中文乱码 那就来尝试一下安装中文语言环境吧 xff01 检查语言环境 查看当前语言环境 span class token keyword echo span span c