解决使用iso作为apt源时的WARNING_The_following_packages_cannot_be_authenticated

《解决使用iso作为apt源时的WARNING: The following packages cannot be authenticated!》

网上的将iso作为apt源的方法,基本都是如下几步(以debian为例):
1. mkdir /mnt/iso
2. 编辑/etc/fstab,添加如下内容:
       /path/debian.iso /mnt/iso udf,iso9660 loop 0 0
3. 编辑/etc/apt/sources.list,添加如下内容:
       deb file:///mnt/iso/ wheezy main contrib
4. 如果做完前3步之后没重启的话,则执行如下命令:
       mount /mnt/iso/
5. apt-get update

但是,做完以上步骤后,
当sources.list中只有iso的apt源时,使用apt-get安装软件会出现如下警告:
    WARNING: The following packages cannot be authenticated!
当sources.list中有其它的网络apt源时,使用apt-get安装软件时,还会从网络上下载安装包,
并且下载的安装包版本不比iso中的新。
前一种情况是因为,没有对/mnt/iso中包进行签名验证;
后一种情况是因为,网络上的apt源一般是已验证好的,且apt-get会优先选择已验证好的。

对/mnt/iso中的包进行验证比较麻烦,
且本地的iso一般都是可信任的,因为我们一般都会使用官方的checksum进行校验。
所以,能不能使apt-get信任本地的iso的apt源呢?

通过查看man sources.list,发现了trusted=yes这个option,
于是,将添加到/etc/apt/sources.list中的内容改为如下:
    deb [ trusted=yes ] file:///mnt/iso/ wheezy main contrib
并且,iso的apt源在网络apt源的前边,
因为如果多个apt源中的包版本相同时会优先选择前边的apt源。

此时使用apt-get安装软件,
如果iso的apt源中的包版本不比网络apt源中的旧时,就会自动选择iso的apt源进行安装,
否则,就会使用网络apt源中的包来安装。
这是我们所希望的效果。

你可能感兴趣的:(Linux)