MacOS 15.3.1 安装 GPG 提示Error: unknown or unsupported macOS version: :dunno

embedded/2025/3/18 18:12:54/

目录

1. 问题锁定

2. 更新 Homebrew

3. 切换到新的 Homebrew 源

4. 安装 GPG

5. 检查 macOS 版本兼容性

6. 使用 MacPorts 或其他包管理器

7. 创建密钥(生成 GPG 签名)

往期推荐


1. 问题锁定

        通常是因为你的 Homebrew 版本较旧,或者你的 macOS 版本没有被 Homebrew 正确识别。以下是一些解决此问题的步骤:

2. 更新 Homebrew

        首先,确保你的 Homebrew 是最新版本。打开终端并运行以下命令来更新 Homebrew ,刚执行命令会让输入一次密码,中间还会再次输入一次密码,其他时间等待即可:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

        或者,如果你已经安装了 Homebrew,可以使用以下命令更新:

brew update
brew upgrade

3. 切换到新的 Homebrew 源

        由于某些原因,Homebrew 可能没有正确识别你的 macOS 版本。你可以尝试切换到一个新的 Homebrew 源,这可能会解决版本识别问题。运行以下命令:

cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
brew update

4. 安装 GPG

        更新完 Homebrew 后,尝试重新安装 GPG:

brew install gnupg

5. 检查 macOS 版本兼容性

        如果上述步骤仍然无法解决问题,可能是因为你的 macOS 版本太新,而 Homebrew 的某些分支还没有完全支持。你可以尝试手动下载 GPG 的二进制文件或从源代码编译。例如,你可以从 GPG 的官方网站下载适用于 macOS 的预编译二进制文件,或者从源代码编译:

brew install gpg --build-from-source

6. 使用 MacPorts 或其他包管理器

        如果 Homebrew 仍然有问题,你可以考虑使用 MacPorts 或其他包管理器,如 MacPorts 或 Fink,这些包管理器也可能提供 GPG 的安装选项:

# 安装 MacPorts(如果尚未安装)
curl https://distfiles.macports.org/MacPorts/MacPorts-2.6.4-10.15-Mojave.pkg > ~/Downloads/MacPorts-2.6.4-10.15-Mojave.pkg
open ~/Downloads/MacPorts-2.6.4-10.15-Mojave.pkg
sudo installer -pkg ~/Downloads/MacPorts-2.6.4-10.15-Mojave.pkg -target /
# 使用 MacPorts 安装 GPG
sudo port install gpg

7. 创建密钥(生成 GPG 签名)

        在命令行中使用如下命令作为开始:

gpg --gen-key

        在执行过程会让你做出一些选择:

  •         秘钥类型:我这边使用的是RSA and RSA
  •         秘钥长度:输入4096
  •         过期时间:直接回车代表不过期,然后再次Y确认一下。
  •         构建用户标识:提示让输入User ID和一个邮箱,这里可以使用注册SonaType时候用的用户名和邮箱,当然也可以用其他的。
  •         接着最后一步输入O,注意这里是大写的O不是零,然后回车接着就会提示让输入密码。输入一次后还会有一次确认输入,这个密码一定要记住后期会用到(使用tab切换下一行,尽量快一些否则会超时,一切重新来)。
MacBook-Pro:~ scc$ gpg --full-gen-key
gpg (GnuPG) 2.4.7; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.请选择您要使用的密钥类型:(1) RSA 和 RSA (2) DSA 和 Elgamal (3) DSA(仅用于签名)(4) RSA(仅用于签名)(9) ECC(签名和加密) *默认*(10) ECC(仅用于签名)(14)卡中现有密钥 
您的选择是? 1
RSA 密钥的长度应在 1024 位与 4096 位之间。
您想要使用的密钥长度?(3072) 4096
请求的密钥长度是 4096 位
请设定这个密钥的有效期限。0 = 密钥永不过期<n>  = 密钥在 n 天后过期<n>w = 密钥在 n 周后过期<n>m = 密钥在 n 月后过期<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 0
密钥永远不会过期
这些内容正确吗? (y/N) YGnuPG 需要构建用户标识以辨认您的密钥。真实姓名: shuaici
电子邮件地址: g599957939@163.com
注释: wangyi
您选定了此用户标识:“shuaici (wangyi) <g599957939@163.com>”更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? O
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
gpg: 目录‘/Users/scc/.gnupg/openpgp-revocs.d’已创建
gpg: 吊销证书已被存储为‘/Users/scc/.gnupg/openpgp-revocs.d/A129A4FF2xxxxxxx657.rev’
公钥和私钥已经生成并被签名。pub   rsa4096 2025-03-13 [SC]A129A4FF2CA6xxxxxxx71657
uid                      shuaici (wangyi) <g599957939@163.com>
sub   rsa4096 2025-03-13 [E]MacBook-Pro:~ scc$ 

         然后导出公钥:

gpg --keyserver keyserver.ubuntu.com --send-keys YOUR_KEY_ID

往期推荐

Android IdleHandler 原理解析与应用场景-CSDN博客文章浏览阅读1.3k次,点赞64次,收藏48次。IdleHandler 是 Android MessageQueue 机制中的一个接口,允许在主线程空闲时执行任务。本文详细解析 IdleHandler 的工作原理,包括 MessageQueue 结构、触发时机及其使用方法。同时,我们探讨了 IdleHandler 的应用场景,如延迟初始化、资源回收和数据预加载等,并分析了其优缺点。合理使用 IdleHandler 可以优化应用性能,提高用户体验。本文将帮助开发者深入理解 IdleHandler 并在实际开发中灵活运用。 https://shuaici.blog.csdn.net/article/details/146064835Android Media3 ExoPlayer 开发全攻略:从基础集成到高级功能实战-CSDN博客文章浏览阅读806次,点赞25次,收藏16次。本文系统讲解如何利用 Android Media3 ExoPlayer 构建高性能流媒体播放器。作为 Google 新一代媒体框架的核心组件,ExoPlayer 凭借对 HLS/DASH 等协议的原生支持、自适应码率优化及模块化架构,成为复杂媒体场景的首选方案。文章从依赖配置入手,详细演示播放器初始化、视图绑定与基础播放控制逻辑,并提供 Kotlin 代码实例。 https://shuaici.blog.csdn.net/article/details/146093650


http://www.ppmy.cn/embedded/173645.html

相关文章

SWPU 2021 新生赛

babyunser phar反序列化 利用文件查看器直接读到三个文件 read.php <?php include(class.php); $anew aa(); ?> error_reporting(0); $filename$_POST[file]; if(!isset($filename)){die(); } $filenew zz($filename); $contents$file->getFile(); ?> <b…

MCU的应用场景:从智能家居到工业控制

MCU的应用场景非常广泛&#xff0c;主要包括以下几个方面&#xff1a; 1. 智能家居 智能照明&#xff1a;通过MCU控制LED灯的亮度和颜色。 智能安防&#xff1a;在安防系统中&#xff0c;MCU用于控制传感器和报警器。 2. 工业控制 PLC&#xff08;可编程逻辑控制器&…

动作捕捉手套如何让虚拟现实人机交互 “触手可及”?

在虚拟与现实逐渐交融的当下&#xff0c;动作捕捉技术正以前所未有的速度革新着多个领域。 动作捕捉技术&#xff0c;简称“动捕”&#xff0c;已经从早期的影视特效制作&#xff0c;逐步拓展到游戏开发、虚拟现实、机器人控制等多个领域。 而mHandPrO数据手套作为这一领域的…

【AI学习从零至壹】Pytorch神经⽹络

Pytorch神经⽹络 神经网络简介神经元激活函数 神经网络神经⽹络的⼯作过程前向传播(forward) 反向传播(backward)训练神经⽹络 Pytorch搭建并训练神经⽹络神经⽹络构建和训练过程数据预处理构建模型优化器&提取训练数据训练样本 神经网络简介 神经元 在深度学习中&#x…

AI驱动的视频字幕提取与翻译工具

青梧字幕是一款基于Whisper技术的AI字幕提取工具&#xff0c;专为视频制作者、翻译人员和自媒体创作者设计。它通过先进的语音识别算法&#xff0c;能够自动从视频文件中提取字幕内容&#xff0c;并支持多种语言和字幕格式&#xff0c;极大地简化了字幕制作流程。 目前暂支持 …

五大方向全面对比 IoTDB 与 OpenTSDB

对比系列第三弹&#xff0c;详解 IoTDB VS OpenTSDB&#xff01; 之前&#xff0c;我们已经深入探讨了时序数据库 Apache IoTDB 与 InfluxDB、Apache HBase 在架构设计、性能和功能方面等多个维度的区别。还没看过的小伙伴可以点击阅读&#xff1a; Apache IoTDB vs InfluxDB 开…

GBase8c 慢SQL配置

参数解释 enable_stmt_track&#xff1a;是否启用Full/Slow SQL特性log_min_duration_statement&#xff1a;指定慢 SQL 时间阈值instr_unique_sql_count&#xff1a;当系统中产生的unique SQL条目数量&#xff08;dbe_perf.statement/dbe_perf.summary_statement统计&#xf…

Django系列教程(7)——路由配置URLConf

目录 URLconf是如何工作的? path和re_path方法 更多URL配置示例 URL的命名及reverse()方法 使用命名URL 硬编码URL - 不建议 URL指向基于类的视图(View) 通过URL传递额外的参数 小结 Django的项目文件夹和每个应用(app)目录下都有urls.py文件&#xff0c;它们构成了D…