ryo-iso

https://img.shields.io/pypi/v/ryo_iso.svg?style=flat https://builds.sr.ht/~lucidone/ryo-iso.svg https://readthedocs.org/projects/ryo-iso/badge/?version=latest


Table of Contents

Overview

ryo-iso is distributed on PyPI and is available for Python 3.8+ on Linux.

$ python3 -m pip install -U --user git+https://git.sr.ht/~lucidone/ryo-iso

Documentation

Documentation is available at https://ryo-iso.readthedocs.io/

Deprecated

  • Ubuntu 16.04 (Xenial)
  • Python 3.6

Currently supported targets

  • Ubuntu 18.04 (Bionic)
  • Ubuntu 20.04 (Focal)
  • Ubuntu 22.04 (Focal)

Usage

TL;DR

$ sudo apt install curl gpgv2 squashfs-tools xorriso apt-utils apt-cacher-ng qemu-system-x86 isolinux
$ if [ $(lsb_release -cs) = "jammy" ]; then sudo apt install jq fdisk; fi
$ python3 -m pip install -U --user git+https://git.sr.ht/~lucidone/ryo-iso
$ mkdir ~/iso_test
$ cd ~/iso_test
$ ryo-iso init
$ ryo-iso build
$ ryo-iso start

Requirements

$ sudo apt install curl gpgv2 squashfs-tools xorriso apt-utils apt-cacher-ng qemu-system-x86 isolinux Working with jammy also requires $ sudo apt install jq fdisk

Other commands

Create a new project

$ ryo-iso init

This command will initialize a project with a default iso.yml configuration file in the current directory.

If this is the first time being run it will create the ryo-iso application config file in ~/.config/ryo-iso/config.yml and provides a set of reasonable defaults in ~/.config/ryo-iso/iso_base.yml that can be overridden on a per-project basis.

Build an ISO

$ ryo-iso build

Builds an iso in build/image.iso

VM Install

$ ryo-iso install

Generated images can be tested by installing them into a QEMU VM

VM Start

$ ryo-iso start

This command can provide a means of booting the image as a LiveCD or restarting a previously installed disk image.

Cleanup

$ ryo-iso clean

This command will remove all build artifacts to prepare the project to be checked into version control.

NOTE: Using this command is preferable to running rm -rf as builds that are aborted with Ctrl-C may leave chrooted filesystems mounted.

Additional

$ ryo-iso list -p

This will list all intermediate processes that may be useful for debugging.

GPG Keys

All of the keys found in ./keys will be install into the squashfs-root On jammy and later they should be referenced via deb [arch=amd64 signed-by=/usr/share/keyrings/repo-keyring.gpg] http://repo.example.org/ ubuntu jammy main

License

ryo-iso is distributed under the terms of both

at your option.