<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.argentlinux.io/index.php?action=history&amp;feed=atom&amp;title=Avasile_System_Management</id>
	<title>Avasile System Management - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.argentlinux.io/index.php?action=history&amp;feed=atom&amp;title=Avasile_System_Management"/>
	<link rel="alternate" type="text/html" href="https://wiki.argentlinux.io/index.php?title=Avasile_System_Management&amp;action=history"/>
	<updated>2026-09-25T23:30:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.argentlinux.io/index.php?title=Avasile_System_Management&amp;diff=63&amp;oldid=prev</id>
		<title>Stefan: Argent Avasile management of the system.</title>
		<link rel="alternate" type="text/html" href="https://wiki.argentlinux.io/index.php?title=Avasile_System_Management&amp;diff=63&amp;oldid=prev"/>
		<updated>2026-09-25T20:29:20Z</updated>

		<summary type="html">&lt;p&gt;Argent Avasile management of the system.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Avasile ===&lt;br /&gt;
&lt;br /&gt;
First of all, the holy &amp;#039;&amp;#039;&amp;#039;avasile --help&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Vasile stands for &amp;quot;Versatile Advanced Script for ISOs and Latest Enhancements&amp;quot;, and avasile is &amp;quot;Argent Vasile&amp;quot;. It does two different jobs:&lt;br /&gt;
&lt;br /&gt;
* for users: it puts your system in one of the Argent &amp;#039;&amp;#039;&amp;#039;modes&amp;#039;&amp;#039;&amp;#039; (user mode, devmode, srcmode, ...), which decide if you install binaries, compile, or both&lt;br /&gt;
* for developers: it builds packages and live ISO images in a clean chroot&lt;br /&gt;
&lt;br /&gt;
The mode switches and the build commands need root. If you run them as a normal user, avasile tries to restart itself with sudo. avasile refuses to run on a live ISO.&lt;br /&gt;
&lt;br /&gt;
To see every command avasile runs, step by step, add &amp;lt;code&amp;gt;AVASILE_VERBOSE=1&amp;lt;/code&amp;gt; in front:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;AVASILE_VERBOSE=1 avasile --devmode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Which mode am I on? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --status&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It prints one of:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;avasile is on --usermode&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;avasile is on --devmode!&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;avasile is on --srcmode!&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;avasile is on your own custom mode!&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;avasile is not on any known modes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The mode is simply which Argent make.conf your &amp;lt;code&amp;gt;/etc/portage/make.conf/&amp;lt;/code&amp;gt; points to. See the System Administration page for what that means for &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== The modes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Mode !! Binaries !! Compiling !! Portage tree !! Who is it for&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--usermode&amp;lt;/code&amp;gt; || only binaries || never || minimal (no ebuilds) || everybody, Gentoo newcomers&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--devmode&amp;lt;/code&amp;gt; || when they match your config || when they don&amp;#039;t || full || developers, advanced users&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--srcmode&amp;lt;/code&amp;gt; || no || everything || full || people who want a pure Gentoo&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--custom&amp;lt;/code&amp;gt; || optional || yes || full || people who want their own /etc/portage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Every mode switch starts from zero.&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;--usermode&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--devmode&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--srcmode&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--custom&amp;lt;/code&amp;gt; first remove:&lt;br /&gt;
&lt;br /&gt;
* the Gentoo portage tree (&amp;lt;code&amp;gt;/var/db/repos/gentoo&amp;lt;/code&amp;gt;), except its &amp;lt;code&amp;gt;packages&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;distfiles&amp;lt;/code&amp;gt;&lt;br /&gt;
* the argent-ws overlay (&amp;lt;code&amp;gt;/var/db/repos/argent-ws&amp;lt;/code&amp;gt;), except its &amp;lt;code&amp;gt;packages&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;distfiles&amp;lt;/code&amp;gt;&lt;br /&gt;
* the whole &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/opt/argentws-build&amp;lt;/code&amp;gt;, &amp;#039;&amp;#039;&amp;#039;including every file you made in there&amp;#039;&amp;#039;&amp;#039; (your &amp;lt;code&amp;gt;100-my.*&amp;lt;/code&amp;gt; files, your &amp;lt;code&amp;gt;01-my.make.conf&amp;lt;/code&amp;gt;, your &amp;lt;code&amp;gt;repos.conf&amp;lt;/code&amp;gt; additions)&lt;br /&gt;
&lt;br /&gt;
and then download everything again. &amp;#039;&amp;#039;&amp;#039;Keep a copy of your own files before you switch.&amp;#039;&amp;#039;&amp;#039; It also needs internet and takes a while.&lt;br /&gt;
&lt;br /&gt;
After the download, every mode:&lt;br /&gt;
&lt;br /&gt;
* makes &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt; a symlink to &amp;lt;code&amp;gt;/opt/argentws-build/conf/intel/portage&amp;lt;/code&amp;gt;&lt;br /&gt;
* points &amp;lt;code&amp;gt;/etc/portage/make.conf/00-main.conf&amp;lt;/code&amp;gt; to the make.conf of that mode&lt;br /&gt;
* sets the profile &amp;lt;code&amp;gt;default/linux/amd64/23.0/desktop/plasma/systemd&amp;lt;/code&amp;gt;&lt;br /&gt;
* runs &amp;lt;code&amp;gt;env-update&amp;lt;/code&amp;gt;&lt;br /&gt;
* refreshes the keys used to verify binary packages (unless you add &amp;lt;code&amp;gt;--skip-keys&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
If you run it from inside &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt;, avasile moves you to &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; first, since that directory is about to disappear.&lt;br /&gt;
&lt;br /&gt;
=== User mode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --usermode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the default Argent. Only binary packages from our binhost, nothing gets compiled. The Gentoo tree and the argent-ws overlay are downloaded minimal, only &amp;lt;code&amp;gt;profiles&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;metadata&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eclass&amp;lt;/code&amp;gt;, so they take very little space.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Don&amp;#039;t change anything in &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt; in this mode.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You can also consider user mode your &amp;#039;&amp;#039;&amp;#039;system rescue mode&amp;#039;&amp;#039;&amp;#039;. Whatever you did to your configuration, &amp;lt;code&amp;gt;avasile --usermode&amp;lt;/code&amp;gt; throws it away and puts your system back in complete obedience to the Argent remote repositories and configuration, the same ones our binaries were built with. When your system is lost, this is how you get it back on track. After that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;epkg upgrade&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and your packages follow our binhost again.&lt;br /&gt;
&lt;br /&gt;
=== Development mode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --devmode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Binaries when they match your configuration, compiling when they don&amp;#039;t, and what you compile is saved in &amp;lt;code&amp;gt;/var/cache/binpkgs&amp;lt;/code&amp;gt;. You get the full Gentoo tree and the full argent-ws overlay. You can change USE flags and keywords, in your own files, like &amp;lt;code&amp;gt;/etc/portage/package.use/100-my.package.use&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This is the mode you need for &amp;lt;code&amp;gt;epkg compile&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;epkg recompile-depend&amp;lt;/code&amp;gt; and the rest of the developer commands.&lt;br /&gt;
&lt;br /&gt;
=== Source mode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --srcmode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pure Gentoo: no binaries, everything is compiled from ebuilds, still synced with our overlay and our configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;epkg refuses to run in this mode&amp;#039;&amp;#039;&amp;#039;, you use &amp;lt;code&amp;gt;emerge&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;equery&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;eix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qlist&amp;lt;/code&amp;gt; and the rest of the Gentoo tools directly. You need to know them well.&lt;br /&gt;
&lt;br /&gt;
=== Custom mode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --custom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Alpha feature, not yet recommended.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Like source mode, but &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt; becomes yours:&lt;br /&gt;
&lt;br /&gt;
* your make.conf is &amp;lt;code&amp;gt;make.conf.amd64-custom&amp;lt;/code&amp;gt;, a copy of the devmode one, which you can change freely&lt;br /&gt;
* &amp;lt;code&amp;gt;/opt/argentws-build&amp;lt;/code&amp;gt; is disconnected from our git, so &amp;lt;code&amp;gt;epkg update&amp;lt;/code&amp;gt; no longer brings you our configuration&lt;br /&gt;
* our &amp;lt;code&amp;gt;package.use&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;package.accept_keywords&amp;lt;/code&amp;gt; files are deleted, you start with your own&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --status&amp;lt;/code&amp;gt; shows it as &amp;quot;your own custom mode&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Decentralized modes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --decentralize-user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --decentralize-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --decentralize-source&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --decentralize-custom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are for advanced Gentoo users who run their own independent system, with their own binhost configuration. Unlike the modes above, they &amp;#039;&amp;#039;&amp;#039;don&amp;#039;t delete and don&amp;#039;t download anything&amp;#039;&amp;#039;&amp;#039;: they only switch the make.conf (user, devel, srcmode or custom), set the profile and run &amp;lt;code&amp;gt;env-update&amp;lt;/code&amp;gt;. They need &amp;lt;code&amp;gt;/opt/argentws-build&amp;lt;/code&amp;gt; to already exist.&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt;epkg update&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;emerge --sync&amp;lt;/code&amp;gt;) after switching.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --decentralize-gentoo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;One way ticket.&amp;#039;&amp;#039;&amp;#039; Your system forgets it was ever Argent: it switches to the custom make.conf, removes the Argent git link and deletes our &amp;lt;code&amp;gt;package.use&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;package.accept_keywords&amp;lt;/code&amp;gt; files. There is no central authority anymore, you are on your own. If you ever want to come back to Argent:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /etc/portage &amp;amp;&amp;amp; git init&lt;br /&gt;
git remote add origin https://gitlab.com/argent/argentws-build.git&lt;br /&gt;
git pull --depth=1 origin master&lt;br /&gt;
git branch -u origin/master master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resetting ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --resetmode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Removes the Gentoo tree, the argent-ws overlay and all of &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt;, and doesn&amp;#039;t put anything back. &amp;#039;&amp;#039;&amp;#039;Never leave your system like this&amp;#039;&amp;#039;&amp;#039;: you can&amp;#039;t install, remove or upgrade anything until you choose a mode again (or configure portage by hand).&lt;br /&gt;
&lt;br /&gt;
== Binary package keys ==&lt;br /&gt;
&lt;br /&gt;
Every mode switch refreshes the keyring that portage uses to verify our binary packages (&amp;lt;code&amp;gt;/etc/portage/gnupg&amp;lt;/code&amp;gt;, with &amp;lt;code&amp;gt;getuto&amp;lt;/code&amp;gt;). If you have no access to the keyservers, skip it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --devmode --skip-keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;code&amp;gt;--no-keys&amp;lt;/code&amp;gt; is the same thing.)&lt;br /&gt;
&lt;br /&gt;
If the keyring is broken, rebuild it from scratch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --regen-keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as &amp;lt;code&amp;gt;epkg regen-keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== For developers: building packages and ISOs ===&lt;br /&gt;
&lt;br /&gt;
These two commands are what we use to build Argent itself. They work in a clean chroot made from the &amp;#039;&amp;#039;&amp;#039;Argent core squashfs&amp;#039;&amp;#039;&amp;#039;, so your own system is never touched.&lt;br /&gt;
&lt;br /&gt;
What you need:&lt;br /&gt;
&lt;br /&gt;
* a kernel with &amp;lt;code&amp;gt;CONFIG_OVERLAY_FS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CONFIG_SQUASHFS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CONFIG_BLK_DEV_LOOP&amp;lt;/code&amp;gt;, and with &amp;lt;code&amp;gt;/proc/config.gz&amp;lt;/code&amp;gt; enabled, avasile checks them there&lt;br /&gt;
* &amp;lt;code&amp;gt;sys-boot/grub:2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sys-fs/squashfs-tools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dev-libs/libisoburn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sys-fs/mtools&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;net-misc/rsync&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sys-kernel/dracut&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dev-vcs/git&amp;lt;/code&amp;gt;&lt;br /&gt;
* optionally &amp;lt;code&amp;gt;sys-fs/zerofree&amp;lt;/code&amp;gt;, which makes the ISO smaller&lt;br /&gt;
* a working directory with the core squashfs and its checksum:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
argent_ws_1_core_x64.squashfs&lt;br /&gt;
argent_ws_1_core_x64.squashfs.md5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The core squashfs is a minimal Gentoo stage3, with our &amp;lt;code&amp;gt;argentws-build&amp;lt;/code&amp;gt; settings. We don&amp;#039;t distribute it, you make it yourself.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Run avasile from that directory&amp;#039;&amp;#039;&amp;#039;, otherwise it doesn&amp;#039;t find the squashfs and stops. It also stops if the md5 doesn&amp;#039;t match.&lt;br /&gt;
&lt;br /&gt;
== Building packages ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --makepkg &amp;lt;package(s)&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --makepkg wine playonlinux q4wine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The working directory also needs a &amp;lt;code&amp;gt;packages&amp;lt;/code&amp;gt; and a &amp;lt;code&amp;gt;distfiles&amp;lt;/code&amp;gt; directory, they are mounted in the chroot as &amp;lt;code&amp;gt;/var/cache/binpkgs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/var/cache/distfiles&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
What happens:&lt;br /&gt;
&lt;br /&gt;
* the core squashfs is mounted read only, with an overlay on top of it (&amp;lt;code&amp;gt;rodir&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rwdir&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;workdir&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;overlaydir&amp;lt;/code&amp;gt; in your working directory)&lt;br /&gt;
* inside the chroot, &amp;lt;code&amp;gt;avasile --srcmode&amp;lt;/code&amp;gt; sets up the full trees and our configuration&lt;br /&gt;
* &amp;lt;code&amp;gt;emerge -kav &amp;lt;package(s)&amp;gt;&amp;lt;/code&amp;gt; builds your packages, using the binaries you already have in &amp;lt;code&amp;gt;packages&amp;lt;/code&amp;gt; for the dependencies&lt;br /&gt;
* you are dropped into a &amp;#039;&amp;#039;&amp;#039;root shell&amp;#039;&amp;#039;&amp;#039; in the chroot, to fix build failures, try USE flags and keywords, and so on&lt;br /&gt;
* when you exit the shell, everything is unmounted&lt;br /&gt;
&lt;br /&gt;
Everything you change in the chroot stays in &amp;lt;code&amp;gt;rwdir&amp;lt;/code&amp;gt;, so the next &amp;lt;code&amp;gt;--makepkg&amp;lt;/code&amp;gt; starts from where you left. Delete &amp;lt;code&amp;gt;rwdir&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;workdir&amp;lt;/code&amp;gt; to start from a clean core again.&lt;br /&gt;
&lt;br /&gt;
If you give no package, avasile only prepares the chroot and gives you the shell.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Known issue:&amp;#039;&amp;#039;&amp;#039; the &amp;lt;code&amp;gt;packages&amp;lt;/code&amp;gt; directory is mounted read only in the chroot, so the packages you build there can&amp;#039;t be saved into it yet. This will be fixed in avasile.&lt;br /&gt;
&lt;br /&gt;
== Building a live ISO ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --makeiso&amp;lt;/code&amp;gt; (interactive)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;avasile --makeiso /etc/portage/sets/artwork&amp;lt;/code&amp;gt; (automated)&lt;br /&gt;
&lt;br /&gt;
The arguments are &amp;#039;&amp;#039;&amp;#039;files with one package per line&amp;#039;&amp;#039;&amp;#039;, like our sets in &amp;lt;code&amp;gt;/etc/portage/sets/&amp;lt;/code&amp;gt;. You can give more than one, they are all installed together.&lt;br /&gt;
&lt;br /&gt;
What happens:&lt;br /&gt;
&lt;br /&gt;
* a 20 GiB ext4 image is created, and the core squashfs is copied into it&lt;br /&gt;
* the kernel &amp;lt;code&amp;gt;kernel-genkernel-x86_64-6.12.110-argent&amp;lt;/code&amp;gt; is taken as &amp;lt;code&amp;gt;boot/vmlinuz&amp;lt;/code&amp;gt;&lt;br /&gt;
* inside the image, &amp;lt;code&amp;gt;avasile --usermode&amp;lt;/code&amp;gt; sets up the configuration&lt;br /&gt;
* a live initramfs is generated with dracut (&amp;lt;code&amp;gt;dmsquash-live&amp;lt;/code&amp;gt;), as &amp;lt;code&amp;gt;boot/initrd&amp;lt;/code&amp;gt;&lt;br /&gt;
* the EFI (&amp;lt;code&amp;gt;bootx64.efi&amp;lt;/code&amp;gt;) and BIOS (&amp;lt;code&amp;gt;core.img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lnxboot.img&amp;lt;/code&amp;gt;) boot images are generated&lt;br /&gt;
* a live &amp;lt;code&amp;gt;INSTALL_MASK&amp;lt;/code&amp;gt; is added (&amp;lt;code&amp;gt;/etc/portage/make.conf/zz-live.conf&amp;lt;/code&amp;gt;), so documentation, man pages, debug files and static libraries are not installed on the ISO&lt;br /&gt;
* the packages are installed: from your lists with &amp;lt;code&amp;gt;epkg autoinstall&amp;lt;/code&amp;gt;, or, without lists, you get a &amp;#039;&amp;#039;&amp;#039;root shell&amp;#039;&amp;#039;&amp;#039; in the image to install and configure whatever you want, and you exit when you are done&lt;br /&gt;
* the live &amp;lt;code&amp;gt;INSTALL_MASK&amp;lt;/code&amp;gt; is removed again&lt;br /&gt;
* the live services are enabled (&amp;lt;code&amp;gt;argentlive&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sddm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NetworkManager&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cups&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;avahi-daemon&amp;lt;/code&amp;gt;, the VirtualBox guest services, ...), and PipeWire replaces PulseAudio&lt;br /&gt;
* the free space in the image is zeroed (with &amp;lt;code&amp;gt;zerofree&amp;lt;/code&amp;gt;), and everything is compressed into a squashfs&lt;br /&gt;
* the GRUB configuration is downloaded from &amp;lt;code&amp;gt;https://gitlab.com/argent/boot-core.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* the ISO is made with &amp;lt;code&amp;gt;grub-mkrescue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The result is in your working directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;argent-ws-1-x86_64.iso&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary packages installed in the ISO come from &amp;lt;code&amp;gt;ISO_BINPKGS_SOURCE&amp;lt;/code&amp;gt; (see below), mounted read only in the image as &amp;lt;code&amp;gt;/var/cache/binhost/binhost-main&amp;lt;/code&amp;gt;. The default is the path on our build server, so &amp;#039;&amp;#039;&amp;#039;you have to set it&amp;#039;&amp;#039;&amp;#039; to your own packages directory.&lt;br /&gt;
&lt;br /&gt;
If something fails in the middle, &amp;lt;code&amp;gt;--makeiso&amp;lt;/code&amp;gt; unmounts everything on exit.&lt;br /&gt;
&lt;br /&gt;
== Environment variables ==&lt;br /&gt;
&lt;br /&gt;
You can change these on the command line, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;KERNEL_VERSION=6.12.100 ISO_BINPKGS_SOURCE=/srv/binpkgs avasile --makeiso /etc/portage/sets/artwork&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AVASILE_VERBOSE&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; prints every command avasile runs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AVASILE_SKIP_KEYS&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;--skip-keys&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;KERNEL_VERSION&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;6.12.110&amp;lt;/code&amp;gt; || the Argent kernel used for the ISO&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ISO_BINPKGS_SOURCE&amp;lt;/code&amp;gt; || our build server path || the binary packages installed in the ISO&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ISO_BINPKGS_TARGET&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/var/cache/binhost/binhost-main&amp;lt;/code&amp;gt; || where they are mounted inside the ISO&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ISO_LIVE_CONF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/etc/portage/make.conf/zz-live.conf&amp;lt;/code&amp;gt; || the file with the live INSTALL_MASK&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ISO_INSTALL_MASK&amp;lt;/code&amp;gt; || docs, man, info, debug, &amp;lt;code&amp;gt;*.la&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;*.a&amp;lt;/code&amp;gt; || what is not installed on the ISO&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PORTAGE_REPO&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;https://gitlab.com/argent/argentws-build.git&amp;lt;/code&amp;gt; || the central configuration repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PORTAGE_MAIN_CONFDIR&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/opt/argentws-build&amp;lt;/code&amp;gt; || where it is cloned&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PORTAGE_GITDIR&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/opt/argentws-build/conf/intel/portage&amp;lt;/code&amp;gt; || what &amp;lt;code&amp;gt;/etc/portage&amp;lt;/code&amp;gt; points to&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PORTAGE_MAIN_CONF&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;00-main.conf&amp;lt;/code&amp;gt; || the name of the main make.conf, when there is none yet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ARGENT_MAIN_DIR&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/var/db/repos/argent-ws&amp;lt;/code&amp;gt; || where the argent-ws overlay lives&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
</feed>