ASTOS (TREE Snapshot Tree)
การแจกแจงแบบอิงแบบไม่เปลี่ยนรูป

สารบัญ
- ASTOS คืออะไร?
- ASTOS เมื่อเทียบกับการแจกแจงที่คล้ายกันอื่น ๆ
- เอกสาร AST และ ASTOS
- การติดตั้ง
- โพสต์การติดตั้ง
- การจัดการและการปรับใช้สแน็ปช็อต
- การจัดการบรรจุภัณฑ์
- เอกสารเพิ่มเติม
- อัปเดตคีย์ Pacman
- บันทึกการเปลี่ยนแปลงการกำหนดค่าใน /etc อย่างต่อเนื่อง
- การกำหนดค่าบูตคู่
- อัปเดต AST เอง
- การดีบัก AST
- การตั้งค่า AUR
- ข้อบกพร่องที่รู้จัก
- การบริจาค
- ชุมชน
การพัฒนา ASTOS ไม่ได้ใช้งานในปัจจุบันดู #33 (ความคิดเห็น)
ASTOS คืออะไร?
ASTOS เป็นการกระจายที่ทันสมัยบนพื้นฐานของ Arch Linux
ซึ่งแตกต่างจาก arch มันใช้ระบบรูทไฟล์รูท (อ่านอย่างเดียว)
ซอฟต์แวร์ได้รับการติดตั้งและกำหนดค่าเป็นต้นไม้สแน็ปช็อตแต่ละต้นซึ่งสามารถปรับใช้และบูตได้
มันไม่ได้ใช้รูปแบบแพ็คเกจหรือตัวจัดการแพ็คเกจของตัวเองแทนที่จะพึ่งพา Pacman จาก Arch
สิ่งนี้มีข้อดีหลายประการ:
ความปลอดภัย
- แม้ว่าจะใช้แอปพลิเคชันที่มีสิทธิ์แบบยกระดับ แต่ก็ไม่สามารถแทนที่ไลบรารีระบบด้วยเวอร์ชันที่เป็นอันตรายได้
ความมั่นคงและความน่าเชื่อถือ
- เนื่องจากระบบที่ติดตั้งเป็นอ่านเท่านั้นจึงเป็นไปไม่ได้ที่จะเขียนทับไฟล์ระบบโดยไม่ตั้งใจ
- หากระบบทำงานเป็นปัญหาคุณสามารถย้อนกลับสแน็ปช็อตการทำงานล่าสุดได้อย่างง่ายดายภายในไม่กี่นาที
- การอัปเดตอะตอม - การอัปเดตระบบของคุณทั้งหมดในครั้งเดียวมีความน่าเชื่อถือมากกว่า
- ด้วยคุณสมบัติ Snapshot ทำให้ Astos สามารถจัดส่งซอฟต์แวร์ Cutting Edge ได้โดยไม่ต้องไม่เสถียร
- ASTOS ต้องการการบำรุงรักษาเพียงเล็กน้อยเนื่องจากมีเครื่องมืออัปเดตอัตโนมัติในตัวที่สร้างสแน็ปช็อตก่อนที่จะอัปเดตและตรวจสอบโดยอัตโนมัติว่าระบบอัพเกรดอย่างถูกต้องก่อนที่
ความสามารถในการกำหนดค่า
- ด้วยสแน็ปช็อตที่จัดเป็นต้นไม้คุณสามารถกำหนดค่าซอฟต์แวร์ของคุณได้หลายแบบที่แตกต่างกันพร้อมแพ็คเกจที่แตกต่างกันโดยไม่มีสัญญาณรบกวนใด ๆ
- ตัวอย่างเช่น: คุณสามารถติดตั้งเดสก์ท็อป Gnome เดียวแล้วมีสแน็ปช็อต 2 ตัวอยู่ด้านบน - หนึ่งในวิดีโอเกมของคุณพร้อมเคอร์เนลและไดรเวอร์ใหม่ล่าสุดและอื่น ๆ สำหรับการทำงานด้วยเคอร์เนล LTS และซอฟต์แวร์ที่มีเสถียรภาพมากขึ้น
- นอกจากนี้คุณยังสามารถลองใช้ซอฟต์แวร์ได้อย่างง่ายดายโดยไม่ต้องกังวลกับการทำลายระบบของคุณหรือก่อมลพิษด้วยไฟล์ที่ไม่จำเป็นเช่นคุณสามารถลองใช้สภาพแวดล้อมเดสก์ท็อปใหม่ในสแน็ปช็อตแล้วลบสแน็ปช็อตหลังจากนั้นโดยไม่ต้องปรับเปลี่ยนระบบหลักของคุณเลย
- นอกจากนี้ยังสามารถใช้สำหรับระบบหลายผู้ใช้ซึ่งผู้ใช้แต่ละคนมีระบบแยกต่างหากด้วยซอฟต์แวร์ที่แตกต่างกัน แต่พวกเขาสามารถแชร์แพ็คเกจบางอย่างเช่นเคอร์เนลและไดรเวอร์
- ASTOS ช่วยให้คุณติดตั้งซอฟต์แวร์โดยใช้สแน็ปช็อตดังนั้นคุณสามารถใช้ซอฟต์แวร์เช่น AUR เพื่อติดตั้งแพ็คเกจเพิ่มเติม
- ASTOS เช่นเดียวกับ Arch ปรับแต่งได้มากคุณสามารถเลือกซอฟต์แวร์ที่คุณต้องการใช้ได้อย่างชัดเจนว่าคุณต้องการใช้ซอฟต์แวร์ใด
ขอบคุณการอัพเกรดและการอัพเกรดอัตโนมัติ Astos เหมาะสำหรับการใช้งานเดียวหรืออุปกรณ์ฝังตัว
นอกจากนี้ยังทำให้เวิร์กสเตชันที่ดีหรือการกระจายการใช้งานทั่วไปโดยใช้คอนเทนเนอร์การพัฒนาและ flatpak สำหรับแอปพลิเคชันเดสก์ท็อป
ASTOS เมื่อเทียบกับการแจกแจงที่คล้ายกันอื่น ๆ
- NIXOS - เมื่อเทียบกับ Nixos, ASTOS เป็นระบบแบบดั้งเดิมมากขึ้นด้วยวิธีการตั้งค่าและการบำรุงรักษา ในขณะที่ Nixos ได้รับการกำหนดค่าทั้งหมดโดยใช้ภาษาการเขียนโปรแกรม NIX แต่ ASTOS ใช้ PACMAN Manager ของ Arch ASTOS ใช้ที่เก็บข้อมูลน้อยลงและการกำหนดค่าระบบของคุณนั้นเร็วขึ้นและง่ายขึ้น (ทำซ้ำได้น้อยลง) มันยังให้ตัวเลือกการปรับแต่งมากขึ้น ASTOS เป็นไปตามมาตรฐาน FHS เพื่อให้มั่นใจว่าเข้ากันได้กับซอฟต์แวร์ที่เหมาะสม
- ASTOS อนุญาตให้มีการกำหนดค่าที่เปิดเผยโดยใช้ Ansible สำหรับฟังก์ชันการทำงานที่ค่อนข้างคล้ายกับ Nixos
- Fedora SilverBlue/Kinoite - ASTOS สามารถปรับแต่งได้มากขึ้น แต่ต้องใช้การตั้งค่าด้วยตนเองมากขึ้น ASTOS รองรับการบูตคู่ซึ่งแตกต่างจาก SilverBlue
- OpenSuse Microos - ASTOS เป็นระบบที่ปรับแต่งได้มากขึ้น แต่ต้องใช้การตั้งค่าด้วยตนเองอีกเล็กน้อย Microos ทำงานได้ในลักษณะที่ใช้ในการใช้สแน็ปช็อต BTRFS ASTOS มีการติดตั้ง KDE อย่างเป็นทางการ แต่ยังรองรับสภาพแวดล้อมเดสก์ท็อปอื่น ๆ ในขณะที่ microos รองรับ GNOME เท่านั้น ASTOS รองรับการบูตคู่รวมถึงการจับคู่ระบบและการติดตั้งแพ็คเกจโดยไม่ต้องรีบูต
การติดตั้ง
- ASTOS ติดตั้งจาก arch linux iso อย่างเป็นทางการที่มีอยู่ใน https://archlinux.org/
- หากคุณพบปัญหาการติดตั้งแพ็คเกจระหว่างการติดตั้งตรวจสอบให้แน่ใจว่าคุณใช้ arch arch iso ใหม่ล่าสุดและหากจำเป็นต้องอัปเดตพวงกุญแจ Pacman
- คุณต้องมีการเชื่อมต่ออินเทอร์เน็ตเพื่อติดตั้ง ASTOS
- ปัจจุบัน ASTOS จัดส่งโปรไฟล์การติดตั้ง 4 รายการหนึ่งสำหรับการติดตั้งขั้นต่ำและสองสำหรับเดสก์ท็อปหนึ่งอันที่มีสภาพแวดล้อมเดสก์ท็อป GNOME หนึ่งอันที่มี KDE พลาสมาและอีกหนึ่งกับเพื่อน
- สคริปต์การติดตั้งสามารถกำหนดค่าได้อย่างง่ายดายและปรับตามความต้องการของคุณ (แต่ใช้งานได้ดีโดยไม่ต้องแก้ไขใด ๆ )
ติดตั้ง Git ก่อน - สิ่งนี้จะช่วยให้เราสามารถดาวน์โหลดสคริปต์การติดตั้งได้
ที่เก็บโคลน
git clone "https://github.com/lambdanil/astOS"
cd astOS
ไดรฟ์พาร์ติชันและรูปแบบ
- หากติดตั้งบนระบบ BIOS ให้ใช้ตารางพาร์ติชัน DOS (MBR)
- บน EFI คุณสามารถใช้ GPT
- พาร์ติชัน EFI จะต้องจัดรูปแบบเป็น FAT32 ก่อนที่จะเรียกใช้ตัวติดตั้ง (
mkfs.fat -F32 /dev/<part> )
lsblk # Find your drive name
cfdisk /dev/*** # Format drive, make sure to add an EFI partition, if using BIOS leave 2M free space before first partition
mkfs.btrfs /dev/*** # Create a btrfs filesystem, don't skip this step!
เรียกใช้ตัวติดตั้ง
python3 main.py /dev/<partition> /dev/<drive> /dev/<efi part> # Skip the EFI partition if installing in BIOS mode
โพสต์การติดตั้งการติดตั้ง
- การตั้งค่าการติดตั้งโพสต์ไม่จำเป็นหากคุณติดตั้งหนึ่งในรุ่นเดสก์ท็อป (GNOME หรือ KDE)
- ข้อมูลจำนวนมากสำหรับวิธีจัดการการตั้งค่าหลังการติดตั้งมีอยู่ในหน้า Archwiki
- นี่คือขั้นตอนการตั้งค่าตัวอย่างเล็ก ๆ :
- เริ่มต้นด้วยการสร้างสแน็ปช็อตใหม่จาก
base โดยใช้ ast clone 0 - chroot ภายในสแน็ปช็อตใหม่นี้ (
ast chroot <snapshot> ) และเริ่มการตั้งค่า- เริ่มต้นด้วยการเพิ่มบัญชีผู้ใช้ใหม่:
useradd username - ตั้งค่ารหัสผ่านผู้ใช้
passwd username - ตอนนี้ตั้งรหัสผ่านใหม่สำหรับรูทรูทรู
passwd root - ตอนนี้คุณสามารถติดตั้งแพ็คเกจเพิ่มเติม (สภาพแวดล้อมเดสก์ท็อปเทคโนโลยีคอนเทนเนอร์ Flatpak) โดยใช้ Pacman
- เมื่อเสร็จแล้วให้ออกจาก chroot ด้วย
exit 0 - จากนั้นคุณสามารถปรับใช้ด้วย
ast deploy <snapshot>
เอกสารเพิ่มเติม
- ขอแนะนำให้อ้างถึง Arch Wiki สำหรับเอกสารที่ไม่ได้เป็นส่วนหนึ่งของโครงการนี้
- ปัญหารายงาน/ข้อบกพร่องในหน้าปัญหา GitHub
- คำแนะนำ: คุณสามารถใช้
ast help เพื่อรับการโกงอย่างรวดเร็วของคำสั่งที่มีอยู่ทั้งหมด
สแน็ปช็อตพื้นฐาน
- Snapshot
0 ถูกสงวนไว้สำหรับสแน็ปช็อตระบบพื้นฐานไม่สามารถเปลี่ยนแปลงได้และสามารถอัปเดตได้โดยใช้ ast base-update เท่านั้น
การจัดการภาพรวม
แสดงแผนผังระบบไฟล์
- เอาต์พุตสามารถดูตัวอย่างเช่นนี้:
root - root
├── 0 - base snapshot
└── 1 - multiuser system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
เพิ่ม descritption ใน snapshot
- สแน็ปช็อตช่วยให้คุณเพิ่มคำอธิบายให้กับพวกเขาเพื่อระบุตัวตนได้ง่ายขึ้น
ast desc <snapshot> <description>
ลบต้นไม้
- สิ่งนี้จะลบต้นไม้และกิ่งก้านทั้งหมด
การกำหนดค่าการบูตแบบกำหนดเอง
- หากคุณต้องการใช้การกำหนดค่า GRUB ที่กำหนดเอง chroot เป็นสแนปชอตและแก้ไข
/etc/default/grub จากนั้นปรับใช้สแน็ปช็อตและรีบูต
chroot เป็น snapshot
- เมื่ออยู่ใน chroot ระบบปฏิบัติการจะทำตัวเหมือนซุ้มประตูปกติดังนั้นคุณสามารถติดตั้งและลบแพ็คเกจโดยใช้ Pacman หรือคล้ายกัน
- อย่าเรียกใช้ AST จากภายใน chroot มันอาจทำให้เกิดความเสียหายต่อระบบมีความล้มเหลวในสถานที่ซึ่งสามารถข้ามด้วย
--chroot ถ้าคุณต้องการ (ไม่แนะนำ) - chroot จะต้องออกอย่างถูกต้องด้วย
exit 0 มิฉะนั้นการเปลี่ยนแปลงที่เกิดขึ้นจะไม่ถูกบันทึก - หากต้องการยกเลิกการเปลี่ยนแปลงให้ใช้
exit 1 แทน - หากคุณไม่ออกจาก chroot ทาง "สะอาด" ด้วย
exit 0 ขอแนะนำให้เรียกใช้ ast tmp เพื่อล้างไฟล์ชั่วคราวที่ทิ้งไว้ข้างหลัง
- คุณสามารถป้อนเชลล์ที่ปลดล็อคภายในสแน็ปช็อตที่บูตปัจจุบันด้วย
- การเปลี่ยนแปลงที่เกิดขึ้นกับเซสชันสดจะไม่ถูกบันทึกไว้ในการปรับใช้ใหม่
ตัวเลือก chroot อื่น ๆ
- รันคำสั่งที่ระบุภายใน snapshot
ast run <snapshot> <command>
- รันคำสั่งที่ระบุภายใน snapshot และทั้งหมดของสาขา
ast tree-run <tree> <command>
ภาพรวมโคลน
- นี่เป็นภาพรวมของสแนปชอตเป็นต้นไม้ใหม่
โคลนต้นไม้ซ้ำ
- นี่โคลนต้นไม้ทั้งต้นกลับมาซ้ำ
ast clone-tree <snapshot>
สร้างสาขาต้นไม้ใหม่
- เพิ่มสาขาใหม่ในสแนปชอตที่ระบุ
ast branch <snapshot to branch from>
โคลนสแน็ปช็อตภายใต้พาเรนต์เดียวกัน
โคลนสแน็ปช็อตภายใต้พาเรนต์ที่ระบุ
- ตรวจสอบให้แน่ใจว่าได้ซิงค์ต้นไม้หลังจากนั้น
ast ubranch <parent> <snapshot>
สร้างทรีฐานใหม่
ปรับใช้สแน็ปช็อต
- รีบูตเพื่อบูตในสแน็ปช็อตใหม่หลังจากปรับใช้
อัปเดตฐานสแนปชอตใหม่ที่สร้างขึ้นจาก
- หมายเหตุ: ฐานของตัวเองตั้งอยู่ที่
/.snapshots/rootfs/snapshot-0 โดยมีไฟล์เฉพาะ /var และ /etc อยู่ที่ /.snapshots/var/var-0 และ /.snapshots/etc/etc-0 ตามลำดับ
การจัดการบรรจุภัณฑ์
การติดตั้งซอฟต์แวร์
- ซอฟต์แวร์สามารถติดตั้งได้โดยใช้ Pacman ใน chroot
- สามารถใช้ AUR ได้ภายใต้ Chroot
- Flatpak สามารถใช้สำหรับการติดตั้งแพ็คเกจถาวร
- การใช้คอนเทนเนอร์สำหรับการติดตั้งซอฟต์แวร์เพิ่มเติมก็เป็นตัวเลือก วิธีที่ง่ายในการทำเช่นนี้คือกับ distrobox
ast install <snapshot> <package>
- หลังจากติดตั้งคุณสามารถซิงค์แพ็คเกจที่ติดตั้งใหม่กับสาขาทั้งหมดของต้นไม้ด้วย
- การซิงค์ต้นไม้ยังอัปเดตสแน็ปช็อตทั้งหมดโดยอัตโนมัติ
- หากคุณต้องการซิงค์โดยไม่ต้องอัปเดต (อาจทำให้เกิดการทำซ้ำแพ็คเกจในฐานข้อมูล) ให้ใช้
การตั้งค่า AUR
- ASTOS ยังรองรับ AUR โดยธรรมชาติ
- ก่อนที่เราจะเปิดใช้งานการสนับสนุน AUR ก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าไม่ได้ติดตั้ง
paru :
ast remove <snapshot> paru
- ในการใช้คุณสมบัตินี้ก่อนอื่นเราต้องเปิดใช้งานการสนับสนุน AUR ในการกำหนดค่า Snapshot:
EDITOR=nano ast edit-conf <snapshot> # set the EDITOR variable
- ตอนนี้เราต้องเพิ่มบรรทัดต่อไปนี้ลงในไฟล์:
- บันทึกและออก
- ขณะนี้การรองรับ AUR เปิดใช้งานแล้ว -
ast install และการดำเนินการอื่น ๆ สามารถติดตั้งแพ็คเกจ AUR ได้ตามปกติ
การลบซอฟต์แวร์
ast remove <snapshot> <package or packages>
ast tree-rmpkg <tree> <pacakge or packages>
การอัปเดต
- เพื่ออัปเดตต้นไม้ทั้งหมดซ้ำ
- จากนั้นคุณสามารถรีบูตกลับไปที่ระบบการทำงาน
ความพิเศษ
การแก้ไขแพ็คเกจทุจริต / ประเด็นสำคัญของ Pacman
- Pacman Package Manager ของ Arch บางครั้งต้องมีการรีเฟรชของคีย์ PGP
- เพื่อแก้ไขปัญหานี้เราสามารถติดตั้งใหม่ได้
ast install <snapshots> archlinux-keyring
การบันทึกการเปลี่ยนแปลงการกำหนดค่าที่เกิดขึ้นใน /etc
- โดยปกติการกำหนดค่าควรทำด้วย
ast chroot แต่บางครั้งคุณอาจต้องการใช้การเปลี่ยนแปลงที่คุณทำกับระบบบูทอย่างต่อเนื่อง - ในการทำเช่นนี้ให้ใช้คำสั่งต่อไปนี้
- สิ่งนี้ช่วยให้คุณกำหนดค่าระบบของคุณโดยการแก้ไข
/etc ตามปกติจากนั้นบันทึกการเปลี่ยนแปลงเหล่านี้
บูตคู่
- ASTOS รองรับการบูตคู่โดยใช้ grub bootloader
- เมื่อติดตั้งระบบให้ใช้พาร์ติชัน EFI ที่มีอยู่
- ในการกำหนดค่าการบูตคู่เราต้องเริ่มต้นด้วยการติดตั้งแพ็คเกจ
os-prober :
ast install <snapshot> os-prober
- ตอนนี้เราต้องกำหนดค่าด้วง
ast chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit 0
- ตอนนี้เพียงแค่ปรับใช้สแน็ปช็อตเพื่อกำหนดค่า bootloader ใหม่
หากตรวจพบ Windows, AST ควรส่งคืนเอาต์พุตตามสายของ Found Windows Boot Manager on...
คุณอาจต้องติดตั้ง ntfs-3g ก่อนและนำไปใช้ใหม่อีกครั้งหากคุณไม่เห็นรายการ Windows
อัปเดต AST เอง
- AST ไม่ได้รับการอัปเดตควบคู่ไปกับระบบเมื่อใช้
ast upgrade - บางครั้งอาจจำเป็นต้องอัปเดต AST เอง
- AST สามารถอัปเดตด้วยคำสั่งเดียว
การดีบัก AST
- บางครั้งอาจจำเป็นต้องดีบัก AST
- คัดลอก
ast ไปยังสถานที่ใด ๆ :
cp /usr/local/sbin/ast astpk.py
- คำสั่งต่อไปนี้มีประโยชน์เนื่องจากแสดงผลลัพธ์ของคำสั่งเมื่อเรียกใช้ ASTPK.py:
sed -i -e s, 2>&1> /dev/null,,g astpk.py
หากคุณได้แก้ไขไฟล์ AST ดั้งเดิม (เป็นไปได้ แต่ไม่แนะนำ) โปรดตรวจสอบให้แน่ใจว่าได้เปลี่ยนกลับเมื่อเสร็จแล้ว!
ข้อบกพร่องที่รู้จัก
- เมื่อเรียกใช้ AST ที่ไม่มีอาร์กิวเมนต์ - IndexError: รายการดัชนีนอกช่วง
- การเรียกใช้ AST โดยไม่ได้รับอนุญาตรูทแสดงว่าการอนุญาตปฏิเสธข้อผิดพลาดแทนข้อความแสดงข้อผิดพลาด
- พาร์ติชันสลับไม่ทำงานขอแนะนำให้ใช้ swapfile หรือ zram แทน
- Docker มีปัญหาเกี่ยวกับการอนุญาตเพื่อแก้ไขการรัน
sudo chmod 666 /var/run/docker.sock
- หากคุณพบปัญหาใด ๆ ให้รายงานในหน้าปัญหา
การบริจาค
- ยินดีต้อนรับรหัสและเอกสารประกอบ
- รายงานข้อผิดพลาดเป็นวิธีที่ดีในการสนับสนุนโครงการด้วย
- ก่อนที่จะส่งคำขอดึงทดสอบรหัสของคุณและตรวจสอบความคิดเห็นอย่างถูกต้อง
ชุมชน
- โปรดอย่าลังเลที่จะเข้าร่วมกับเราใน Discord สำหรับการสนทนาและการสนับสนุนเพิ่มเติม!
- มีความสุขที่ไม่มีความกังวล Snapshotting!
โครงการได้รับใบอนุญาตภายใต้ใบอนุญาต AGPLV3