mirror of
https://github.com/CachyOS/New-Cli-Installer.git
synced 2025-01-23 14:32:22 +08:00
4.2 KiB
4.2 KiB
cachyos-new-installer
CLI net-installer for CachyOS, inspired by manjaro-architect
This installer provides online installation for CachyOS.
Requirements
- C++20 feature required (tested with GCC 11.1.0 and Clang 13(clang will not compile it with libstdc++ 11.1.0 because of c++20 standard ranges library) Any compiler which support C++20 standard should work.
Installing from source
This is tested on Arch Linux, but any recent Linux with latest C++20 compiler should do:
sudo pacman -Sy \
base-devel cmake pkg-config make glibmm libnm
Cloning the source code
git clone https://github.com/cachyos/new-cli-installer.git
cd new-cli-installer
Building and Configuring
cmake(recommended):
To build, first, configure it(if you intend to install it globally, you
might also want -DCMAKE_INSTALL_PREFIX=/usr
):
cmake -S . -B build
Second, build it:
cmake --build build
meson:
To build, first, configure it (if you intend to install it globally, you
might also want --prefix=/usr
):
meson build
Second, compile it:
meson compile -C build
Optionally, to disable developer environment:
pass -DENABLE_DEVENV=OFF
to cmake or -Ddevenv=false
to meson when configuring the project.
Libraries used in this project
- Functional Terminal (X) User interface used for TUI.
- A modern formatting library used for formatting strings, output and logging.
- Fast C++ logging library used for logging process of the installer.
- Parsing gigabytes of JSON per second used for config deserialization.
- Curl for People used for connection check and maybe in future fetching netinstall config from github.
- Ranges used for ranges support with clang.
Simple menu overview:
TODO: should be simple as calamares
Advanced menu overview:
Main Menu
|
├── Prepare Installation
| ├── Set Virtual Console
| ├── List Devices
| ├── Partition Disk
| ├── RAID (WIP)
| ├── LUKS Encryption
| ├── Logical Volume Management (WIP)
| ├── Mount Partitions
| ├── Configure Installer Mirrorlist (TODO)
| | ├── Edit Pacman Configuration
| | ├── Edit Pacman Mirror Configuration
| | └── Rank Mirrors by Speed
| |
│ └── Refresh Pacman Keys (TODO)
|
├── Install System
│ ├── Install Base Packages
│ ├── Install Desktop
│ ├── Install Bootloader
│ ├── Configure Base
| │ ├── Generate FSTAB (seems broken)
| │ ├── Set Hostname
| │ ├── Set System Locale
| │ ├── Set Timezone and Clock
| │ ├── Set Root Password
| │ └── Add New User(s) (seems broken)
| │
│ ├── Install Custom Packages
│ ├── System Tweaks
| │ ├── Enable Automatic Login
| │ ├── Performance (TODO)
| | │ ├── I/O schedulers
| | │ ├── Swap configuration
| | │ └── zram
| | │
| │ └── Security and systemd Tweaks (TODO)
| | ├── Amend journald Logging
| | ├── Disable Coredump Logging
| | └── Restrict Access to Kernel Logs
| │
│ ├── Review Configuration Files (TODO)
│ └── Chroot into Installation
|
└── System Rescue
├── Install Hardware Drivers (TODO)
│ ├── Install Display Drivers
│ └── Install Network Drivers
|
├── Install Bootloader
├── Configure Base
| └── ... (see 'Install System')
│
├── Install Custom Packages
├── Remove Packages
├── Review Configuration Files (TODO)
├── Chroot into Installation
├── Data Recovery (TODO)
│ └── Btrfs snapshots..
│
└── View System Logs (TODO)
├── Dmesg
├── Pacman log
├── Xorg log
└── Journalctl