Mirrors (العربية)
هذه الصفحة دليل لاختيار وإعداد المرايا Mirrors (المرآة mirror هي نفسها المُخدم server، لكن يستخدم هذا الاسم مرآة mirror مع بعض المخدمات من بينها مخازن الحزم Package Repositories) ،بالإضافة إلى قائمة بالمرايا المتوفرة.
تفعيل مرآة معينة
لتفعيل المرايا افتح الملف /etc/pacman.d/mirrorlist
، ثم قم بتفعيل المرايا التي تريدها (إزالة علامة # قبل المرآة المطلوبة) حسب موقعك الجغرافي.
مثال:
# 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] للاطلاع على أدوات مساعدة في اختيار المرايا.
من الممكن أيضاً تعيين مرايا محددة ضمن الملف /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، كما يمكنك معرفة مدى حداثة مرآة يدوياً عن طريق:
- اختيار مُخدم (مرآة) والذهاب إلى المسار "extra/os/" ضمنه.
- الذهاب إلى https://archlinux.org/ في نافذة جديدة أو لسان جديد داخل المتصفح.
- مقارنة تاريخ آخر تعديل last-modified لمجلد
i686
على المرآة وتاريخ آخر تعديل لمستودع [extra] على الصفحة الرئيسية للموقع، في صندوق مستودعات الحزم Package Repositories على الجانب الأيمن.
ترتيب المرايا
عند تحميل الحزم من المستودعات فإن pacman يقوم باستخدام المرايا حسب ترتيبها في الملف /etc/pacman.d/mirrorlist
، في حال أنك لا تستخدم أداة reflector التي تقوم بترتيب المرايا بطريقتين إما حسب حداثتها أو حسب سرعتها، فقم باتباع هذا الشرح حول ترتيب المرايا يدوياً.
الترتيب حسب السرعة
يمكنك استخدام أسرع مرآة محلية عند التحميل، وذلك بتحديدها عن طريق السكربت/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