3.2. Loading repositories

These tutorials are follow-ups to Creating and configuring a session, you can prepend it directly for a functional piece of code.

3.2.1. Load repositories from system configuration files

 1repo_sack = base.get_repo_sack()
 2
 3# Create repositories from system configuration files.
 4repo_sack.create_repos_from_system_configuration()
 5
 6# If out of date, downloads fresh repositories' metadata and loads the
 7# repositories into memory.
 8#
 9# load_repos() without any arguments says to load both the @System
10# repository (the packages installed on the system, loaded from the rpmdb)
11# and the available repositories.
12repo_sack.load_repos()

3.2.2. Load a custom repository

 1repo_sack = base.get_repo_sack()
 2
 3# Create a new repo with the given id.
 4#
 5# The repo is a weak pointer to an object owned by the repo sack.
 6repo = repo_sack.create_repo("rpm-repo1")
 7
 8# Configure the repo.
 9#
10# Setting at least one of the baseurl, mirrorlist or metalink options is
11# mandatory.
12#
13# baseurl examples:
14# * /absolute/path/
15# * file:///absolute/path/url/
16# * https://example.com/url/
17repo.get_config().baseurl = baseurl
18
19# If out of date, downloads fresh metadata of all available repositories and
20# loads the repositories into memory.
21#
22# `libdnf5.repo.Repo.Type_AVAILABLE` as first argument says to load only the available
23# repositories (repository SYSTEM, that contains installed pacakges, is not loaded).
24repo_sack.load_repos(libdnf5.repo.Repo.Type_AVAILABLE)