Difference between revisions of "Mirrors (简体中文)"

From ArchWiki
Jump to: navigation, search
(疑难解答: Section removed in English page.)
(Add Nanjing Univ. Mirror)
 
(2 intermediate revisions by 2 users not shown)
Line 18: Line 18:
 
== 启用您喜爱的镜像 ==
 
== 启用您喜爱的镜像 ==
  
想要启用镜像,打开 {{ic|/etc/pacman.d/mirrorlist}} 并定位到你的地理区域。对您想使用的镜像取消注释。
+
想要启用镜像,打开 {{ic|/etc/pacman.d/mirrorlist}} 并定位到你的地理区域。对您想使用的镜像取消注释。例如:
{{注意 | ftp.archlinux.org [https://www.archlinux.org/news/302/ 限速 50KB/s]}}  例如:
 
  
 
  # Any
 
  # Any
Line 27: Line 26:
 
参见 [[#镜像状态]] 和 [[#按速度排序]] 查看帮助选择镜像的工具。
 
参见 [[#镜像状态]] 和 [[#按速度排序]] 查看帮助选择镜像的工具。
  
{{小贴士|取消5个你最喜欢的镜像的注释,把他们放在 mirrorlist 文件最上方。这样你就很容易找到它们并且如果第一个镜像出问题可以很容易切换。这也让合并 mirrorlist 更新更容易。}}
+
{{小贴士|
 +
* 取消5个你最喜欢的镜像的注释,把他们放在 mirrorlist 文件最上方。这样你就很容易找到它们并且如果第一个镜像出问题可以很容易切换。这也让合并 mirrorlist 更新更容易。
 +
* HTTP 镜像比 FTP 快,因为 HTTP 可以 [[Wikipedia:HTTP persistent connection|保持连接]],而使用 FTP 时 ''pacman''每下载一个新软件包就需要重新建立连接。
 +
}}
  
 
也可以在 {{ic|/etc/pacman.conf}} 中指定镜像。对于 ''[core]'' 仓库,默认设置是:
 
也可以在 {{ic|/etc/pacman.conf}} 中指定镜像。对于 ''[core]'' 仓库,默认设置是:
Line 41: Line 43:
  
 
{{注意|如果镜像直接在 {{ic|pacman.conf}} 中声明,记得在所有的仓库使用同样的镜像。否则不相容的包就可能被安装。如 ''[core]'' 中的 linux 和 ''[extra]'' 中的旧的内核模块不相容。}}
 
{{注意|如果镜像直接在 {{ic|pacman.conf}} 中声明,记得在所有的仓库使用同样的镜像。否则不相容的包就可能被安装。如 ''[core]'' 中的 linux 和 ''[extra]'' 中的旧的内核模块不相容。}}
 +
 +
=== 强制 pacman 刷新软件包列表 ===
 +
 +
创建和编辑 {{ic|/etc/pacman.d/mirrorlist}} 之后,使用下面命令刷新镜像:
 +
 +
# pacman -Syyu
 +
 +
传入两次{{Ic|--refresh}}或{{Ic|-y}}将强制更新所有软件包列表,即使系统认为它们已经是最新。'''每次修改镜像之后都应该使用{{Ic|pacman -Syy}}'''。
  
 
==镜像状态==
 
==镜像状态==
可以通过访问如下网址检查镜像的状态:
+
可以通过访问如下网址检查镜像的状态:https://www.archlinux.org/mirrors/status/
* https://www.archlinux.org/mirrors/status/
 
* http://www.archlinux.de/?page=MirrorStatus
 
  
 
从[https://www.archlinux.org/mirrorlist/ 这里]可以自动生成最新的镜像列表,安装[[Reflector]]这个工具也可以自动检查和生成镜像列表。
 
从[https://www.archlinux.org/mirrorlist/ 这里]可以自动生成最新的镜像列表,安装[[Reflector]]这个工具也可以自动检查和生成镜像列表。
Line 64: Line 72:
 
{{bc|# rankmirrors -n 6 mirrorlist.backup > mirrorlist}}
 
{{bc|# rankmirrors -n 6 mirrorlist.backup > mirrorlist}}
 
{{注意|'''-n 6''':将生成6个最接近的源,运行{{Ic|rankmirrors -h}}可查看所有可用选项。}}
 
{{注意|'''-n 6''':将生成6个最接近的源,运行{{Ic|rankmirrors -h}}可查看所有可用选项。}}
 
'''强制 pacman 刷新软件包列表''':
 
# pacman -Syy
 
 
{{Tip|传入两次{{Ic|--refresh}}或{{Ic|-y}}将强制更新所有软件包列表,即使系统认为它们已经是最新。'''每次修改镜像之后都应该使用{{Ic|pacman -Syy}}'''。}}
 
  
 
===按速度和状态排序===
 
===按速度和状态排序===
Line 76: Line 79:
  
 
当出现镜像问题是,应该重复上面的步骤。或者一段时间就重复一次以保持{{ic|/etc/pacman.d/mirrorlist}}最新,即使没有镜像问题。
 
当出现镜像问题是,应该重复上面的步骤。或者一段时间就重复一次以保持{{ic|/etc/pacman.d/mirrorlist}}最新,即使没有镜像问题。
 
===自动使用Pacman Mirrorlist Generator的脚本===
 
你可以使用下面的脚本来更新你的镜像列表。该脚本基于[https://www.archlinux.org/mirrorlist/ Pacman Mirrorlist Generator]给出的顺序。如果你不在美国,你可以更改国家变量。
 
 
{{hc|updatemirrors.sh|2=<nowiki>#!/bin/sh
 
 
[ "$UID" != 0 ] && su=sudo
 
 
country='us'
 
url="https://www.archlinux.org/mirrorlist/?country=$country&protocol=ftp&protocol=http&ip_version=4&use_mirror_status=on"
 
 
tmpfile=$(mktemp --suffix=-mirrorlist)
 
 
# 获得最新的镜像列表,并保存到 tmpfile
 
wget -qO- "$url" | sed 's/^#Server/Server/g' > "$tmpfile"
 
 
# 备份并替换现有的镜像列表
 
{ echo "Backing up the original mirrorlist..."
 
  $su mv -i /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig; } &&
 
{ echo "Rotating the new list into place..."
 
  $su mv -i "$tmpfile" /etc/pacman.d/mirrorlist; }</nowiki>}}
 
 
{{Note|你需要复制上面的文本,放到一文件中,然后对该文件运行{{Ic|chmod +x}}。如果你现在不是以Root的身份登录,当需要替换mirrorlist的时候,这个脚本将会调用sudo}}
 
  
 
===使用 Reflector===
 
===使用 Reflector===
Line 147: Line 127:
 
*http://mirrors.6.tuna.tsinghua.edu.cn/archlinux/ ''(ipv6 only)''
 
*http://mirrors.6.tuna.tsinghua.edu.cn/archlinux/ ''(ipv6 only)''
 
*http://mirror.lzu.edu.cn/archlinux/ - ''兰州大学''
 
*http://mirror.lzu.edu.cn/archlinux/ - ''兰州大学''
 +
*https://mirrors.nju.edu.cn/archlinux/ - ''南京大学''
  
 
===德国===
 
===德国===
Line 184: Line 165:
  
 
== 参见 ==
 
== 参见 ==
* [[http://wiki.gotux.net/code:bash:mirup MirUp]] -- pacman mirrorlist downloader/checker
+
* [http://wiki.gotux.net/code:bash:mirup MirUp] -- pacman mirrorlist downloader/checker

Latest revision as of 08:02, 14 June 2017

本页面说明如何选择和配置镜像,以及列出可用的镜像。

启用您喜爱的镜像

想要启用镜像,打开 /etc/pacman.d/mirrorlist 并定位到你的地理区域。对您想使用的镜像取消注释。例如:

# Any
# Server = ftp://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch

参见 #镜像状态#按速度排序 查看帮助选择镜像的工具。

提示:
  • 取消5个你最喜欢的镜像的注释,把他们放在 mirrorlist 文件最上方。这样你就很容易找到它们并且如果第一个镜像出问题可以很容易切换。这也让合并 mirrorlist 更新更容易。
  • HTTP 镜像比 FTP 快,因为 HTTP 可以 保持连接,而使用 FTP 时 pacman每下载一个新软件包就需要重新建立连接。

也可以在 /etc/pacman.conf 中指定镜像。对于 [core] 仓库,默认设置是:

[core]
Include = /etc/pacman.d/mirrorlist

想要使用 HostEurope 镜像作为默认镜像,把它添加在 Include 行之前:

[core]
Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/core/os/$arch
Include = /etc/pacman.d/mirrorlist

pacman 会首先尝试链接这个镜像。如果需要的话,可以继续修改[testing], [extra], 和 [community]部分。

注意: 如果镜像直接在 pacman.conf 中声明,记得在所有的仓库使用同样的镜像。否则不相容的包就可能被安装。如 [core] 中的 linux 和 [extra] 中的旧的内核模块不相容。

强制 pacman 刷新软件包列表

创建和编辑 /etc/pacman.d/mirrorlist 之后,使用下面命令刷新镜像:

# pacman -Syyu

传入两次--refresh-y将强制更新所有软件包列表,即使系统认为它们已经是最新。每次修改镜像之后都应该使用pacman -Syy

镜像状态

可以通过访问如下网址检查镜像的状态:https://www.archlinux.org/mirrors/status/

这里可以自动生成最新的镜像列表,安装Reflector这个工具也可以自动检查和生成镜像列表。

镜像排序

按速度排序

更快的源可以显著的提升pacman的性能,和arch的整体操作体验。可以使用 rankmirrors 将镜像列表按速度排列。但是rankmirrors不能测试这些源的速度。

cd/etc/pacman.d/目录:

# cd /etc/pacman.d

备份已经存在的/etc/pacman.d/mirrorlist:

# cp mirrorlist mirrorlist.backup

编辑/etc/pacman.d/mirrorlist.backup,取消要测速镜像前的注释。

让rankmirrors带上参数-n对这个备份文件mirrorlist.backup执行操作,然后把输出重定向以方便生成一个新的/etc/pacman.d/mirrorlist源列表:

# rankmirrors -n 6 mirrorlist.backup > mirrorlist
注意: -n 6:将生成6个最接近的源,运行rankmirrors -h可查看所有可用选项。

按速度和状态排序

仅是使用最快的镜像服务器并不是一件好事,因为它们可能是过时的。我们更推荐先#按速度排序,然后在选出的镜像中按#镜像状态排序。

只要简单地访问它们的#镜像状态连接,然后将它们按照尽量新的顺序排序。将越新的镜像排到/etc/pacman.d/mirrorlist的越上面。如果镜像真的太过时了,别用它们(把它们注释掉,然后再#按速度排序),重复这么做,排除过时的镜像。最后将有6个又快又新的镜像。

当出现镜像问题是,应该重复上面的步骤。或者一段时间就重复一次以保持/etc/pacman.d/mirrorlist最新,即使没有镜像问题。

使用 Reflector

Reflector工具可以从镜像状态页面自动获取最新的镜像列表,过滤掉未及时同步的镜像,然后按照速度排序覆盖/etc/pacman.d/mirrorlist

官方镜像

官方镜像可以通过软件包 pacman-mirrorlist 获得。最新的镜像可以通过Pacman 镜像列表生成器查询。

如果没有配置任何镜像,也没有安装 pacman-mirrorlist,请运行如下命令:

# wget -O /etc/pacman.d/mirrorlist https://www.archlinux.org/mirrorlist/all/

取消选中镜像前的注释然后:

# pacman -Syy
# pacman -S --force pacman-mirrorlist

如果要将自己的镜像加入官方列表,请提出申请并将其加入下面的 #非官方镜像 列表。

如果碰到 $arch 变量未定义的问题,请在 /etc/pacman.conf 中加入:

Architecture = auto

支持 IPv6 的镜像

pacman 镜像列表生成工具 可以用来查找当前的 IPv6 镜像。

非官方镜像

镜像没有加入/etc/pacman.d/mirrorlist.

全球

保加利亚

中国

电信

联通

教育网

德国

印度尼西亚

立陶宛

马来西亚

新西兰

俄罗斯

南非

美国

参见

  • MirUp -- pacman mirrorlist downloader/checker