Portmod requires Python 3.6 or later.
Since portmod 2.0 beta5, portmod compiles a rust extension using setuptools-rust and pyo3. As such source installations of Portmod require a rust compiler (1.39+). If you are installing using a pre-compiled wheel from pypi (which, as long as a wheel for your platform is available, is usually what is installed when using pip), you do not need a rust compiler to install.
Can be installed through pip, or via your package manager. When installing using the pip commands given later in this file these will be installed automatically.
- patool: http://wummel.github.io/patool/
- Archive manager
- Note that patool relies on helper programs to handle may file types, you will need these programs installed and in your PATH to be able to extract files of types not supported natively by patool (built-in types include TAR, ZIP, BZIP2 and GZIP). Archive types encountered by Portmod vary, but you probably want to have tools that can handle at least RAR, 7z and XZ archives.
- pywin32 - Windows only
- RestrictedPython >= 4.0
- importlib_metadata (for python 3.6 and 3.7)
- argcomplete (optional)
The recommended cross-platform way of installing Portmod is via pip. Note that the
--upgrade flag is used to ensure that you have the latest version.
pip3 install portmod --upgrade
See the following pages for platform-specific installation information
The recommended way to install the development version of Portmod is by pointing pip directly at the repository. Note that this version may be more unstable than the releases.
pip3 install git+https://gitlab.com/portmod/portmod
Command Line Completion
Portmod supports command line tab completion (note: not yet released) using argcomplete. Since Portmod uses entry points, the global autocompletion used by argcomplete doesn't work, so you need to register scripts individually by including the following line in
eval "$(register-python-argcomplete omwmerge)"
Other Supported shells include (see argcomplete readme for details):
- git bash (I.e. for Windows. Requires additional configuration compared to regular bash shells)