From b41d276b2ec09ffaf77dddaf0e667bc35f7725ee Mon Sep 17 00:00:00 2001 From: TheWhiteDog9487 Date: Wed, 12 Aug 2026 16:58:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81Rocky=20Linux=E5=92=8CAlmaLin?= =?UTF-8?q?ux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++++- language.cs | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b875a08..d99d711 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ - Ubuntu - Arch Linux - CachyOS +- Rocky Linux +- AlmaLinux ## 测试通过的系统 ### **x86_64:** @@ -15,6 +17,8 @@ | Debian | 13.2
11.6 | | Ubuntu | 26.04 LTS
25.10
25.04
24.10
24.04.1 LTS
22.04 LTS
20.04 LTS | | Arch Linux | 滚动发行 | +| Rocky Linux | 10.2 | +| AlmaLinux | 10.2 | ### **aarch64:** | 系统名称 | 版本 | @@ -50,7 +54,7 @@ rm language_arm - Clang - build-base或其他等效工具集 -推荐使用Alpine Linux进行编译,因为Alpine的系统libc就是musl,编译出的产物可以直接用而不需要管目标系统glibc的版本问题 +推荐使用Alpine Linux进行编译,因为Alpine的系统libc就是musl,静态链接之后的体积会比glibc小一些 您可以使用下面的Docker命令获得一个Alpine环境 ```shell docker run --rm -it -v .:/src -w /src alpine diff --git a/language.cs b/language.cs index 0fef0bd..a072900 100644 --- a/language.cs +++ b/language.cs @@ -69,6 +69,8 @@ string OsDescription = RuntimeInformation.OSDescription; if (Enum.TryParse(OsDescription.Split(' ')[0], out var CurrentSystem) == false){ if (OsDescription.Contains("Arch Linux")){ CurrentSystem = SupportedLinuxDistributions.ArchLinux; } + else if (OsDescription.Contains("Rocky Linux")){ + CurrentSystem = SupportedLinuxDistributions.RockyLinux; } else{ string CurrentSupportedLinuxDistributions = string.Join(", ", Enum.GetNames()); string Message = @$" @@ -134,6 +136,24 @@ switch (CurrentSystem){ if (File.Exists("/etc/default/locale")){ File.Move("/etc/default/locale", "/etc/default/locale.bak", true); } File.CreateSymbolicLink("/etc/default/locale", "/etc/locale.conf"); } + break; } + case SupportedLinuxDistributions.RockyLinux or SupportedLinuxDistributions.AlmaLinux: { + CheckUser("即将开始安装中文语言包"); + Console.WriteLine("开始更新语言配置"); + Console.WriteLine("正在安装中文语言包"); + ExecuteCommand("dnf", ["install", "-y", "--nogpgcheck", "glibc-langpack-zh", "langpacks-zh_CN"]); + Console.WriteLine("正在更新语言配置"); + ExecuteCommand("localectl", ["set-locale", "LANG=zh_CN.UTF-8"]); + + if (IsRunningInsideWSL() && CurrentSystem == SupportedLinuxDistributions.AlmaLinux) { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine(); + Console.WriteLine("警告:检测到您正在WSL内使用AlmaLinux"); + Console.WriteLine("目前已知AlmaLinux在WSL镜像可能存在一些问题"); + Console.WriteLine("如果您遇到了诸如 dnf nano 等软件的显示仍然为英文的问题"); + Console.WriteLine("请尝试使用dnf重新安装或升级出现问题的软件包,或者直接完整更新系统内所有软件包,这应当可以解决问题"); + Console.WriteLine(); + Console.ResetColor(); } break; } } Console.WriteLine("配置完成,更改将在您下一次登录Shell时生效,按任意键退出"); Console.ReadKey(true); @@ -143,4 +163,6 @@ enum SupportedLinuxDistributions { Armbian, Ubuntu, ArchLinux, - CachyOS } \ No newline at end of file + CachyOS, + RockyLinux, + AlmaLinux } \ No newline at end of file