2 个版本
0.1.1 | 2020年3月21日 |
---|---|
0.1.0 | 2020年3月21日 |
#439 in 压缩
200KB
372 行
NutShell
在“NutShell”中创建裁判环境!
NutShell 是 Project Polya 的一部分。该项目旨在为教师/学生提供一个命令行助手,以便他们可以设置自己的沙箱环境,以便在后来的评分中顺利协作。
如何使用?
为什么不先查看帮助页面呢?
nutshell 0.1.0
USAGE:
nutshell <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
create-root create an arch chroot environment
help Prints this message or the help of the given subcommand(s)
init-overlay initialize an overlay file system
make-squashfs create a squashfs
create-root
nutshell-create-root 0.1.0
create an arch chroot environment
USAGE:
nutshell create-root [FLAGS] [OPTIONS] --target-dir <target-dir>
FLAGS:
-h, --help Prints help information
-s, --shell enter the chroot environment after basic setups
-V, --version Prints version information
OPTIONS:
-d, --download-backend <download-backend> downloader [default: aria2c] [possible values: aria2c, wget, pacstrap]
-m, --mirror <mirror> image download mirror [default: https://mirrors.kernel.org/archlinux/]
-l, --mirror-list <mirror-list> pacman mirror list
-p, --pacman-config <pacman-config> pacman config file
-t, --target-dir <target-dir> target directory to create the root
此命令帮助您创建一个 Arch Linux chroot 环境。您可以设置自己的下载后端: aria2c
、wget
、pacstrap
均可用。
此命令将下载 Arch 的引导 tar 文件并将其提取到目标目录。使用 systemd-nspawn
,它将填充 GPG 密钥并运行一些基本更新。它还将准备 base
和 base-devel
环境。
用户来自中国大陆
强烈建议您在大陆设置镜像,例如 https://mirrors.tuna.tsinghua.edu.cn/archlinux/
。至于 mirrorlist
,您可能需要以下配置
# mirrorlist
Server = https://ftp.sjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
init-overlay
nutshell-init-overlay 0.1.0
initialize an overlay file system
USAGE:
nutshell init-overlay [FLAGS] [OPTIONS] --base-dir <base-dir> --data-dir <data-dir> --mount-dir <mount-dir>
FLAGS:
-h, --help Prints help information
-p, --print-result print the result in json format
-s, --shell enter the chroot environment after mount
-V, --version Prints version information
OPTIONS:
-b, --base-dir <base-dir> the path to the lowerdir
-d, --data-dir <data-dir> the path store workdir and upperdir
-m, --mount-dir <mount-dir> the path to mount the merged root
-t, --tmp-size <tmp-size> create and bind a tmpfs with the given size
此命令帮助将 squashfs 文件与覆盖层一起挂载。 data-dir
和 base-dir
是覆盖层所需的临时存储路径。
make-squashfs
nutshell-make-squashfs 0.1.0
create a squashfs
USAGE:
nutshell make-squashfs [FLAGS] --source <source> --target <target>
FLAGS:
-f, --faster make the process faster by disabling high quality compression
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-s, --source <source> source directory
-t, --target <target> target path
此命令是 mksquashfs
的包装器。它将帮助创建一个 squashfs 文件,该文件可以在 Project Polya 中使用。
默认情况下,它使用 -comp lz4 -Xhc
作为压缩参数。
顺便说一句,我们使用 Arch Linux
我们发现 Arch Linux 拥有大量最新的软件包和非常轻量级的设计原则,这使得它成为 Project Polya 的理想 Linux 发行版。
依赖项
~7–12MB
~256K SLoC