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 Guided installation.
Un demo al programului de instalare Guided installation poate fi văzut aici: https://www.youtube.com/watch?v=9Xt7X_Iqg6E.
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 Guided Installer 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 Guided Installer 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 .json local sau la distanță și conține configurația generală și răspunsurile la meniul pentru programul de instalare ghidat.
NOTĂ:
Exemplu de utilizare
archinstall --config https://domain.lan/config.json
Conținutul lui https://domain.lan/config.json:
{ "__separator__": null, "additional-repositories": [], "archinstall-language": "English", "audio_config": null, "bootloader": "Systemd-boot", "config_version": "2.6.0", "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_mirrors": [], "mirror_regions": { "Sweden": [ "https://mirror.osbeck.com/archlinux/$repo/os/$arch", "https://mirror.bahnhof.net/pub/archlinux/$repo/os/$arch", "https://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch", "https://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch", "https://ftp.ludd.ltu.se/mirrors/archlinux/$repo/os/$arch", "https://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch", "http://mirror.bahnhof.net/pub/archlinux/$repo/os/$arch", "http://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch", "http://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch", "http://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch", "http://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch" ] } }, "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, testing ] | Activează unul sau mai multe dintre depozitele de testare și multilib înainte de a continua cu instalarea | Nu |
archinstall-language | lang | Stabilește limba utilizată de TUI (asigurați-vă că utilizați valoarea ``lang`` și nu valoarea ``abbr``) | Nu |
audio_config | pipewire, pulseaudio | Serverul audio care urmează să fie instalat | Nu |
bootloader | Systemd-boot, grub | Încărcătorul de pornire care trebuie instalat (grub fiind obligatoriu pe mașinile cu BIOS) | Da |
debug | true, false | Activează ieșirea de depanare. | Nu |
disk_config | Citiți mai multe la Configurare disc | 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 | 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, linux-hardened, linux-lts, linux-rt, linux-rt-lts, linux-zen ] | 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 | Comenzi personalizate care vor fi executate post-instalare cu «chroot» în interiorul sistemului instalat | Nu |
locale_config | {kb_layout: lang, sys_enc: Character encoding, sys_lang: 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 î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 pacman | Nu |
profile_config | `citiți mai multe în secțiunea profiluri` | Instalează un profil dat, dacă este definit | Nu |
script | guided (implicit), minimal, only_hdd, unattended | Atunci când este utilizat pentru a lansa automat o instalare, stabilește scriptul cu care urmează să fie lansat 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 | 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-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-password | șir | Parola contului de root | Nu |
!users | 0.0 3.5 { "username": "<UTILIZATOR>", "!password": "<PAROLĂ>", "sudo": false } 168u 168u | Lista acreditărilor utilizatorului obișnuit, a se vedea configurația pentru referință | Poate că |
NOTĂ:
NOTĂ:
PROBLEME CUNOSCUTE
Unele probleme nu fac parte din sfera de aplicare a proiectelor archinstall, iar cele despre care știm sunt enumerate mai jos.
Se așteaptă sincronizarea timpului <archmanweb-grotty-link href= https://github.com/archlinux/archinstall/issues/2144">#2144</archmanweb-grotty-link>"
Cauza principală obișnuită a acestei situații este topologia rețelei. Mai precis, timedatectl show 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Ă:
Lipsește controlorul proprietar Nvidia <archmanweb-grotty-link href= https://github.com/archlinux/archinstall/issues/2002">#2002</archmanweb-grotty-link>"
Î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 și pachetul nvidia-dkms
ARM, 32bit și alte tipuri de CPU-uri dau eroare <archmanweb-grotty-link href= https://github.com/archlinux/archinstall/issues/1686">#1686</archmanweb-grotty-link>, #2185"
Acesta este un fel de problemă cunoscută. Oficial x86_64 este acceptat doar 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 <archmanweb-grotty-link href= https://github.com/archlinux/archinstall/issues/2213">#2213</archmanweb-grotty-link>"
Problemele cheie care lipsesc tind să fie faptul că pachetul 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
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, ș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 nu pot fi adăugate, iar problemele nu pot fi rezolvate nici prin utilizarea pachetelor AUR.
NOTĂ:
torxed/archinstall-aur este o implementare de referință pentru module:
# archinstall --plugin https://archlinux.life/aur-plugin
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 ar trebui 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 postarea 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 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 ca archinstall. Dar biblioteca poate fi instalată și manual.
AVERTISMENT:
Instalarea cu pacman
Archinstall se află în 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 folosi build și installer de la PyPa pentru a-l instala în ruta modulelor python.
$ cd archinstall $ python -m build . $ python -m installer dist/*.whl
MODUL PYTHON
Archinstall acceptă rularea în module (modul de modul). Modul în care biblioteca este invocată în modul modul este limitat la executarea scripturilor din dosarul 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ă. Înainte de instalarea efectivă a bibliotecii, va trebui să plasați scripturile de instalare personalizate sub scripts ca 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/test_installer.py”. Plasarea aici este importantă mai târziu.
Acest script poate fi acum deja apelat folosind python -m archinstall 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/test_installer.py” și vom apela o funcție în archinstall.
import archinstall print(archinstall.disk.device_handler.devices)
Acum, continuați și faceți referire la metoda de instalare Instalarea folosind codul sursă. 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_model.DeviceGeometry object at 0x7fbe166c4250>, <archinstall.lib.disk.device_model.DeviceGeometry object at 0x7fbe166c4c50>, <archinstall.lib.disk.device_model.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 lui Python construit în plugin discovery folosind entry points clasificat 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ă plugin.on_, 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:
Și căutați plugin.on_ î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.
23 ianuarie 2025 |