关于pacman时候的signature from * is unknown trust问题

这个周末用archlinux-2011.08.19-core-dual.iso在虚拟机上安装了archlinux。
在用pacman -Syu的时候遇到了问题,
它一直提示要导入key,导入后,升级还是报错,
error: gcc-libs: signature from "Allan McRae " is unknown trust
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.
在一个网站上找到一个脚本(http://allanmcrae.com/2011/12/pacman-package-signing-4-arch-linux/):
for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
pacman-key --recv-keys $key
pacman-key --lsign-key $key
printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/
--no-permission-warning --command-fd 0 --edit-key $key
done
后暂时可以更新。
但在pacman -S pgm的时候还是报错:
error: gpm: signature from "Eric Belangeer eric@archlinux.org"is unknown trust
error: failed to commit transaction (invalid or corrupted package (PGP signature))。

记得以前用pacman更新时候是不会提示这些问题的。
请问
1.为什么会出现这检查?
2.如何一次性导入所有的key。或者不再出现这检查?

安装过程如下:
-------------------->
启动网卡:
ifcnofig -a
ifconfig eth0 up
dhcpcd eth0
-------------------->
更新:
1.vi mirrorlist;把所有的#Server 替换为 Server
2.添加163的镜像地址
在/etc/pacman.conf的[core]下添加加一行;
Server = http://mirrors.163.com/archlinux/core/os/$arch/
[extra]下添加:
Server = http://mirrors.163.com/archlinux/extra/os/$arch/
[community]下添加:
Server = http://mirrors.163.com/archlinux/community/os/$arch/
[community-testing]下添加:
Server = http://mirrors.163.com/archlinux/community-testing/os/$arch/
3.更新系统
pacman -Syu

谢谢。

在 /etc/pacman.conf的[SigLevel]取消

SigLevel = Optional TrustAll

的注释,同时注释掉其他的SigLevel。

在/etc/pacman.conf中,只启用
HoldPkg = pacman
SyncFirst = pacman
Architecture = auto
和相关的mirrorlist。

没有SigLevel

# mv /etc/pacman.conf.pacnew /etc/pacman.conf

然后再修改。

pacman更新4.0后配置文件在/etc/pacman.conf.pacnew里面,需要替换回去

恩。2位楼上正解。谢谢了。问题解决