| ARCHINSTALL(1) | python-archinstall | ARCHINSTALL(1) |
الاسم
archinstall - توثيق archinstall
archinstall هي مكتبة يمكن استخدامها لتثبيت آرتش لينكس (Arch Linux). تأتي المكتبة مرفقة مع مثبتات مختلفة مسبقة الضبط، مثل مثبت الـ دليل الـ guided المبدئي <#guided>.
بعض ميزات Archinstall هي:
- صديق للسياق. تنفذ المكتبة الاستدعاءات دائماً بترتيب تسلسلي لضمان عدم تداخل خطوات التثبيت أو تنفيذها بترتيب خاطئ. كما تدعم (وتستخدم) أغلفة سياقية لضمان استدعاء مهام التنظيف والمهام النهائية مثل mkinitcpio عند الحاجة.
- شفافية كاملة يمكن العثور على السجلات والرؤى في /var/log/archinstall سواء في قرص ISO الحي أو جزئياً على النظام المثبت.
- صديق لإمكانية الوصول يعمل Archinstall مع espeakup وأدوات إمكانية الوصول الأخرى بفضل استخدام واجهة مستخدم نصية (TUI).
التثبيت الموجه (GUIDED)
يأتي Archinstall مع مثبت موجه مبرمج مسبقاً https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py يرشدك عبر الخطوات الإلزامية بالإضافة إلى بعض التشكيلات الاختيارية التي يمكن القيام بها.
ملاحظة:
ملاحظة:
تحذير:
تشغيل التثبيت الموجه
لبدء المثبت، شغّل ما يلي في أحدث قرص ISO لآرتش لينكس:
archinstall
بما أن المثبت الموجه https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py هو السكربت المبدئي، فإن هذا يعادل تشغيل archinstall guided
يدعم التثبيت الموجه أيضاً التثبيت بإجابات مسبقة الضبط لجميع الخطوات الموجهة. يمكن أن تكون هذه طريقة سريعة ومريحة لإعادة تشغيل تثبيت واحد أو عدة تثبيتات.
يوجد ملفا تهيئة، وكلاهما اختياري.
--config
يأخذ هذا المعامل ملف .json محلي كوسطاء ويحتوي على التهيئة العامة وإجابات القائمة للمثبت الموجه.
--config-url
يأخذ هذا المعامل ملف .json بعيد كوسطاء ويحتوي على التهيئة العامة وإجابات القائمة للمثبت الموجه.
ملاحظة:
مثال على الاستخدام
archinstall --config config.json
archinstall --config-url https://domain.lan/config.json
محتويات https://domain.lan/config.json:
{
"additional-repositories": [],
"archinstall-language": "English",
"audio_config": null,
"bootloader_config": {
"bootloader": "Systemd-boot",
"uki": false,
"removable": false
},
"bootloader": "Systemd-boot",
"debug": false,
"disk_config": {
"config_type": "manual_partitioning",
"device_modifications": [
{
"device": "/dev/sda",
"partitions": [
{
"btrfs": [],
"flags": [
"boot"
],
"fs_type": "fat32",
"length": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 99982592
},
"mount_options": [],
"mountpoint": "/boot",
"obj_id": "369f31a8-2781-4d6b-96e7-75680552b7c9",
"start": {
"sector_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 512
},
"total_size": null,
"unit": "sectors",
"value": 34
},
"status": "create",
"type": "primary"
},
{
"btrfs": [],
"flags": [],
"fs_type": "fat32",
"length": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 100000000
},
"mount_options": [],
"mountpoint": "/efi",
"obj_id": "13cf2c96-8b0f-4ade-abaa-c530be589aad",
"start": {
"sector_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 512
},
"total_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 16106127360
},
"unit": "MB",
"value": 100
},
"status": "create",
"type": "primary"
},
{
"btrfs": [],
"flags": [],
"fs_type": "ext4",
"length": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 15805127360
},
"mount_options": [],
"mountpoint": "/",
"obj_id": "3e75d045-21a4-429d-897e-8ec19a006e8b",
"start": {
"sector_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 512
},
"total_size": {
"sector_size": null,
"total_size": null,
"unit": "B",
"value": 16106127360
},
"unit": "MB",
"value": 301
},
"status": "create",
"type": "primary"
}
],
"wipe": false
}
]
},
"disk_encryption": {
"encryption_type": "luks",
"partitions": [
"3e75d045-21a4-429d-897e-8ec19a006e8b"
]
},
"hostname": "archlinux",
"kernels": [
"linux"
],
"locale_config": {
"kb_layout": "us",
"sys_enc": "UTF-8",
"sys_lang": "en_US"
},
"mirror_config": {
"custom_servers": [
{
"url": "https://mymirror.com/$repo/os/$arch"
}
],
"mirror_regions": {
"Australia": [
"http://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch"
]
},
"optional_repositories": [
"testing"
],
"custom_repositories": [
{
"name": "myrepo",
"url": "https://myrepo.com/$repo/os/$arch",
"sign_check": "Required",
"sign_option": "TrustAll"
}
]
},
"network_config": {},
"no_pkg_lookups": false,
"ntp": true,
"offline": false,
"packages": [],
"parallel downloads": 0,
"profile_config": null,
"save_config": null,
"script": "guided",
"silent": false,
"swap": true,
"timezone": "UTC",
"version": "2.6.0"
}
خيارات --config
تحذير:
ملاحظة:
خيارات JSON
| المفتاح | القيم(ة) | الوصف | مطلوب |
| additional-repositories | [ multilib https://wiki.archlinux.org/title/Official_repositories#multilib, testing https://wiki.archlinux.org/title/Official_repositories#Testing_repositories ] | يُمكّن واحداً أو أكثر من مستودعات testing و multilib قبل المتابعة في التثبيت | لا |
| archinstall-language | lang https://github.com/archlinux/archinstall/blob/master/archinstall/locales/languages.json | يضبط لغة واجهة المستخدم النصية (TUI) المستخدمة (تأكد من استخدام قيمة ``lang`` وليس ``abbr``) | لا |
| audio_config | pipewire https://wiki.archlinux.org/title/PipeWire, pulseaudio https://wiki.archlinux.org/title/PulseAudio | خادم الصوت المراد تثبيته | لا |
| bootloader_config | { bootloader: Systemd-boot https://wiki.archlinux.org/title/Systemd-boot, grub https://wiki.archlinux.org/title/GRUB, limine https://wiki.archlinux.org/title/Limine, uki: true/false, removable: true/false } | تهيئة محمل الإقلاع. يحدد bootloader أي محمل إقلاع سيتم تثبيته (grub/limine إلزامي على BIOS). يُمكّن uki صور النواة الموحدة (UEFI فقط، systemd-boot/limine فقط). يثبت removable في مسار الوسائط القابلة للإزالة المبدئي /EFI/BOOT/ بدلاً من NVRAM (UEFI فقط، grub/limine فقط) | نعم |
| debug | true، false | يُمكّن مخرجات التنقيح | لا |
| disk_config | اقرأ المزيد تحت تهيئة القرص <#disk-config> | يحتوي على إعداد القرص المطلوب استخدامه أثناء التثبيت | لا |
| disk_encryption | اقرأ المزيد تحت تعمية القرص <#disk-encryption> | معاملات لتعمية القرص تُطبق فوق disk_config | لا |
| hostname | str | سلسلة نصية تحدد اسم مضيف جهازك على الشبكة (المبدئي هو ``archinstall``) | لا |
| نوى | [ linux https://wiki.archlinux.org/title/Kernel#Officially_supported_kernels, linux-hardened https://wiki.archlinux.org/title/Kernel#Officially_supported_kernels, linux-lts https://wiki.archlinux.org/title/Kernel#Officially_supported_kernels, linux-rt https://wiki.archlinux.org/title/Kernel#Officially_supported_kernels, linux-rt-lts https://wiki.archlinux.org/title/Kernel#Officially_supported_kernels, linux-zen https://wiki.archlinux.org/title/Kernel#Officially_supported_kernels ] | يحدد أي النوى يجب تثبيتها وإعدادها في خيارات محمل الإقلاع | نعم |
| custom_commands | اقرأ المزيد تحت أوامر مخصصة <#custom-commands> | أوامر مخصصة ستُشغل بعد التثبيت داخل بيئة chroot في النظام المثبت | لا |
| locale_config | {kb_layout: lang https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration, sys_enc: ترميز المحارف https://wiki.archlinux.org/title/Locale, sys_lang: المحلّية https://wiki.archlinux.org/title/Locale} | يحدد تخطيط لوحة المفاتيح، وترميز النظام، ومحلّية النظام | لا |
| mirror_config | {custom_mirrors: [ <https://>... ], mirror_regions: { "Worldwide": [ "https://geo.mirror.pkgbuild.com/$repo/os/$arch" ] } } | يضبط المرايا المختلفة (المبدئي هو ``/etc/pacman.d/mirrors`` الخاص بقرص ISO إذا لم يُعرف) | لا |
| network_config | `انظر الخيارات تحت تهيئة الشبكة` | يحدد أي نوع من تهيئة الشبكة (إن وجد) يجب استخدامه | لا |
| no_pkg_lookups | true، false | عطّل فحص الحزم مقابل https://archlinux.org/packages/ | لا |
| ntp | true، false | يُمكّن أو يعطل NTP https://wiki.archlinux.org/title/Network_Time_Protocol_daemon أثناء التثبيت | لا |
| offline | true، false | يُمكّن أو يعطل فحوصات معينة عبر الإنترنت مثل إمكانية الوصول للمرآة وما إلى ذلك | لا |
| حزم | [ <package1>, <package2>, ... ] | قائمة بالحزم المراد تثبيتها أثناء التثبيت | لا |
| تنزيلات متوازية | 0-∞ | يضبط عدداً معيناً من التنزيلات المتوازية ليستخدمها pacman https://wiki.archlinux.org/title/Pacman#Enabling_parallel_downloads | لا |
| profile_config | `اقرأ المزيد تحت قسم التشكيلات` | يثبت تشكيلة معينة إذا عُرفت | لا |
| سماك | guided https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py (مبدئي)، minimal https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/minimal.py، only_hdd https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/only_hdd.py، عند استخدامه للتشغيل الآلي للتثبيت، يحدد هذا أي سماك سيُشغل آليًا به | لا | |
| صامت | true، false | يعطل أو يفعل أسئلة المستخدم باستخدام واجهة المستخدم النصية (TUI) | لا |
| swap | true، false | يفعل أو يعطل الـ swap | لا |
| المنطقة الزمنية | المنطقة الزمنية https://wiki.archlinux.org/title/System_time#Time_zone | يضبط المنطقة الزمنية للنظام المثبت | لا |
ملاحظة:
خيارات --creds
Creds هو ملف ضبط منفصل لفصل الخيارات العادية عن البيانات الأكثر حساسية مثل كلمات المرور. يوجد أدناه مثال لكيفية ضبط كلمة مرور الجذر (root) ويليه وصف للقيم الأخرى التي يمكن ضبطها.
{
"root_enc_password" : "SecretSanta2022"
}
خيارات --creds
| المفتاح | القيم | الوصف | مطلوب |
| !encryption-password | str | كلمة المرور لتعمية القرص، لن يُعمى إذا لم توفر كلمة المرور | لا |
| root_enc_password | str | كلمة مرور حساب الجذر | لا |
| users | 0.0 3.5 { "username": "<USERNAME>", "enc_password": "<PASSWORD_HASH>", "sudo": false } 168u 168u | قائمة بيانات استيثاق المستخدمين العاديين، راجع الضبط كمرجع | ربما |
ملاحظة:
المشكلات المعروفة
بعض المشكلات خارج نطاق مشروع archinstall https://github.com/archlinux/archinstall/، والمشكلات التي نعرفها مدرجة أدناه.
بانتظار مزامنة الوقت #2144 https://github.com/archlinux/archinstall/issues/2144
السبب الرئيس المعتاد لهذا هو طوبولوجيا الشبكة. وبشكل أكثر تحديدًا، timedatectl show https://github.com/archlinux/archinstall/blob/e6344f93f7e476d05bbcd642f2ed91fdde545870/archinstall/lib/installer.py#L136 لا يمكنه إجراء مزامنة وقت صحيحة مقابل الخواديم المبدئية.
قد تنجح إعادة تشغيل systemd-timesyncd.service ولكن في أغلب الأحيان تحتاج إلى اضبط /etc/systemd/timesyncd.conf ليتوافق مع تصميم شبكتك.
ملاحظة:
بانتظار اكتمال مزامنة حلقة مفاتيح آرش لينكس (archlinux-keyring-wkd-sync). #2679 https://github.com/archlinux/archinstall/issues/2679
قد تعادق خدمة archlinux-keyring-wkd-sync.service أو المؤقت archlinux-keyring-wkd-sync.timer "إلى أجل غير مسمى" أحيانًا. يرجع هذا عادةً إلى عدم القدرة على الوصول إلى خواديم المفاتيح، أو اتصال بطيء تجاه خواديم المفاتيح.
يمكن تشغيل السماك /usr/bin/archlinux-keyring-wkd-sync يدويًا، للتحقق مما إذا كان ينفذ ببطء أم لا.
إذا لم يظهر systemctl show --property=ActiveEnterTimestamp --no-pager archlinux-keyring-wkd-sync.timer أي شيء، فهذا يعني أن المزامنة المدمجة لم تنتهِ أبدًا. وبالمثل، من المرجح أن يظهر systemctl show --no-pager -p SubState --value archlinux-keyring-wkd-sync.service الحالة dead، مما يعني أن الخدمة لم تكتمل أبدًا.
لإصلاح هذا، جرب الآتي:
# killall gpg-agent # rm -rf /etc/pacman.d/gnupg # pacman-key --init # pacman-key --populate # pacman -Sy archlinux-keyring # systemctl restart archlinux-keyring-wkd-sync.timer
ملاحظة:
إذا تخطيت مزامنة WKD، فقد تنتهي بـ:
> خطأ: archinstall: التوقيع من "Anton Hvornum (Torxed) <torxed@archlinux.org>" ذو ثقة مجهولة > :: الملف /var/cache/pacman/pkg/archinstall-1.2.3-4-x86_64.pkg.tar.xz تالف (حزمة غير صالحة أو تالفة (توقيع PGP)). > هل تريد حذفه؟ [Y/n]
مشغل Nvidia المملوك مفقود #2002 https://github.com/archlinux/archinstall/issues/2002
في بعض الحالات، قد لا يحتوي مشغل nvidia على جميع الحزم اللازمة مثبتة. يرجع هذا إلى اختيار النواة و/أو إعدادات العتاد التي تتطلب حزمًا إضافية للعمل بشكل صحيح.
حل بديل شائع هو تثبيت الحزمة linux-headers https://archlinux.org/packages/core/x86_64/linux-headers/ و nvidia-dkms https://archlinux.org/packages/extra/x86_64/nvidia-dkms/
تعطل معالجات ARM و 32 بت وأنواع المعالجات الأخرى #1686 https://github.com/archlinux/archinstall/issues/1686، #2185 https://github.com/archlinux/archinstall/issues/2185
هذه مشكلة معروفة تشمل حالات كثيرة. رسميًا x86_64 <https://wiki.archlinux.org/title/Frequently_asked_questions#What_architectures_does_Arch_support?> هو المدعوم فقط من قبل آرش لينكس. لذا لم يُبذل سوى جهد قليل في دعم المنصات الأخرى.
من الناحية النظرية، يجب أن تعمل المعماريات الأخرى ولكن قد تظهر بعض الثغرات الصغيرة.
طلبات السحب (PRs) مرحب بها ولكن يرجى احترام التأخير في الدمج. ستُعطى الأولوية للإصلاحات أو المشكلات أو الميزات الأخرى للأسباب المذكورة أعلاه.
حلقة المفاتيح قديمة #2213 https://github.com/archlinux/archinstall/issues/2213
تميل مشكلات المفاتيح المفقودة إلى كون حزمة archlinux-keyring https://archlinux.org/packages/core/any/archlinux-keyring/ قديمة، عادةً نتيجة لملف ISO قديم. توجد محاولة من المنبع لإصلاح هذه المشكلة، وهي خدمة archlinux-keyring-wkd-sync.service https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/blob/7e672dad10652a80d1cc575d75cdb46442cd7f96/wkd_sync/archlinux-keyring-wkd-sync.service.in
تبدأ الخدمة فور الإقلاع تقريبًا، وإذا لم تُضبط الشبكة في الوقت المناسب — ستفشل الخدمة. وبالتالي قد يعمل تشغيل archinstall على حلقة مفاتيح قديمة على الرغم من وجود خدمة تحديث لهذا.
لا توجد حقًا طريقة للالتفاف بشكل موثوق بمرور الوقت على هذه المشكلة في archinstall. بدلاً من ذلك، يجب اعتبار الجهود المبذولة في خدمة المنبع هي الطريق إلى الأمام. و/أو عدم انتهاء صلاحية المفاتيح بين كمية معقولة من ملفات ISO.
ملاحظة:
ملاحظة:
حزم AUR
هذه أيضًا مشكلة عامة. مستودع AUR غير مدعوم https://wiki.archlinux.org/title/Arch_User_Repository#Updating_packages، وإلى أن يتغير ذلك لا يمكننا استخدام حزم AUR لحل طلبات الميزات في archinstall.
هذا يعني أن طلبات الميزات مثل دعم نظم الملفات مثل ZFS https://aur.archlinux.org/packages/zfs-linux لا يمكن إضافتها، ولا يمكن حل المشكلات باستخدام حزم AUR أيضًا.
ملاحظة:
torxed/archinstall-aur https://github.com/torxed/archinstall-aur هو تنفيذ مرجعي للملحقات:
# archinstall --plugin https://archlinux.life/aur-plugin
phisch/archinstall-aur https://github.com/phisch/archinstall-aur هو بديل آخر:
# archinstall --plugin https://raw.githubusercontent.com/phisch/archinstall-aur/master/archinstall-aur.py
تحذير:
الإبلاغ عن المشكلات والعلل
يجب الإبلاغ عن المشكلات والعلل في https://github.com/archlinux/archinstall/issues.
يمكن الإبلاغ عن الأسئلة العامة والتحسينات والقضايا الأمنية هناك أيضًا. للمشكلات السريعة أو إذا كنت بحاجة للمساعدة، توجه إلى خادوم ديسكورد الذي يحتوي على قناة مساعدة.
ملفات السجل
عند تقديم تذكرة مساعدة، يرجى تضمين /var/log/archinstall/install.log. يمكن العثور عليه في ملف ISO المباشر وأيضًا في نظام الملفات المثبت إذا وُضعت الحزم الأساسية.
تلميحة:
طريقة سهلة لإرسال السجلات هي curl -F 'file=@/var/log/archinstall/install.log' https://0x0.st. توخَّ الحذر عند إرسال ملفات سجل أخرى، لكن archinstall يتعهد بالحفاظ على install.log آمنًا للنشر العلني!
توجد ملفات سجل إضافية تحت /var/log/archinstall/ يمكن أن تكون مفيدة:
- /var/log/archinstall/user_configuration.json - يخزن معظم الإجابات الموجهة في المثبت
- /var/log/archinstall/user_credentials.json - يخزن أي أسماء مستخدمين أو كلمات مرور، ويمكن تمريره إلى --creds
- /var/log/archinstall/user_disk_layouts.json - يخزن الأقراص المختارة وتخطيطاتها
- /var/log/archinstall/install.log - ملف سجل بالخطوات التي اتخذها archinstall
- /var/log/archinstall/cmd_history.txt - تاريخ كامل للأوامر، أمرًا بأمر بالترتيب
- /var/log/archinstall/cmd_output.txt - مخرج خام من جميع الأوامر التي نفذها archinstall
تحذير:
ديسكورد
توجد قناة ديسكورد يتردد عليها بعض المساهمين https://github.com/archlinux/archinstall/graphs/contributors.
للانضمام إلى الخادوم، توجه إلى https://discord.gg/aDeMffrxNg وانضم. لا توجد قواعد كثيرة بخلاف التفكير السليم ومعاملة الآخرين باحترام. الدردشة العامة مخصصة للأشياء الخارجة عن الموضوع أيضًا.
يوجد دور @Party Animals إذا كنت تريد إشعارات بالإصدارات الجديدة التي تُنشر في قناة #Release Party. الشيء الآخر هو أن دور @Contributors يمكن تفعيله من قبل المساهمين بكتابة !verify واتباع عملية الاستيثاق.
تفضل بالانضمام، نأمل أن نراك هناك! : )
مكتبة بايثون
يُشحن Archinstall على PyPi https://pypi.org/ كـ archinstall <pypi.org/project/archinstall/>. ولكن يمكن تثبيت المكتبة يدويًا أيضًا.
تحذير:
التثبيت باستخدام pacman
يوجد Archinstall في المستودعات الرسمية https://wiki.archlinux.org/index.php/Official_repositories. وسيُثبت أيضًا archinstall كمكتبة بايثون.
لتثبيت كل من المكتبة وسماك archinstall:
pacman -S archinstall
بدلاً من ذلك، يمكنك تثبيت المكتبة فقط وليس الملف التنفيذي المساعد باستخدام حزمة python-archinstall.
التثبيت من PyPI
يطبق المفهوم الأساسي لـ PyPI باستخدام pip.
pip install archinstall
التثبيت باستخدام الكود المصدري
يمكنك أيضًا التثبيت باستخدام الكود المصدري. من أجل التبسيط سنستخدم git clone في هذا المثال.
git clone https://github.com/archlinux/archinstall
يمكنك إما نقل المجلد إلى مشروعك والقيام ببساطة بـ
import archinstall
أو يمكنك استخدام PyPa's build https://github.com/pypa/build و installer https://github.com/pypa/installer لتثبيته في مسار وحدة بايثون.
$ cd archinstall $ python -m build . $ python -m installer dist/*.whl
وحدة بايثون
يدعم Archinstall التشغيل في وضع الوحدة https://docs.python.org/3/library/__main__.html. تقتصر طريقة استدعاء المكتبة في وضع الوحدة على تنفيذ السكربتات الموجودة تحت مجلد scripts https://github.com/archlinux/archinstall/tree/master/archinstall/scripts.
لذلك من المهم وضع أي سكربت أو تشكيلة تود استدعاءها في مجلد الأمثلة قبل البناء والتثبيت.
المتطلبات المسبقة
سنفترض أنك اتبعت طريقة التثبيت باستخدام الكود المصدري <#installing-python-manual>. قبل تثبيت المكتبة فعليًا، ستحتاج إلى وضع سكربتات التثبيت المخصصة الخاصة بك تحت scripts https://github.com/archlinux/archinstall/tree/master/archinstall/scripts كملف بايثون.
المزيد حول كيفية إنشاء هذه في القسم التالي.
تحذير:
إنشاء سكربت
لننشئ تثبيت test_installer كمثال. هذا بافتراض أن المجلد ./archinstall هو نسخة git-clone من المستودع الرئيس. نبدأ بإنشاء "scripts https://github.com/archlinux/archinstall/tree/master/archinstall/scripts/test_installer.py". مكان الوضع هنا مهم لاحقًا.
يمكن استدعاء هذا السكربت الآن بالفعل باستخدام python -m archinstall --script test_installer بعد تثبيت المكتبة نفسها بنجاح. لكن السكربت لن يفعل الكثير. لذا سنقوم بشيء بسيط مثل سرد جميع الأقراص الصلبة كمثال.
للقيام بذلك، سنبدأ باستيراد archinstall في "scripts https://github.com/archlinux/archinstall/tree/master/archinstall/scripts/test_installer.py" واستدعاء وظيفة داخل archinstall.
from archinstall.lib.disk.device_handler import device_handler from pprint import pprint pprint(device_handler.devices)
الآن، تفضل بالرجوع إلى طريقة التثبيت باستخدام الكود المصدري <#installing-python-manual>. بعد تشغيل python -m archinstall test_installer يجب أن يطبع شيئًا يشبه:
[
BDevice(
disk=<parted.disk.Disk object at 0x7fbe17156050>,
device_info=_DeviceInfo(
model='PC801 NVMe SK hynix 512GB',
path=PosixPath('/dev/nvme0n1'),
type='nvme',
total_size=Size(value=512110190592, unit=<Unit.B: 1>,
sector_size=SectorSize(value=512, unit=<Unit.B: 1>)),
free_space_regions=[
<archinstall.lib.disk.device.DeviceGeometry object at 0x7fbe166c4250>,
<archinstall.lib.disk.device.DeviceGeometry object at 0x7fbe166c4c50>,
<archinstall.lib.disk.device.DeviceGeometry object at 0x7fbe166c4a10>],
sector_size=SectorSize(value=512, unit=<Unit.B: 1>),
read_only=False,
dirty=False
),
partition_infos=[
_PartitionInfo(
partition=<parted.partition.Partition object at 0x7fbe166c4a90>,
name='primary',
type=<PartitionType.PRIMARY: 'primary'>,
fs_type=<FilesystemType.FAT32: 'fat32'>,
path='/dev/nvme0n1p1',
start=Size(value=2048, unit=<Unit.sectors: 'sectors'>, sector_size=SectorSize(value=512, unit=<Unit.B: 1>)),
length=Size(value=535822336, unit=<Unit.B: 1>, sector_size=SectorSize(value=512, unit=<Unit.B: 1>)),
flags=[
<PartitionFlag.BOOT: flag_id=1, alias=None>,
<PartitionFlag.ESP: flag_id=18, alias=None>
],
partn=1,
partuuid='a26be943-c193-41f4-9930-9341cf5f6b19',
uuid='6EE9-2C00',
disk=<parted.disk.Disk object at 0x7fbe17156050>,
mountpoints=[
PosixPath('/boot')
],
btrfs_subvol_infos=[]
),
_PartitionInfo(...)
]
)
]
هذا يعني أن السكربت الخاص بك في المكان الصحيح، وأن archinstall يعمل كما هو منشود.
ملاحظة:
ملحقات بايثون
يدعم archinstall الملحقات عبر طريقتين.
الطريقة الأولى هي مباشرة عبر معطى --plugin عند التشغيل كأداة سطر أوامر. سيؤدي هذا إلى تحميل ملحق معين محليًا أو عن بُعد عبر مسار.
الطريقة الثانية هي عبر ميزة اكتشاف الملحقات المدمجة في بايثون https://packaging.python.org/en/latest/specifications/entry-points/ باستخدام نقاط الإدخال https://docs.python.org/3/library/importlib.metadata.html#entry-points المصنفة كـ archinstall.plugin.
معطى --plugin
يمتاز هذا المعطى بكونه يُخزن في حالة --conf، مما يعني عند إعادة تشغيل التثبيت — سيُحمل الملحق آليًا. العيب هو أنه يتطلب معرفة مسار أولي وكتابته وقد يكون مرهقًا.
اكتشاف الملحقات
تسمح هذه الطريقة بتحميل عدة ملحقات مع عيب ضرورة تثبيتها مسبقًا على النظام الذي يشغل archinstall. يستهدف هذا بشكل رئيس أولئك الذين يبنون صور ISO الخاصة بهم ويحزمون إعدادات معينة لاحتياجاتهم.
ما المدعوم؟
التوثيق لهذا شحيح حاليًا. وإلى أن يُحل ذلك، فإن أفضل طريقة للعثور على الميزات المدعومة هي البحث في الكود المصدري عن plugin.on_ <https://github.com/search?q=repo%3Aarchlinux%2Farchinstall+%22plugin.on_%22&type=code> لأن هذا سيعطي مؤشرًا واضحًا على الاستدعاءات التي تتم للملحقات.
كيف يعمل؟
تستخدم ملحقات archinstall نهجًا قائمًا على الاكتشاف حيث يتم الاستعلام في الملحقات عن وظائف معينة. كمثال، إذا كان للملحق الوظيفة التالية:
def on_pacstrap(*packages):
...
الوظيفة archinstall.Pacman().strap(["some packages"]) مبرمجة بشكل ثابت للمرور على الملحقات والبحث عن on_pacstrap في الملحق. إذا كانت الوظيفة موجودة، فإن .strap() ستستدعي وظيفة الملحق وتستبدل قائمة الحزم الأولية بالنتيجة من الملحق.
أفضل طريقة لتوثيق هذه الاستدعاءات غير محددة حاليًا، حيث يصعب توثيق هذا السلوك ديناميكيًا.
هل تكتب ملحقك الخاص؟
أبسط طريقة حاليًا هي النظر في تنفيذ مرجعي أو المجتمع. اثنان من هذه هما:
- torxed/archinstall-aur https://github.com/torxed/archinstall-aur
- phisch/archinstall-aur https://github.com/phisch/archinstall-aur
وابحث عن plugin.on_ <https://github.com/search?q=repo%3Aarchlinux%2Farchinstall+%22plugin.on_%22&type=code> في قاعدة الكود للعثور على ما سيبحث عنه archinstall. نرحب بطلبات السحب (PRs) لتوسيع دعم هذا.
ARCHINSTALL.INSTALLER
المثبت هو الفئة الرئيسة للوصول إلى نسخة تثبيت. يمكنك النظر إلى هذه الفئة على أنها عملية التثبيت التي قمت بها أو ستقوم بها.
أي شيء متعلق بـ داخل التثبيت، سيوجد في هذه الفئة.
المؤلف
Anton Hvornum
حقوق النسخ
2022، Anton Hvornum
ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 20 أبريل 2026 |