ubuntu22.04出现的 GPG error解决!

W: GPG error: http://packages.ros.org/ros2/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
E: The repository 'http://packages.ros.org/ros2/ubuntu jammy InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

以上是执行sudo apt update出现的错误,意思为缺少了公钥。一般情况下,我们只需要输入以下命令即可:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

但是,有些时候会出现这样的问题:

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.SFSRWGsyCt/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
gpg: key F42ED6FBAB17C654: "Open Robotics <info@osrfoundation.org>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
这说明公钥已经加载,但未调用。主要是因为ubuntu22.04的管理公钥目录与导入密钥的目录不一致,导致验证失败。且清华源的ubuntu-port用于的结构为非x86,而我们的系统为amd64,因此会出现错误。

需要进行如下操作:

密钥导出

sudo mkdir -p /usr/share/keyrings
gpg --export F42ED6FBAB17C654 | sudo tee /usr/share/keyrings/ros-archive-keyring.gpg >/dev/null

删除旧配置,添加新配置

# 备份现有配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

# 清空并写入新配置(使用标准 ubuntu 源而非 ports)
echo "
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
" | sudo tee /etc/apt/sources.list

# 配置 ROS 2 源(使用清华镜像)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list

清理缓存并更新

sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

### 安装 cuDNN on Ubuntu 22.04 对于在Ubuntu 22.04上安装cuDNN,具体操作取决于所选的安装包类型。以下是基于本地安装器(Local Installer)的方法。 #### 使用 Deb 包进行安装 下载适用于Ubuntu 22.04 x86_64 (Deb)的cuDNN v8.9.7版本,该版本针对CUDA 12.x进行了优化[^1]: ```bash wget https://developer.download.nvidia.com/compute/cudnn/secure/v8.9.7/local_installers/12.0_8.9.7.35/cudnn-local-repo-ubuntu2204-8.9.7.35_1.0-1_amd64.deb ``` 接着通过`dpkg`命令来安装这个deb文件: ```bash sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.35_1.0-1_amd64.deb ``` 复制GPG密钥到适当位置以便后续软件源更新能够验证签名: ```bash sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.35/cudnn-*-keyring.gpg /usr/share/keyrings/ ``` 最后刷新apt缓存并确认所有必要的组件都已成功安装: ```bash sudo apt-get update && sudo apt-get install libcudnn8 ``` 此方法简化了依赖关系管理,并确保与系统的其余部分兼容良好[^2]。 #### 验证安装 为了检验cuDNN是否正确配置,在终端执行如下Python脚本可以测试基本功能是否正常工作: ```python import tensorflow as tf print("TensorFlow version:", tf.__version__) device_name = tf.test.gpu_device_name() if device_name != '/device:GPU:0': raise SystemError('GPU device not found') print(f'Found GPU at {device_name}') ``` 如果一切顺利,则会显示找到的GPU设备名称;若有任何错误提示则可能意味着环境设置存在问题需进一步排查解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值