"apt-mark",
"apt-sortpkgs",
)
+ } | {
+ "mkosi-install": apivfs_cmd(context.root) + cls.cmd(context, "get") + ["install"],
+ "mkosi-upgrade": apivfs_cmd(context.root) + cls.cmd(context, "get") + ["upgrade"],
+ "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context, "get") + ["purge"],
}
@classmethod
return {
"dnf": apivfs_cmd(context.root) + cls.cmd(context),
"rpm": apivfs_cmd(context.root) + rpm_cmd(context),
+ "mkosi-install": apivfs_cmd(context.root) + cls.cmd(context) + ["install"],
+ "mkosi-upgrade": apivfs_cmd(context.root) + cls.cmd(context) + ["upgrade"],
+ "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context) + ["remove"],
}
@classmethod
@classmethod
def scripts(cls, context: Context) -> dict[str, list[PathString]]:
- return {"pacman": apivfs_cmd(context.root) + cls.cmd(context)}
+ return {
+ "pacman": apivfs_cmd(context.root) + cls.cmd(context),
+ "mkosi-install": apivfs_cmd(context.root) + cls.cmd(context) + ["--sync", "--needed"],
+ "mkosi-upgrade": apivfs_cmd(context.root) + cls.cmd(context) + ["--sync", "--sysupgrade", "--needed"],
+ "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context) + ["--remove", "--recursive", "--nosave"],
+ }
@classmethod
def mounts(cls, context: Context) -> list[PathString]:
@classmethod
def scripts(cls, context: Context) -> dict[str, list[PathString]]:
+ install: list[PathString] = [
+ "install",
+ "--download", "in-advance",
+ "--recommends" if context.config.with_recommends else "--no-recommends",
+ ]
+
return {
"zypper": apivfs_cmd(context.root) + cls.cmd(context),
"rpm" : apivfs_cmd(context.root) + rpm_cmd(context),
+ "mkosi-install": apivfs_cmd(context.root) + cls.cmd(context) + install,
+ "mkosi-upgrade": apivfs_cmd(context.root) + cls.cmd(context) + ["update"],
+ "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context) + ["remove", "--clean-deps"],
}
@classmethod
the host system. This means that from a script, you can do e.g. `dnf
install vim` to install vim into the image.
+ Additionally, `mkosi-install`, `mkosi-upgrade` and `mkosi-remove` will
+ invoke the corresponding operation of the package manager being used
+ to built the image.
+
* `mkosi-as-caller`: This script uses `setpriv` to switch from
the user `root` in the user namespace used for various build steps
back to the original user that called mkosi. This is useful when