mirror of
https://github.com/CachyOS/New-Cli-Installer.git
synced 2025-02-02 22:07:13 +08:00
CachyOS CLI 安装程序
4297a1f43f
remove additional check if one of the repos persist, then return from function and do nothing. logic was wrong anyway. here we was checking the persitance of the repos only to add keyrings. |
||
---|---|---|
.github/workflows | ||
cmake | ||
docs | ||
src | ||
subprojects | ||
tests | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
CMakeLists.txt | ||
configure.sh | ||
demo.gif | ||
Dockerfile | ||
LICENSE | ||
meson_options.txt | ||
meson.build | ||
README.md | ||
settings.json | ||
test.json | ||
Vagrantfile |
cachyos-new-installer
CLI net-installer for CachyOS, inspired by manjaro-architect
This installer provides online installation for CachyOS.
Fast and smooth installer for Arch based operating system.
Requirements
- C++20 feature required (tested with GCC 11.1.0 and Clang 13) 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 ninja clang mold llvm
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.
Simple menu overview:
TODO: should be simple as Calamares Installer
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
| | ├── Edit Pacman Configuration
| | └── Rank Mirrors by Speed (TODO)
| |
│ └── Refresh Pacman Keys
|
├── Install System
│ ├── Install Base Packages
│ ├── Install Desktop
│ ├── Install Bootloader
│ ├── Configure Base
| │ ├── Generate FSTAB
| │ ├── Set Hostname
| │ ├── Set System Locale
| │ ├── Set Timezone and Clock
| │ ├── Set Root Password
| │ └── Add New User(s)
| │
│ ├── Install Custom Packages
│ ├── System Tweaks
| │ ├── Enable Automatic Login
| │ └── Performance
| | ├── I/O schedulers
| | └── Swap configuration
| │
│ ├── Review Configuration Files
│ └── Chroot into Installation
|
└── System Rescue
├── Install Hardware Drivers
│ ├── Install Display Drivers
│ └── Install Network Drivers (TODO)
|
├── Install Bootloader
├── Configure Base
| └── ... (see 'Install System')
│
├── Install Custom Packages
├── Remove Packages
├── Review Configuration Files
├── Chroot into Installation
├── Data Recovery (TODO)
│ └── Btrfs snapshots..
│
└── View System Logs
├── Dmesg
├── Pacman log
├── Xorg log
└── Journalctl