Mirrors (العربية)

From ArchWiki
Jump to: navigation, search
ملخص 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

TOR Network

Singapore

Bulgaria

Viet Nam

FPT TELECOM

China

CHINA TELECOM

CHINA UNICOM

Cernet

France

Germany

Indonesia

Kazakhstan

Malaysia

New Zealand

Poland

Russia

South Africa

United States

Hyperboria

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

مرايا لم يتم مزامنتها 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