最近在用ubuntu系统装php指定的版本,网上大部分都说是用ppa的源,但是这个源太久远了,无人维护导致报错
Fetched 62.0 kB in 20s (3,002 B/s)
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/ppa.launchpad.net_ondrej_php5-oldstable_ubuntu_dists_precise_main_source_Sources Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/ppa.launchpad.net_ondrej_php5-oldstable_ubuntu_dists_precise_main_binary-amd64_Packages Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/ppa.launchpad.net_ondrej_php5-oldstable_ubuntu_dists_precise_main_binary-i386_Packages Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/ppa.launchpad.net_ondrej_php5-oldstable_ubuntu_dists_precise_main_i18n_Translation-en Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
- 这个问题的原因大概是校验文件与实际文件不匹配
网上的解决办法差不多都是这些:
无法下载bzip2, Hash 校验和不符, 这个问题其实有两部分原因, 一是网络, 另外一个压缩格式的问题。解决方法也有两种:
1. /var/lib/apt/lists, 把lists这个目录改个名字备份一下, 重新建一个同名目录, 然后再apt-get update
2. 这种是压缩格式造成的问题, 在/etc/apt.conf.d/00aptitude文件中,(如果没有这个文件请自建)的最后一行添加如下内容:
Acquire::CompressionTypes::Order "gz"; (不要漏掉分号)
然后重新:apt-get update
3. 如果还是不行的话, 查看一下你的sourcelist文件中,是否包含有源代码的源, 如果有的话先注释掉, 就可以了。 这个问题我已经在163
sohu这两个源都发现了这个问题,如果把源代码的源带上就会出现以上问题是, 去掉后啥事没有。
- 根据网上的这些办法我都去尝试了依然无法解决这个问题
朋友的疑问
朋友问:为何ubuntu?
答:跟线上保持一致,其实这个并不只是ubuntu系统的问题centos也有可能会出现,问题是mirrors站点那端,太久没有更新校验文件
朋友问:为何不手动编译?基本都是编译安装
答:编译太麻烦
无奈之下
我就自己把http://ppa.launchpad.net/ondrej/php5-oldstable/ubuntu/ 下的php软件包用wget命令全部下载了下来,然后又通过reprepro命令创建了mirrors.
具体操作:
根据这位大神的帖子搞的,写的蛮详细的,但有一点点小坑,大体没啥问题。
http://blog.csdn.net/michaelwubo/article/details/40588059
有一点需要注意,在执行gpg –gen-key时如果提示
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.
passphrase not correctly repeated; try again.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 206 more bytes)“
就执行行下面的命令:
rngd -f -r /dev/urandom
-----------------------------
希望对遇到同样问题的人能够有所帮助!
———萧瑟
-----------------------------