树莓派更换软件源以及更换后提示“由于没有公钥......”

环境:树莓派4B,respberrypi系统(64位) 1、修改软件源输入如下命令修改软件源配置文件sudo nano etc apt sources li

环境:树莓派4B,respberrypi系统(64位)

1、修改软件源

  输入如下命令修改软件源配置文件

sudo nano /etc/apt/sources.list

  将原始内容注释掉,修改为如下内容:(中科大软件源)

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

  输入如下命令修改另一个软件源文件

sudo nano /etc/apt/sources.list.d/raspi.list

  将原始内容注释掉,修改为如下内容:(中科大软件源)

deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui

2、修改软件源后执行更新命令报错

  更新命令如下:

sudo apt-get update

  报错如下:

获取:1 http://mirrors.ustc.edu.cn/raspbian/raspbian stretch InRelease [15.0 kB]
命中:2 http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch InRelease
错误:1 http://mirrors.ustc.edu.cn/raspbian/raspbian stretch InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY 9165938D90FDDD2E
正在读取软件包列表... 完成
W: GPG 错误:http://mirrors.ustc.edu.cn/raspbian/raspbian stretch InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 9165938D90FDDD2E
E: 仓库 “http://mirrors.ustc.edu.cn/raspbian/raspbian stretch InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
N: 鉴于仓库 'http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch InRelease' 不支持 'arm64' 体系结构,跳过配置文件 'main/binary-arm64/Packages' 的获取。
N: 鉴于仓库 'http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch InRelease' 不支持 'arm64' 体系结构,跳过配置文件 'ui/binary-arm64/Packages' 的获取。

  错误信息大致意思为没有找到对应的公钥,所以软件源地址不被信任。

 

  (注意这里提示的不支持arm64架构,是因为我安装的是64位的系统,目前似乎国内的几个软件源都还不支持arm64,我后面在使用apt-get安装软件的时候,会出现无法安装依赖的问题,应该是这个原因导致的,所以如果使用64位树莓派系统,目前建议先使用默认的软件源,等后面国内的软件源更新支持了之后再做修改。)

 

3、导入对应仓库的公钥

  命令格式如下:(注意:实际填写时,不输入尖括号)

apt-key adv --keyserver <KeyServer> --recv-keys <公钥签名>
gpg --export --armor <公钥签名> | sudo apt-key add -

  其中<KeyServer>,key服务器,可以填 keyserver.ubuntu.com(即使你使用的是树莓派的原生系统,也可以用这个key服务器,不知道为啥)

  其中<公钥签名>,就填写报错时显示的那段字符,比如我这里就是:9165938D90FDDD2E

  导入公钥成功会输出类似如下的信息:

Executing: /tmp/apt-key-gpghome.FN33J57BVM/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 6AF0E1940624A220
gpg: 密钥 6AF0E1940624A220:公钥 “Launchpad PPA for TualatriX” 已导入
gpg: 处理的总数:1
gpg:               已导入:1

4、再执行sudo apt-get update,问题解决