Portmod has two different levels of configuration: Prefixes, and profiles.
Prefixes are user-created and allow multiple configurations to exist side-by-side on a system.
Profiles are defined by the repository, and provide default settings for a prefix.
Some game engines have their own setup guides which provide information specific to that game engine.
See The Wiki for details.
Creating a prefix
You can create a prefix using the command
portmod init <prefix> <arch>.
<prefix> is the name of the prefix you want to create. This name can
be arbitrary, but it is recommended, unless you are intending on setting
up multiple prefixes for the same architecture, to use the architecture
as the prefix name (e.g.
<arch> is the architecture of the prefix (i.e. the game engine).
Known supported architectures are listed in
but you may want to consult the specific package repository you are
Unless you pass the
--no-confirm argument to
portmod init, it
will prompt you to select package repositories and a profile.
Details on how to do this manually are provided in the sections below.
Optionally, you can include a directory as a third argument to
portmod init. Doing so will install the prefix into that directory,
something which is necessary for certain DRM systems where the game can
only be launched if the files are in a certain place (and also removes
the need to copy source files for engines which don’t support any sort
of virtual file system).
Add and Synchronize Package repositories
You can use the command
portmod <prefix> select repo list to list
available repositories, and add them using
portmod <prefix> select repo add <repo>, where repo is either the
name of the repo, or the number in the list.
This will both initialize and synchronize the selected repository, and
add it to the
REPOS variable in your prefix’s portmod.conf.
Repositories are shared between prefixes, but only those listed in
will be used.
Select a Profile
The profile provides default settings that are tailored for your game setup. See Profiles for details about the different profile options.
In addition to during prefix initialization, you can use
portmod <prefix> select profile list to see a list of available
portmod <prefix> select profile set NUM can be used to
select the profile you want.
Install System packages
Most profiles require certain “system” packages, which are necessary for the proper generation of configuration files and the proper functioning of mods after they have been installed.
Once prefix creation is complete you should install these system
packages by performing a world update:
portmod <prefix> merge --update --deep @world (or
portmod <prefix> merge -uD @world).
--update are not necessary the first
time, as they have no effect on packages which have not been installed,
however it is a good idea to familiarize yourself with this command
since it also is how you should install package updates.
(Optional) Creating a Prefix Alias
For users of shells other than bash, you will need to look elsewhere for this information, and note that other unix shells have similar features, though the syntax may vary. Consult your shell’s documentation for information on how to create aliases.
If you use the bash shell, you can create an alias for prefix-related
commands by adding
alias <alias_name>="portmod <prefix>".
For example, for an
openmw prefix, you could do the following:
alias omw="portmod openmw"
This would allow you to use the command
omw merge in place of
portmod openmw merge.
You could even create an alias for each of the subcommands (“merge”,
“select”, “search”, “query”, “use”). E.g.
alias omwmerge="portmod openmw merge".
Note that the documentation on this wiki will not assume that you have created an alias, and will always give the command in full.