Mirrors (العربية)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  • [[{{{1}}}|{{{2}}}]]
  • 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[broken link: invalid section] و #List by speed[broken link: invalid section] للاطلاع على أدوات مساعدة في اختيار المرايا.

    تلميحة: قم بتفعيل 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 كلما انتقلت إلى مرايا جديدة هو عمل جيد يساعد في تجنب المشاكل المحتملة.

    حالة المرايا

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

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

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

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

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

    ملاحظة: هذا لا ينطبق على سكربت powerpill-light[broken link: invalid section] الذي يقوم بالاتصال بعدة مُخدمات معاً لزيادة سرعة التحميل الكلية وبالتالي سرعة الاتصالات الفردية تصبح أقل أهمية، ويمكن إعداد 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[broken link: invalid section] ومن ثم ترتيب هذه المرايا الستة وفقاً لحالتها #Mirror status[broken link: invalid section].

    قم بزيارة الرابط أو الرابطان في #Mirror status[broken link: invalid section] وقم بترتيبهم الأحدث تحديثاً ثم الأقدم، ضع المرايا الأحدث في أعلى ملف /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[broken link: invalid section] في نهاية هذه الصفحة.

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

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

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

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

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

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

    See Unofficial mirrors.

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

    مرايا لم يتم مزامنتها 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[dead link 2021-05-17 ⓘ] - مُحمّل وفاحص لقائمة مرايا pacman