wget -qO - https://example.com/mykey.gpg | sudo apt-key add - Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). gpg: 找不到有效的 OpenPGP 数据。
时间: 2023-06-14 13:07:34 浏览: 191
这个错误可能是由于以下几个原因导致的:
1. URL 不正确或无法访问。请确认 URL 是否正确,并尝试从浏览器中打开该 URL,以确认是否可以访问。
2. GPG 密钥文件不存在或不正确。请确认密钥文件的路径和名称是否正确,并尝试重新下载密钥文件。
3. GPG 密钥文件已被损坏。请尝试重新下载密钥文件,并使用 gpg 命令验证密钥文件的完整性。
4. GPG 密钥文件已过期。请确认密钥文件是否已过期,并尝试重新下载密钥文件。
5. 系统中缺少必要的 GPG 组件。请确认已安装 gnupg 和 dirmngr 组件,并尝试重新运行命令。
针对第一个警告,可以尝试使用如下命令代替:
```
curl -sSL https://example.com/mykey.gpg | sudo gpg --dearmor --output /usr/share/keyrings/mykey.gpg
```
然后使用如下命令导入密钥:
```
sudo apt-key adv --keyserver keyserver.ubuntu.com --no-default-keyring --keyring /usr/share/keyrings/mykey.gpg --recv-keys [KEY-ID]
```
注意将 `[KEY-ID]` 替换为你的密钥 ID。
相关问题
wget -qO - https://example.com/mykey.gpg | sudo apt-key add - -qO是什么意思
这是一个Linux命令,含义为从指定网址下载文件并将其内容作为输入传递给后面的命令,其中:
- `wget`是一个用于下载文件的命令。
- `-qO -`表示将下载的文件以静默方式(即不输出任何信息)传递给标准输出(即终端屏幕)。
- `https://example.com/mykey.gpg`是要下载的文件的URL。
- `|`是管道符号,表示将前一个命令的输出作为后一个命令的输入。
- `sudo apt-key add -`表示将标准输入(即前一个命令的输出)作为密钥添加到系统的APT密钥库中。其中`-`表示从标准输入中读取数据。
因此,这个命令的作用是从指定的URL下载一个GPG密钥文件,并将其添加到系统的APT密钥库中,以便后续使用该库来验证软件包的签名。
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - gpg: no valid OpenPGP data found.
当您看到这个错误信息 "gpg: no valid OpenPGP data found" 时,它通常意味着 `curl` 下载的 GPG 密钥文件可能有问题或者未包含有效的OpenPGP(用于验证数据来源的安全协议)。在尝试安装 NVIDIA Docker 时,有时候会遇到这样的情况,因为软件包需要公钥来确认其来源的真实性。
解决这个问题的一般步骤是:
1. **检查网络连接**:确保你能正常访问NVIDIA的GitHub页面,因为GPG键可能会因网络问题而无法下载。
2. **更新或清理GPG缓存**:尝试清除旧的GPG缓存并重新运行命令,有时这能解决问题:
```sh
rm -rf ~/.gnupg/*.*
```
3. **手动下载GPG密钥**:如果网络没问题,你可以直接从官方GitHub仓库下载并添加:
```sh
wget -qO - https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
```
4. **检查公钥是否添加成功**:执行 `apt-key list` 确认密钥是否已添加到系统信任列表。
如果上述方法仍然无效,可能是NVIDIA Docker 的GPG签名出现问题,建议查阅官方文档或寻求社区支持。
阅读全文