CachyOS CLI 安装程序
Go to file
Vladislav Nepogodin 7df3a4eec8
🚧 prepare for release
2022-01-05 04:30:40 +04:00
cmake 🚧 fix compilation with clang 2022-01-03 01:45:54 +04:00
src 🚧 prepare for release 2022-01-05 03:36:00 +04:00
subprojects 🚧 fix compilation with clang 2022-01-03 01:45:54 +04:00
.clang-format cleanup 2021-11-25 22:34:58 +04:00
.clang-tidy 👷 update ui 2021-12-05 04:15:34 +04:00
.gitignore 🔥 use simdjson instead of nlohmannjson 2021-12-31 16:52:54 +04:00
CMakeLists.txt 🚧 prepare for release 2022-01-05 03:36:00 +04:00
Dockerfile 👷 apply iwyu 2021-12-02 11:57:21 +04:00
LICENSE 🚧 prepare for release 2022-01-05 04:30:40 +04:00
meson_options.txt 👷 enable devenv by default 2021-12-02 00:04:52 +04:00
meson.build 🚧 prepare for release 2022-01-05 03:36:00 +04:00
README.md 🚧 prepare for release 2022-01-05 04:21:53 +04:00
test.json 🔥 use simdjson instead of nlohmannjson 2021-12-31 18:24:03 +04:00
toolbox.sh Fix toolbox script 2021-12-01 01:47:04 +00:00

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

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