分享

pacman升级到4.0之后的错误处理 | zrong's Blog

 guitarhua 2012-07-12

pacman升级到4.0之后的错误处理

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本文标题:pacman升级到4.0之后的错误处理
  • 本文链接:http:///post/1564.htm


source on github

今天升级ArchLinux的时候碰到这个错误:

error: failed to prepare transaction (could not satisfy dependencies)
:: package-query: requires pacman<3.6

网上查了一下资料,是ArchLinux的源中pacman均更新到4.0所致,解决办法如下:

一、更新pacman,修改pacman.conf

  • 若安装过yaourt,则删除yaourt和package-query;
  • 也可以安装package-query-git,安装的过程中会自动更新pacman到4.0;
  • pacman安装完成后,备份原来的/etc/pacman.conf,使用/etc/pacman.conf.pacnew替换;
  • 修改/etc/pacman.conf,修改的内容如下:
    1. 加入原来的archlinuxfr的源;
    2. 去掉 SigLevel = Optional TrustAll 的注释;
    3. 将原来的 SigLevel = Never 注释;
  • 重新安装yaourt。

二、关于密钥

生成本地加密密钥的步骤比较复杂,具体如下;

执行pacman-key --init

提示如下:

gpg: Generating pacman keychain master key…
Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!(Need 284 more bytes)

桌面环境下:

在终端输入cat /udev/urandom,然后移动鼠标或者随意按键,获取生成密钥需要的随机数,稍等一会儿密钥就会自动生成。

非桌面环境下:

如果是通过SSH连接,或者没有桌面环境,上面的方法可能会不起作用。需要这样处理:

1
2
3
4
5
6
7
8
9
10
#使用yaourt从AUR安装rng-tools包
yaourt -S rng-tools
#将随机数超时改为10
sed -i 's/0/10/' /etc/conf.d/rngd
#生成密钥
rngd -f -r /dev/urandom & pacman-key --init
#生成成功之后,杀死rngd进程
killall rngd
#删除rng-tools包
pacman -Rns rng-tools

三、更新系统

  1. 修改gpg服务器地址,这是为了导入密钥能够速度更快;

修改 /etc/pacman.d/gnupg/gpg.conf,将 keyserver hkp://keys.gnupg.net 改为 keyserver hkp://pgp.mit.edu。如果后面导入密钥失败,再改为 hkp://pgp.mit.edu:11371;

  1. 执行pacman -Syu更新系统,若出现下面的错误:

error: failed to commit transaction (conflicting files)
filesystem: /etc/mtab exists in filesystem
Errors occurred, no packages were upgraded.

则安装下面的包:

1
pacman -S filesystem --force

然后重新更新系统。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多