# lifsea-ng **Repository Path**: anolis/lifsea-ng ## Basic Information - **Project Name**: lifsea-ng - **Description**: LifseaOS Next Generation which uses nydus instead of ostree for image version management. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-08-04 - **Last Updated**: 2023-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lifsea-ng -- LifseaOS Next Generation ## Introduction LifseaOS Next Generation which uses nydus instead of ostree for image version management. This project is going to replace [lifsea-assembler](https://gitee.com/anolis/lifsea-assembler) for building nydus-based LifseaOS. We provide a building tool `lifsea` which reads system configuration files from [lifsea-config](https://gitee.com/anolis/lifsea-config) and produce a OS image. ## How to build We use `cargo` to build this project, you should install it first: ```bash dnf install cargo ``` And make sure the cargo version >= `1.58.0`. You can use the following command to query the cargo version: ```bash cargo --version ``` Build for debug version: ```bash make ``` Build for release version: ```bash make release ``` Then the target tool will be produced in `target/debug/` or `target/release/` respectively. ## Project Structure The structure of **lifsea-ng** is as follows: ```bash lifsea-ng/ ├── Cargo.lock ├── Cargo.toml ├── Makefile ├── README.md └── src ├── main.rs ├── packages.rs # Check whether the packages to be installed contains excluded packages and if not install the packages ├── parse.rs # Read and parse configuration files ├── remove.rs # Remove all the directories and files listed in config files and override the specified layers ├── scripts.rs # Execute the scripts contained in config files └── utils.rs # Some common interfaces ``` ## Code Style We use [rustfmt](https://github.com/rust-lang/rustfmt) tool to format Rust code according to style guidelines. To install: ```bash dnf install rustfmt ``` To run on a cargo project in the current working directory: ```bash cargo fmt ``` You can also run rustfmt from your editor, please follow the steps [here](https://github.com/rust-lang/rustfmt#running-rustfmt-from-your-editor) to configure your editor.