mirror of
https://github.com/CachyOS/New-Cli-Installer.git
synced 2025-01-23 22:42:31 +08:00
143 lines
4.3 KiB
Markdown
143 lines
4.3 KiB
Markdown
# 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:
|
|
|
|
```sh
|
|
sudo pacman -Sy \
|
|
base-devel cmake pkg-config make glibmm libnm
|
|
```
|
|
|
|
### Cloning the source code
|
|
```sh
|
|
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`):
|
|
```sh
|
|
cmake -S . -B build
|
|
```
|
|
Second, build it:
|
|
```sh
|
|
cmake --build build
|
|
```
|
|
|
|
#### meson:
|
|
To build, first, configure it (if you intend to install it globally, you
|
|
might also want `--prefix=/usr`):
|
|
```sh
|
|
meson build
|
|
```
|
|
Second, compile it:
|
|
```sh
|
|
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](https://github.com/ArthurSonzogni/FTXUI) used for TUI.
|
|
* [A modern formatting library](https://github.com/fmtlib/fmt) used for formatting strings, output and logging.
|
|
* [Fast C++ logging library](https://github.com/gabime/spdlog) used for logging process of the installer.
|
|
* [Parsing gigabytes of JSON per second](https://github.com/simdjson/simdjson) used for config deserialization.
|
|
* [Curl for People](https://github.com/libcpr/cpr) used for connection check and maybe in future fetching netinstall config from github.
|
|
* [Ranges](https://github.com/ericniebler/range-v3) 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 (TODO)
|
|
| ├── List Devices
|
|
| ├── Partition Disk
|
|
| ├── RAID (WIP)
|
|
| ├── LUKS Encryption (WIP)
|
|
| ├── 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 (WIP)
|
|
| │ ├── Set Timezone and Clock
|
|
| │ ├── Set Root Password
|
|
| │ └── Add New User(s) (seems broken)
|
|
| │
|
|
│ ├── Install Custom Packages
|
|
│ ├── System Tweaks (TODO)
|
|
| │ ├── Enable Automatic Login
|
|
| │ ├── Enable Hibernation
|
|
| │ ├── Performance
|
|
| | │ ├── I/O schedulers
|
|
| | │ ├── Swap configuration
|
|
| | │ └── Preload
|
|
| | │
|
|
| │ ├── Security and systemd Tweaks
|
|
| | │ ├── Amend journald Logging
|
|
| | │ ├── Disable Coredump Logging
|
|
| | │ └── Restrict Access to Kernel Logs
|
|
| | │
|
|
| │ └── Restrict Access to Kernel Logs
|
|
| │
|
|
│ ├── Review Configuration Files (TODO)
|
|
│ └── Chroot into Installation (TODO)
|
|
|
|
|
└── 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 (TODO)
|
|
├── Data Recovery (TODO)
|
|
│ └── Btrfs snapshots..
|
|
│
|
|
└── View System Logs (TODO)
|
|
├── Dmesg
|
|
├── Pacman log
|
|
├── Xorg log
|
|
└── Journalctl
|
|
```
|