Mirrors (العربية) - ArchWiki

# Mirrors (العربية)

ملخص help replacing me
تحديث وإدارة مرايا الحزم.
مواضيع متصلة
Mirroring
pacman
reflector

هذه الصفحة دليل لاختيار وإعداد المرايا Mirrors (المرآة mirror هي نفسها المُخدم server، لكن يستخدم هذا الاسم مرآة mirror مع بعض المخدمات من بينها مخازن الحزم Package Repositories) ،بالإضافة إلى قائمة بالمرايا المتوفرة.

## تفعيل مرآة معينة

لتفعيل المرايا افتح الملف `/etc/pacman.d/mirrorlist`، ثم قم بتفعيل المرايا التي تريدها (إزالة علامة # قبل المرآة المطلوبة) حسب موقعك الجغرافي.

ملاحظة: تم تحديد سرعة مُخدّم ftp.archlinux.org القصوى بـ 50 كيلوبايت في الثانية throttled at 50KB/s.

مثال:

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

انظر إلى #Mirror status و #List by speed للاطلاع على أدوات مساعدة في اختيار المرايا.

تلميحة: قم بتفعيل 5 مرايا مفضلة لديك ثم ضعهم في أعلى ملف قائمة المرايا، بهذه الطريقة يسهل إيجادهم وتغيير ترتيبهم في حال حصلت أي مشكلة للمرآة الأولى، كما أنها تسهل عملية دمج تحديثات قائمة المرايا.

من الممكن أيضاً تعيين مرايا محددة ضمن الملف `/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` بشكل مباشر فتذكر أن تستخدم مرآة واحدة لكل المستودعات، وإلا فقد يتم تثبيت حزم غير متوافقة مع بعضها، مثل linux من مستودع [core] ووحدة نواة قديمة من[extra].

### إجبار مدير الحزم pacman على تحديث قوائم الحزم

بعد إنشاء أو تعديل ملف `/etc/pacman.d/mirrorlist` (يدوياً أو باستخدام `rankmirrors`) نفذ الأمر التالي:

    # pacman -Syy

تلميحة: تمرير خيار `--refresh` أو `-y` مرتين يجبر pacman على تحديث كل قوائم الحزم حتى تلك التي تم اعتبارها أنها على آخر تحديث up to date، تنفيذ `pacman -Syy` كلما انتقلت إلى مرايا جديدة هو عمل جيد يساعد في تجنب المشاكل المحتملة.

## حالة المرايا

قم بتفحص حالة مرايا آرتش ومدى حداثتها بزيارة http://www.archlinux.de/?page=MirrorStatus و https://www.archlinux.org/mirrors/status/.

يمكنك توليد قائمة بأحدث المرايا من هنا، ولإدارة العملية استخدم script، أو ثبّت Reflector وهي أداة تولد قوائم مرايا mirrorlist باستخدام قائمة Mirrorcheck، كما يمكنك معرفة مدى حداثة مرآة يدوياً عن طريق:

1. اختيار مُخدم (مرآة) والذهاب إلى المسار "extra/os/" ضمنه.
2. الذهاب إلى https://www.archlinux.org/ في نافذة جديدة أو لسان جديد داخل المتصفح.
3. مقارنة تاريخ آخر تعديل last-modified لمجلد `i686` على المرآة وتاريخ آخر تعديل لمستودع [extra] على الصفحة الرئيسية للموقع، في صندوق مستودعات الحزم Package Repositories على الجانب الأيمن.

## ترتيب المرايا

عند تحميل الحزم من المستودعات فإن pacman يقوم باستخدام المرايا حسب ترتيبها في الملف `/etc/pacman.d/mirrorlist`، في حال أنك لا تستخدم أداة reflector التي تقوم بترتيب المرايا بطريقتين إما حسب حداثتها أو حسب سرعتها، فقم باتباع هذا الشرح حول ترتيب المرايا يدوياً.

ملاحظة: هذا لا ينطبق على سكربت powerpill-light الذي يقوم بالاتصال بعدة مُخدمات معاً لزيادة سرعة التحميل الكلية وبالتالي سرعة الاتصالات الفردية تصبح أقل أهمية، ويمكن إعداد powerpill-light لكي يطلب السرعات الدنيا لكل اتصال.

### الترتيب حسب السرعة

يمكنك استخدام أسرع مرآة محلية عند التحميل، وذلك بتحديدها عن طريق السكربت`/usr/bin/rankmirrors` وهو عبارة عن سكربت Bash مضمّن مع توزيعة آرتش.

قم بأخذ نسخة احتياطية من الملف ملف عن طريق:

    # cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

قم بتفعيل المرايا داخل الملف `/etc/pacman.d/mirrorlist.backup` لكي يتم اختبارها عن طريق `rankmirrors`.

أو تستطيع تنفيذ الأمر `sed` لتفعيل جميع المرايا دون تدخل منك:

    # sed '/^#\S/ s|#||' -i /etc/pacman.d/mirrorlist.backup

أخيراً قم بترتيب المرايا، المعامل `-n 6` يعني أظهر فقط أسرع 6 مرايا:

    # rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist

نفذ `rankmirrors -h` لإظهار قائمة بكل الخيارات المتاحة.

### الترتيب حسب السرعة والحالة

التحميل من المرايا السريعة فقط ليست فكرة جيدة فقد لا تكون هذه المرايا محتوية على أحدث نسخ من الحزم، الطريقة المفضلة هي الترتيب حسب السرعة #List by speed ومن ثم ترتيب هذه المرايا الستة وفقاً لحالتها #Mirror status.

قم بزيارة الرابط أو الرابطان في #Mirror status وقم بترتيبهم الأحدث تحديثاً ثم الأقدم، ضع المرايا الأحدث في أعلى ملف `/etc/pacman.d/mirrorlist` وإذا كانت المرايا قديمة التحديث فلا تضفها، إعادة هذه العملية ستزيل المرايا القديمة التحديث، وفي النهاية ستحصل على قائمة من ستة مرايا مرتبة حسب السرعة والحالة.

عندما تواجه مشاكل في المرايا قم بإعادة تكرار العملية السابقة، أو قم بإعادة تكرارها كل فترة حتى لو لم تواجه مشاكل كي تُبقي ملف `/etc/pacman.d/mirrorlist` محدثاً up to date.

### سكربت لإدارة استخدام Pacman Mirrorlist Generator

يمكن استخدام سكربت shell التالي لكي تُحدّث المرايا بناءً على الترتيب الذي يقوم به Pacman Mirrorlist Generator، إذا لم تكن تعيش في الولايات المتحدة تستطيع تعديل متغير `country`.

    updatemirrors.sh

    #!/bin/sh

    [ "$UID" != 0 ] && su=sudo

    country='US'
    url="https://www.archlinux.org/mirrorlist/?country=$country&protocol=https&protocol=http&ip_version=4&use_mirror_status=on"

    tmpfile=$(mktemp --suffix=-mirrorlist)

    # Get latest mirror list and save to tmpfile
    wget -qO- "$url" | sed 's/^#Server/Server/g' > "$tmpfile"

    # Backup and replace current mirrorlist file (if new file is non-zero)
    if [ -s "$tmpfile" ]
    then
      { 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; }
    else
      echo " Unable to update, could not download list."
    fi

    # allow global read access (required for non-root yaourt execution)
    chmod +r /etc/pacman.d/mirrorlist

ملاحظة: يتوجب عليك نسخ النص السابق ووضعه في ملف ثم تنفيذ الأمر `chmod +x` على الملف، إذا لم تكن مسجلاً دخولك كمستخدم جذر سيقوم السكربت باستدعاء sudo بدلاً عنك عندما يحتاج إلى تغيير الترتيب في قائمة المرايا.

### استخدام سكربت Reflector

بدلاً من السابق يمكنك استخدام سكربت Reflector حيث أنه يقوم بجلب أحدث قائمة مرايا من صفحة MirrorStatus تلقائياً، ثم يقوم بتحديد المرايا الأحدث تحديثاً، ثم يرتبهم حسب السرعة ويكتب هذه التعديلات في الملف `/etc/pacman.d/mirrorlist`.

### اختيار مرآة محلية

أبسط طريقة هي وضع مرآة محلية في أعلى القائمة داخل ملف قائمة المرايا، وسيجعل pacman لهذه المرآة الأولوية عن باقي المرايا.

بدلاً من ذلك يمكن تعديل ملف pacman.conf بوضع مرآة محلية قبل السطر الذي يحدد ملف قائمة المرايا المستخدم في التحميل، أي في المكان المكتوب فيه "أضف المُخدمات المفضلة هنا add your preferred servers here"، يُفضل (وهو أكثر أماناً) بأن تقوم باختيار نفس المُخدم لكل المستودعات.

## المرايا الرسمية

قائمة مرايا آرتش لينوكس الرسمية تتوفر في حزمة pacman-mirrorlist، ولكي تحصل على قوائم أحدث من الموجودة في الحزمة السابقة اذهب إلى صفحة Pacman Mirror List Generator.

في حال أنك لم تقم بإعداد أية مرايا وأن حزمة `pacman-mirrorlist` غير مثبتة لديك، قم بتفيذ الأوامر التالية:

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

تأكد من أنك قمت بتفعيل المرايا المفضلة كما هو مشروح في الأعلى، ومن ثم نفذ:

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

إذا كنت ترغب بأن تضيف مرآتك إلى القائمة الرسمية قدم طلباً بذلك، في غضون ذلك أضفها إلى قائمة #Unofficial mirrors في نهاية هذه الصفحة.

إذا حصلت على خطأ يعلمك بأن متغير `$arch` تم استخدامه لكن لم يتم تعريفه، قم بإضافة التالي إلى ملف `/etc/pacman.conf`:

    Architecture = x86_64

ملاحظة: يمكنك أيضاً استعمال `auto` و `i686` لمتغير `Architecture`.

### المرايا المعدة لـ IPv6

يمكن استعمال pacman mirror list generator لإيجاد قائمة بمرايا IPv6 المتوفرة.

## المرايا غير الرسمية

هذه المرايا غير مكتوبة في `/etc/pacman.d/mirrorlist`.

### Global

- http://sourceforge.net/projects/archlinux/files/ - ISO files only; Does not have any releases since 2006. Use it only if for getting older ISOs.

### TOR Network

- http://cz2jqg7pj2hqanw7.onion/archlinux
- ftp://mirror:mirror@cz2jqg7pj2hqanw7.onion/archlinux

### Singapore

- http://mirror.nus.edu.sg/archlinux/

### Bulgaria

- http://mirror.telepoint.bg/archlinux/
- ftp://mirror.telepoint.bg/archlinux/

### Viet Nam

FPT TELECOM

- http://mirror-fpt-telecom.fpt.net/archlinux/

### China

CHINA TELECOM

- http://mirror.lupaworld.com/archlinux/

CHINA UNICOM

- http://mirrors.sohu.com/archlinux/

Cernet

- http://mirrors.zju.edu.cn/archlinux/ - "Zhejian University"
- http://ftp.sjtu.edu.cn/archlinux/ - Shanghai Jiaotong University
- ftp://ftp.sjtu.edu.cn/archlinux/
- http://mirrors.ustc.edu.cn/archlinux/ - University of Science and Technology of China
- ftp://mirrors.ustc.edu.cn/archlinux/
- http://mirrors.tuna.tsinghua.edu.cn/archlinux/ - Tsinghua University
- http://mirrors.4.tuna.tsinghua.edu.cn/archlinux/ (ipv4 only)
- http://mirrors.6.tuna.tsinghua.edu.cn/archlinux/ (ipv6 only)
- http://mirror.lzu.edu.cn/archlinux/ - Lanzhou University

### France

- http://delta.archlinux.fr/ - With Delta package support. Needs xdelta3 package from extra to run.
- http://mirror.soa1.org/archlinux
- ftp://mirror:mirror@mirror.soa1.org/archlinux

### Germany

- http://ftp.uni-erlangen.de/mirrors/archlinux/
- ftp://ftp.uni-erlangen.de/mirrors/archlinux/
- http://ftp.u-tx.net/archlinux/
- ftp://ftp.u-tx.net/archlinux/
- http://mirror.michael-eckert.net/archlinux/
- http://linux.rz.rub.de/archlinux/

### Indonesia

- http://mirror.kavalinux.com/archlinux/ - only from Indonesia
- http://kambing.ui.ac.id/archlinux/
- http://repo.ukdw.ac.id/archlinux/

### Kazakhstan

- http://archlinux.kz/
- http://mirror.neolabs.kz/archlinux/
- http://mirror-kt.neolabs.kz/archlinux/

### Malaysia

- http://mirror.oscc.org.my/archlinux/
- http://mirrors.inetutils.net/archlinux/ - ISO and Core

### New Zealand

- http://mirror.ihug.co.nz/archlinux/
- http://mirror.ece.auckland.ac.nz/archlinux/ NZ only

### Poland

- ftp://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW
- http://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW
- rsync://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW

### Russia

- http://hatred.homelinux.net/archlinux/ - Vladivostok, without iso, with 3SPY project repos and mingw32 repo
- http://mirrors.krasinfo.ru/archlinux/ - Krasnoyarsk, Classica-Service Ltd

### South Africa

- http://ftp.sun.ac.za/ftp/pub/mirrors/archlinux/ - Stellenbosch University
- ftp://ftp.sun.ac.za/pub/mirrors/archlinux/
- http://ftp.leg.uct.ac.za/pub/linux/arch/ - University of Cape Town
- ftp://ftp.leg.uct.ac.za/pub/linux/arch/
- http://mirror.ufs.ac.za/archlinux/ - University of the Free State
- ftp://mirror.ufs.ac.za/os/linux/distros/archlinux/
- http://ftp.wa.co.za/pub/archlinux/ - Web Africa Networks
- ftp://ftp.wa.co.za/pub/archlinux/
- http://archlinux.mirror.ac.za - TENET - Tertiary Education and Research Network of South Africa
- ftp://archlinux.mirror.ac.za

### United States

- http://archlinux.linuxfreedom.com - Contains numerous ISO images but does not contain the ISO dated 2011.08.19
- http://mirror.pointysoftware.net/archlinux/

### Hyperboria

- http://[fc7b:5f90:01f8:2b33:7c3e:f94b:00f3:0bed]/archlinux/

## استكشاف الأخطاء وإصلاحها

### مرايا لم يتم مزامنتها out-of-sync: حزم تالفة أو لم يتم إيجاد الملف

المشاكل الناتجة عن المرايا التي لم يتم مزامنتها out-of-sync المُشار لها في هذا الرابط this news post قد تم بالفعل حلها بالنسبة لمعظم المستخدمين، لكن في حال أن هذه المشاكل ظهرت مرة أخرى قم بالتأكد من أن الحزم موجودة في مستودع [testing].

بعد قيامك بالمزامنة عن طريق `pacman -Sy` نفذ هذا الأمر:

    # pacman -Ud $(pacman -Sup | tail -n +2 | sed -e 's,/\(core\|extra\)/,/testing/,' \
                                                  -e 's,/\(community\)/,/\1-testing/,')

قيامك بالأمر السابق سيساعد في حال أن الحزم الموجودة في المرايا بقيت في مستودع [testing] ولم تتم مزامنتها مع مستودع [core] أو [extra]، ومن الآمن جداً أن تثبت الحزم من مستودع [testing] حيث أن الحزم تتم مطابقتها بالنسخة ورقم الإصدار.

عموماً فمن الأفضل تبديل المرايا ومزامنتها عن طريق `pacman -Syy` من أن تلجأ إلى مستودع بديل، ومع ذلك فإن بعض أو كل المرايا مع مرور الوقت قد تصبح بحالة out-of-sync.

#### استخدام كل المرايا

لمحاكاة سلوك `pacman -Su` في التنقل في قائمة المرايا كاملة استخدم هذا السكربت:

    ~/bin/pacup

    #!/bin/bash

    # Pacman will not exit on the first error. Comment the line below to
    # try from [testing] directly.
    pacman -Su "$@" && exit

    while read -r pkg; do
      if pacman -Ud "$pkg"; then
        continue
      else
        while read -r mirror; do
          pacman -Ud $(sed "s,.*\(/\(community-\)*testing/os/\(i686\|x86_64\)/\),$mirror\1," <<<"$pkg") &&
          break
        done < <(sed -ne 's,^ *Server *= *\|/$repo/os/\(i686\|x86_64\).*,,gp' \
               </etc/pacman.d/mirrorlist | tail -n +2 )
      fi
    done < <(pacman -Sup | tail -n +2 | sed -e 's,/\(core\|extra\)/,/testing/,' \
                                            -e 's,/\(community\)/,/\1-testing/,')

## انظر أيضاً

MirUp - مُحمّل وفاحص لقائمة مرايا pacman

Categories:

- About Arch (العربية)
- Package management (العربية)
- العربية