您尚未登录。

#1 2015-02-11 20:16:56

maokewu
会员
所在地: 云南省楚雄州大姚县
注册时间: 2015-02-03
帖子: 41

遇到了一个奇怪的问题

我虽然使用Linux快10年了,原来也安装过Archlinux,但因安装失败就放弃了。大多数时间是使用红旗Linux 6.0,前不久升级到红旗Linux 8.0,由于遇到了诸多问题,换装了国内多种Linux桌面发行版,但都因占用内存过大,无法满足要求又开始折腾Archlinux,目前,我暂时使用VirtualBox虚拟机试装来积累经验,新建的虚拟机名叫“TestArch”。今天遇到一个奇怪的问题,用下载的Archlinux安装镜像启动TestArch虚拟机安装基本系统(base base-devel),网络使用NAT方式,安装过程相当顺利,当准备安装桌面环境前,考虑到我的电脑无法通过DHCPf分配IP地址,只能设置固定IP地址,因此重新配置网络,给虚拟机(TestArch)设置了固定IP和DNS,并在VirtualBox管理器中将虚拟机TestArch的网络改成桥接方式。TestArch虚拟机重启后,检查网络没遇到问题,但开始安装桌面环境kdebase时,只有少数安装包(*.pkg.tar.*)能顺利下载,出现了大量的页面请求404错误,这样持续了很久之后,我只好中断安装。执行pacman -Sc清除缓存后,接着用Archlinux安装镜像启动TestArch虚拟机,挂载分区后继续安装桌面环境,安装过程非常顺利,没有发现任何页面请求404错误。显然Archlinux安装镜像与安装了基本系统的TestArch虚拟机的网络配置不一样,但大量的页面请求404错误不应该是TestArch虚拟机使用桥接网络导致的。因为当TestArch虚拟机的桌面环境安装完成后,在桌面环境下安装别的应用却不会出现大量页面请求404错误。是仅安装了基本系统的Archlinux的网络环境有什么bug吗?


种瓜得瓜,种豆得豆。

离线

#2 2015-02-11 23:48:57

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 遇到了一个奇怪的问题

那个大量404说明你更新的时候没有升级你的源信息

很久没有更新过软件后,一定要先pacman -Syy
或者安装的时候用pacman -Sy 包名,
不然镜像站点上早就已经把旧的包清理了。当然就404下不到

离线

#3 2015-02-12 00:05:43

maokewu
会员
所在地: 云南省楚雄州大姚县
注册时间: 2015-02-03
帖子: 41

Re: 遇到了一个奇怪的问题

atmouse 说:

那个大量404说明你更新的时候没有升级你的源信息很久没有更新过软件后,一定要先pacman -Syy 或者安装的时候用pacman -Sy 包名,不然镜像站点上早就已经把旧的包清理了。当然就404下不到

我每次安装时都会执行pacman _Syy刷新镜像,让本地镜像源数据库与服务器同步。用Archlinux启动虚拟机,将分区挂载好后,我还将分区中“/mnt/etc/pacman.d/mirrorlist" 覆盖启动镜像”/etc/pacman.d/mirrorlist“文件。即两次安装的镜像源列表完全相同。


种瓜得瓜,种豆得豆。

离线

#4 2015-02-12 00:36:44

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: 遇到了一个奇怪的问题

你使用 -Sc 没有什么意义。

猜测是你出现 404 错误的时候是镜像正在同步中,有大量文件还没同步到。之后镜像同步好了,所以可以了。

另外,你使用的是一个镜像还是多个?如果是多个的话是非常容易遇到这种问题的。

离线

#5 2015-02-12 10:33:21

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 遇到了一个奇怪的问题

百合仙子 说:

你使用 -Sc 没有什么意义。

猜测是你出现 404 错误的时候是镜像正在同步中,有大量文件还没同步到。之后镜像同步好了,所以可以了。

另外,你使用的是一个镜像还是多个?如果是多个的话是非常容易遇到这种问题的。

镜像源应该都是先同步完整并且更新db文件然后再删除旧包吧。。。这样才能保证可用性

离线

#6 2015-02-12 10:47:56

maokewu
会员
所在地: 云南省楚雄州大姚县
注册时间: 2015-02-03
帖子: 41

Re: 遇到了一个奇怪的问题

百合仙子 说:

你使用 -Sc 没有什么意义。猜测是你出现 404 错误的时候是镜像正在同步中,有大量文件还没同步到。之后镜像同步好了,所以可以了。另外,你使用的是一个镜像还是多个?如果是多个的话是非常容易遇到这种问题的。

执行pacman -Sc的目的仅仅是清除本地缓存,减少系统安装后,“/var/cache/pacman/pkg”目录中的“*.pkg.tar.*”对磁盘空间的占用。至于用TestArch虚拟机启动后安装桌面环境失败后,接着使用下载的Archliinux镜像(archlinux.iso)启动虚拟机安装桌面环境,前后时间相隔不到两分钟,想必远程镜像服务器不会在这么短的时间内就同步完成了。另外,我的“/etc/pacman.d/mirrorlist”镜像服务列表只保留了中国大陆、台湾、韩国、日本和美国的服务器。你的意思是使用单独镜像效果更好?


种瓜得瓜,种豆得豆。

离线

#7 2015-02-12 12:43:27

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,917
个人网站

Re: 遇到了一个奇怪的问题

maokewu 说:

执行pacman -Sc的目的仅仅是清除本地缓存,减少系统安装后,“/var/cache/pacman/pkg”目录中的“*.pkg.tar.*”对磁盘空间的占用。至于用TestArch虚拟机启动后安装桌面环境失败后,接着使用下载的Archliinux镜像(archlinux.iso)启动虚拟机安装桌面环境,前后时间相隔不到两分钟,想必远程镜像服务器不会在这么短的时间内就同步完成了。另外,我的“/etc/pacman.d/mirrorlist”镜像服务列表只保留了中国大陆、台湾、韩国、日本和美国的服务器。你的意思是使用单独镜像效果更好?

对,因为单个镜像(在正确配置的时候)能够保证数据库与包文件的一致性。多了就容易混乱。

另外在那两分钟之内完成更新是有可能的,因为使用了 rsync 的 --delay-updates 选项,所以对文件的更新是文件数据传输完成之后进行的,

离线

页脚