| ARCHINSTALL(1) | python-archinstall | ARCHINSTALL(1) |
NUME
archinstall - documentație archinstall
archinstall este o bibliotecă care poate fi utilizată pentru a instala Arch Linux. Biblioteca vine împachetată cu diferite instalatoare pre-configurate, cum ar fi programul de instalare implicit de instalare ghidată „Guided installation” <#guided>.
Unele dintre caracteristicile lui archinstall sunt:
- Context amiabil Biblioteca execută întotdeauna apelurile în ordine secvențială pentru a se asigura că etapele de instalare nu se suprapun sau nu se execută în ordinea greșită. De asemenea, acceptă (și utilizează) învăluitoare de context pentru a se asigura că sarcinile de curățare și cele finale, cum ar fi mkinitcpio, sunt apelate atunci când este necesar.
- Transparență totală Jurnalele și informațiile pot fi găsite la /var/log/archinstall atât în ISO-ul live, cât și parțial pe sistemul instalat.
- Accesibilitate ușoară Archinstall funcționează cu espeakup și alte instrumente de accesibilitate datorită utilizării unei interfețe tactile cu utilizatorul („touch user interface”: TUI).
INSTALARE GHIDATĂ
Archinstall este livrat cu un program de instalare ghidată https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py pre-programată care vă ghidează prin pașii obligatorii, precum și prin unele configurații opționale care pot fi efectuate.
Notă:
Notă:
Avertisment
Executarea instalării ghidate
Pentru a porni programul de instalare, rulați următoarele în cea mai recentă versiune ISO Arch Linux:
archinstall
Deoarece https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py este scriptul implicit, acesta este echivalentul executării archinstall guided
Instalarea ghidată permite, de asemenea, instalarea cu răspunsuri preconfigurate la toți pașii ghidați. Aceasta poate fi o modalitate rapidă și convenabilă de a relua una sau mai multe instalări.
Există două fișiere de configurare, ambele sunt opționale.
--config
Acest parametru ia ca argument un fișier local .json și conține configurația generală și răspunsurile din meniu pentru programul de instalare ghidată.
--config-url
Acest parametru ia ca argument un fișier .json de la distanță și conține configurația generală și răspunsurile din meniu pentru programul de instalare ghidată.
Notă:
Exemplu de utilizare
archinstall --config config.json
archinstall --config-url https://domain.lan/config.json
Conținutul lui 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"
}
opțiuni „--config”
Avertisment
Notă:
opțiuni JSON
| Cheie | Valoare(i) | Descriere | Necesar |
| additional-repositories | [ multilib https://wiki.archlinux.org/title/Official_repositories#multilib, testing https://wiki.archlinux.org/title/Official_repositories#Testing_repositories ] | Activează unul sau mai multe dintre depozitele de testare și multilib înainte de a continua cu instalarea | Nu |
| archinstall-language | lang https://github.com/archlinux/archinstall/blob/master/archinstall/locales/languages.json | Stabilește limba utilizată de TUI (asigurați-vă că utilizați valoarea ``lang`` și nu valoarea ``abbr``) | Nu |
| audio_config | pipewire https://wiki.archlinux.org/title/PipeWire, pulseaudio https://wiki.archlinux.org/title/PulseAudio | Serverul audio care urmează să fie instalat | Nu |
| 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 } | Configurarea încărcătorului de pornire. bootloader selectează încărcătorul de pornire care urmează să fie instalat (grub/limine obligatoriu cu BIOS). uki activează imaginile nucleului unificate (numai UEFI, Numai systemd-boot/limine). removable instalează pe ruta implicită a suportului amovibil /EFI/BOOT/ în loc de NVRAM (numai UEFI, numai grub/limine) | Da |
| debug | true, false | Activează ieșirea de depanare. | Nu |
| disk_config | Citiți mai multe la Configurare disc <#disk-config> | Conține configurația de disc dorită pentru a fi utilizată în timpul instalării | Nu |
| disk_encryption | Citiți mai multe la Criptare disc <#disk-encryption> | Parametrii pentru criptarea discului aplicată peste disk_config | Nu |
| hostname | șir | Un șir de caractere care definește numele de gazdă al mașinii dvs. în rețea (implicit ``archinstall``) | Nu |
| kernels | [ 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 ] | Definește ce nuclee ar trebui instalate și configurate în opțiunile încărcătorului de pornire | Da |
| custom_commands | Citiți mai multe la Comenzi personalizate <#custom-commands> | Comenzi personalizate care vor fi executate post-instalare cu «chroot» în interiorul sistemului instalat | Nu |
| locale_config | {kb_layout: lang https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration, sys_enc: Character encoding https://wiki.archlinux.org/title/Locale, sys_lang: locale https://wiki.archlinux.org/title/Locale} | Definește aranjamentul tastaturii, codificarea sistemului și limba sistemului | Nu |
| mirror_config | {custom_mirrors: [ <https://>... ], mirror_regions: { "Worldwide": [ "https://geo.mirror.pkgbuild.com/$repo/os/$arch" ] } } | Definește diferite oglinzi (valoarea implicită este ``/etc/pacman.d/mirrors`` din ISO dacă nu este definită) | Nu |
| network_config | `consultați opțiunile din secțiunea Configurare rețea` | Stabilește ce tip de configurație de rețea (dacă există) trebuie să fie utilizat | Nu |
| no_pkg_lookups | true, false | Dezactivează verificarea pachetelor în raport cu https://archlinux.org/packages/ | Nu |
| ntp | true, false | activează sau dezactivează NTP https://wiki.archlinux.org/title/Network_Time_Protocol_daemon în timpul instalării | Nu |
| offline | true, false | activează sau dezactivează anumite verificări ale serviciilor din rețea, cum ar fi disponibilitatea de acces la oglindă etc. | Nu |
| packages | [ <pachet1>, <pachet2>, ... ] | O listă de pachete pentru instalare în timpul instalării | Nu |
| parallel downloads | 0-∞ | stabilește un număr dat de descărcări paralele care urmează să fie utilizate de https://wiki.archlinux.org/title/Pacman#Enabling_parallel_downloads | Nu |
| profile_config | `citiți mai multe în secțiunea profiluri` | Instalează un profil dat, dacă este definit | Nu |
| script | guided https://github.com/archlinux/archinstall/blob/master/archinstall/scripts/guided.py (default), 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, Când este utilizat pentru a rula automat o instalare, acesta stabilește ce script să se execute automat. | Nu | |
| silent | true, false | dezactivează sau activează întrebările utilizatorului folosind TUI | Nu |
| swap | true, false | activează sau dezactivează spațiul de interschimb (swap) | Nu |
| timezone | timezone https://wiki.archlinux.org/title/System_time#Time_zone | stabilește un fus orar pentru sistemul instalat | Nu |
Notă:
Opțiuni pentru „--creds”
Creds este un fișier de configurare separat pentru a separa opțiunile normale de datele mai sensibile, cum ar fi parolele. Mai jos este prezentat un exemplu de definire a parolei root, iar mai jos sunt descrise alte valori care pot fi definite.
{
"root_enc_password" : "SecretSfânt2022"
}
opțiuni „--creds”
| Cheie | Valori | Descriere | Necesar |
| !encryption-password | șir | Parola pentru criptarea discului, nu este criptat dacă nu este furnizată parola | Nu |
| root_enc_password | șir | Parola contului de root | Nu |
| users | 0.0 3.5 { "username": "<UTILIZATOR>", "enc_password": "<PAROLĂ_HASH>", "sudo": false } 168u 168u | Lista acreditărilor utilizatorului obișnuit, a se vedea configurația pentru referință | Poate că |
Notă:
PROBLEME CUNOSCUTE
Unele probleme nu fac parte din sfera de aplicare a proiectelor archinstal https://github.com/archlinux/archinstall/, iar cele despre care știm sunt enumerate mai jos.
Se așteaptă sincronizarea timpului #2144 https://github.com/archlinux/archinstall/issues/2144
Cauza principală obișnuită a acestei situații este topologia rețelei. Mai precis, timedatectl show <https://github.com/ archlinux/archinstall/blob/e6344f93f7e476d05bbcd642f2ed91fdde545870/archinstall/lib/installer.py#L136> nu poate efectua o sincronizare corectă a orei cu serverele implicite.
Repornirea systemd-timesyncd.service ar putea funcționa, dar cel mai adesea trebuie să configurați /etc/systemd/timesyncd.conf pentru a se potrivi cu structura rețelei dumneavoastră.
Notă:
Se așteaptă finalizarea sincronizării inelului de chei Arch Linux (archlinux-keyring-wkd-sync). #2679 https://github.com/archlinux/archinstall/issues/2679
archlinux-keyring-wkd-sync.service sau archlinux-keyring-wkd-sync.timer se poate bloca „indefinit” uneori. Acest lucru se datorează, de obicei, unei incapacități de a ajunge la serverele de chei sau unei conexiuni lente către serverele de chei.
Scriptul /usr/bin/archlinux-keyring-wkd-sync poate fi rulat manual, pentru a verifica dacă se execută lent sau nu.
Dacă systemctl show --property=ActiveEnterTimestamp --no-pager archlinux-keyring-wkd-sync.timer nu arată nimic, înseamnă că sincronizarea integrată nu s-a încheiat niciodată. De asemenea, systemctl show --no-pager -p SubState --value archlinux-keyring-wkd-sync.service arată cel mai probabil dead, ceea ce înseamnă că serviciul nu s-a încheiat niciodată.
Pentru a remedia acest lucru, încercați următoarele:
# 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
Notă:
Dacă omiteți sincronizarea WKD, s-ar putea să ajungeți la:
> error: archinstall: signature from "Anton Hvornum (Torxed) <torxed@archlinux.org>" is unknown trust > :: File /var/cache/pacman/pkg/archinstall-1.2.3-4-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)). > Do you want to delete it? [Y/n]
Lipsește controlorul proprietar Nvidia #2002 <https://github.com/archlinux/archinstall/issues/2002>
În unele cazuri, este posibil ca controlorul nvidia să nu aibă instalate toate pachetele necesare. Acest lucru se datorează selecției nucleului și/sau configurațiilor de componente ale mașinii care necesită pachete suplimentare pentru a funcționa corect.
O soluție comună este să instalați pachetul linux-headers https://archlinux.org/packages/core/x86_64/linux-headers/ și pachetul nvidia-dkms https://archlinux.org/packages/extra/x86_64/nvidia-dkms/
ARM, 32bit și alte tipuri de CPU-uri dau eroare #1686 <https://github.com/archlinux/archinstall/issues/1686>, #2185 <https://github.com/archlinux/archinstall/issues/2185>
Aceasta este o problemă cunoscută, care poate apărea în diverse situații. Oficial doar x86_64 <https://wiki.archlinux.org/title/Frequently_asked_questions#What_architectures_does_Arch_support?> este acceptat de Arch Linux. Prin urmare, puține eforturi au fost depuse pentru a sprijini alte platforme.
În teorie, alte arhitecturi ar trebui să funcționeze, dar pot apărea mici ciudățenii.
PR-urile (pull-requests) sunt binevenite, dar vă rugăm să respectați întârzierile în fuzionare. Alte remedieri, probleme sau caracteristici vor fi prioritizate conform motivelor de mai sus.
Inelul de chei este dezactualizat #2213 <https://github.com/archlinux/archinstall/issues/2213>
Problemele cheie care lipsesc tind să fie faptul că pachetul archlinux-keyring https://archlinux.org/packages/core/any/archlinux-keyring/ nu este actualizat, de obicei ca urmare a unei ISO învechite. Există o încercare din partea upstream de a rezolva această problemă, și aceasta este archlinux-keyring-wkd-sync.service https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/blob/7e672dad10652a80d1cc575d75cdb46442cd7f96/wkd_sync/archlinux-keyring-wkd-sync.service.in
Serviciul pornește aproape imediat în timpul pornirii, iar dacă rețeaua nu este configurată la timp - serviciul va eșua. Ulterior, execuția archinstall ar putea funcționa pe un inel de chei vechi, în ciuda existenței unui serviciu de actualizare pentru acesta.
Nu există nicio modalitate fiabilă de a rezolva în timp această problemă în archinstall. În schimb, eforturile pentru serviciul din amonte ar trebui să fie considerate calea de urmat. Și / sau chei care nu expiră între o cantitate rezonabilă de ISO-uri.
Notă:
Notă:
Pachete AUR
Aceasta este, de asemenea, o problemă generală. AUR nu este admis https://wiki.archlinux.org/title/Arch_User_Repository#Updating_packages, și până când acest lucru nu se schimbă nu putem folosi pachetele AUR pentru a rezolva cererile de caracteristici în archinstall.
Acest lucru înseamnă că cererile de caracteristici, cum ar fi suportul pentru sisteme de fișiere precum ZFS https://aur.archlinux.org/packages/zfs-linux nu pot fi adăugate, iar problemele nu pot fi rezolvate nici prin utilizarea pachetelor AUR.
Notă:
torxed/archinstall-aur https://github.com/torxed/archinstall-aur este o implementare de referință pentru module:
# archinstall --plugin https://archlinux.life/aur-plugin
phisch/archinstall-aur https://github.com/phisch/archinstall-aur este o altă alternativă:
# archinstall --plugin https://raw.githubusercontent.com/phisch/archinstall-aur/master/archinstall-aur.py
Avertisment
RAPORTAREA PROBLEMELOR ȘI ERORILOR
Problemele și erorile trebuie să fie raportate la https://github.com/archlinux/archinstall/issues.
Întrebările generale, îmbunătățirile și problemele de securitate pot fi raportate și acolo. Pentru rezolvări rapide sau dacă aveți nevoie de ajutor, accesați serverul Discord, care are un canal de ajutor.
Fișiere de jurnal
Atunci când trimiteți un tichet de ajutor, vă rugăm să includeți /var/log/archinstall/install.log. Acesta poate fi găsit atât pe ISO-ul live, dar și în sistemul de fișiere instalat dacă pachetele de bază au fost atașate.
SFAT:
O modalitate ușoară de a trimite jurnale este curl -F 'file=@/var/log/archinstall/install.log' https://0x0.st. Fiți precauți atunci când trimiteți alte fișiere jurnal, dar archinstall promite să păstreze install.log în siguranță pentru publicarea publică!
Există fișiere jurnal suplimentare sub /var/log/archinstall/ care pot fi utile:
- /var/log/archinstall/user_configuration.json - Stochează majoritatea răspunsurilor ghidate din programul de instalare
- /var/log/archinstall/user_credentials.json - Stochează orice nume de utilizator sau parole, care pot fi pasate la --creds
- /var/log/archinstall/user_disk_layouts.json - Stochează discurile alese și dispunerea lor
- /var/log/archinstall/install.log - Un fișier jurnal despre pașii parcurși de archinstall
- /var/log/archinstall/cmd_history.txt - Un istoric complet al comenzilor, comandă cu comandă în ordine
- /var/log/archinstall/cmd_output.txt - O ieșire brută din toate comenzile care au fost executate de archinstall
Avertisment
DISCORD
Există un canal discord care este frecventat de unii https://github.com/archlinux/archinstall/graphs/contributors.
Pentru a vă alătura serverului, mergeți la https://discord.gg/aDeMffrxNg și alăturați-vă. Nu există multe reguli, în afară de bunul simț și tratarea celorlalți cu respect. Discuția generală este, de asemenea, pentru lucruri care nu țin de subiect.
Există rolul @Party Animals dacă doriți notificări cu privire la noile lansări care sunt publicate în canalul #Release Party. Un alt lucru este rolul @Contributors care poate fi activat de către contributori scriind !verify și urmând procesul de verificare.
Intrați, sperăm să vă vedem acolo! : )
BIBLIOTECA PYTHON
Archinstall se livrează pe PyPi https://pypi.org/ ca archinstall <pypi.org/project/archinstall/>. Dar biblioteca poate fi instalată și manual.
Avertisment
Instalarea cu pacman
Archinstall se află în https://wiki.archlinux.org/index.php/Official_repositories Și va instala de asemenea archinstall ca o bibliotecă python.
Pentru a instala atât biblioteca, cât și scriptul archinstall:
pacman -S archinstall
Alternativ, puteți instala doar biblioteca și nu executabilul ajutător utilizând pachetul python-archinstall.
Instalarea prin intermediul PyPi
Conceptul de bază al PyPi se aplică folosind pip.
pip install archinstall
Instalarea folosind codul sursă
De asemenea, puteți instala folosind codul sursă. Din motive de simplitate, vom utiliza git clone în acest exemplu.
git clone https://github.com/archlinux/archinstall
Puteți fie să mutați dosarul în proiectul dvs. și să faceți pur și simplu
import archinstall
Sau puteți utiliza compilatorul PyPa https://github.com/pypa/build și programul de instalare https://github.com/pypa/installer pentru a-l instala în ruta modulelor python.
$ cd archinstall $ python -m build . $ python -m installer dist/*.whl
MODUL PYTHON
Archinstall acceptă rularea în modul de modul https://docs.python.org/3/library/__main__.html Modul în care biblioteca este invocată în modul de modul este limitat la executarea scripturilor din dosarul https://github.com/archlinux/archinstall/tree/master/archinstall/scripts.
Prin urmare, este important să plasați orice script sau profil pe care doriți să îl invocați în dosarul „examples” înainte de compilare și instalare.
Cerințe prealabile
Vom presupune că ați urmat metoda Instalare folosind codul sursă <#installing-python-manual>. Înainte de instalarea efectivă a bibliotecii, va trebui să plasați scripturile de instalare personalizate sub https://github.com/archlinux/archinstall/tree/master/archinstall/scriptsca fișier python.
Mai multe despre modul de creare a acestora în secțiunea următoare.
Avertisment
Crearea unui script
Să creăm un program de instalare test_installer - ca exemplu. Aceasta presupunând că dosarul ./archinstall este o clonă git a depozitului principal. Începem prin a crea "scripts https://github.com/archlinux/archinstall/tree/master/archinstall/scripts/test_installer.py". Plasarea aici este importantă mai târziu.
Acest script poate fi acum deja apelat folosind python -m archinstall --script test_installer după o instalare reușită a bibliotecii în sine. Dar scriptul nu va face prea multe. Așa că vom face ceva simplu, cum ar fi listarea tuturor discurilor dure, ca exemplu.
Pentru a face acest lucru, vom începe prin a importa archinstall în "scripts https://github.com/archlinux/archinstall/tree/master/archinstall/scripts/test_installer.py" și vom apela o funcție în archinstall.
from archinstall.lib.disk.device_handler import device_handler from pprint import pprint pprint(device_handler.devices)
Acum, continuați și faceți referire la metoda de instalare «Instalarea folosind codul sursă» <#installing-python-manual>. După rularea python -m archinstall test_installer ar trebui să apară ceva asemănător:
[
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(...)
]
)
]
Aceasta înseamnă că scriptul dvs. se află în locul potrivit, iar archinstall funcționează conform planului.
Notă:
MODULE PYTHON
archinstall acceptă module prin două metode.
Prima metodă este direct prin parametrul --plugin atunci când rulează ca instrument CLI. Aceasta va încărca un anumit modul plugin local sau de la distanță prin intermediul unei rute.
A doua metodă este prin intermediul funcției integrate Python de descoperire a modulelor <https://packaging.python.org/en/latest/specifications/ entry-points/> folosind punctele de intrare https://docs.python.org/3/library/importlib.metadata.html#entry-points clasificate ca archinstall.plugin.
--plugin parametru
Parametrul are avantajul de a fi stocat în starea --conf, ceea ce înseamnă că atunci când se rulează din nou o instalare - modulul va fi încărcat automat. Limitarea sa este că necesită ca o rută inițială să fie cunoscută și scrisă și să fie complicată.
Detectarea modulelor
Această metodă permite încărcarea mai multor module, cu dezavantajul că acestea trebuie să fie instalate în prealabil în sistemul care rulează archinstall. Acest lucru îi vizează în principal pe cei care își construiesc propriile ISO-uri și pachete de configurare specifice pentru nevoile lor.
Ce este acceptat?
În prezent, documentația pentru acest lucru este săracă. Până la rezolvarea acestei probleme, cel mai bun mod de a găsi caracteristicile acceptate este de a căuta în codul sursă pentru plugin.on_ <https://github.com/search?q=repo%3Aarchlinux%2Farchinstall+%22plugin.on_%22&type=code>, deoarece acest lucru va oferi o indicație clară a apelurilor efectuate către module.
Cum funcționează acesta?
Modulele archinstall utilizează o abordare bazată pe descoperire în care modulele sunt interogate pentru anumite funcții. Ca exemplu, dacă un modul plugin are următoarea funcție:
def on_pacstrap(*packages):
...
Funcția archinstall.Pacman().strap([„unele pachete”]) este codificată pentru a itera modulele și pentru a căuta on_pacstrap în modul. Dacă funcția există, .strap() va apela funcția modulului și va înlocui lista inițială de pachete cu rezultatul din modul.
Cel mai bun mod de a documenta aceste apeluri este în prezent nedecis, deoarece este greu de documentat acest comportament dinamic.
Scrieți propriul dvs. modul?
Cea mai simplă modalitate actuală este de a consulta o implementare de referință sau comunitatea. Două dintre acestea sunt:
- torxed/archinstall-aur https://github.com/torxed/archinstall-aur
- phisch/archinstall-aur https://github.com/phisch/archinstall-aur
Și căutați plugin.on_ <https://github.com/search?q=repo%3Aarchlinux%2Farchinstall+%22plugin.on_%22&type=code> în codul de bază pentru a afla ce va căuta archinstall. PR-urile „pull-requests” sunt binevenite pentru a lărgi suportul pentru acest lucru.
ARCHINSTALL.INSTALLER
Programul de instalare este clasa principală pentru accesarea unei instanțe de instalare. Puteți considera această clasă ca fiind instalația pe care ați efectuat-o sau o veți efectua.
Orice este legat de în interiorul instalației, va fi găsit în această clasă.
Autor
Anton Hvornum
Drepturi de autor
2022, Anton Hvornum
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
| 20 aprilie 2026 |