How to manage and mirror repositories from the web portal (26.04 and later)¶
Note
This document applies to Landscape Server 26.04 LTS and later. See the 26.04 LTS release notes for details on our changes to repository management in 26.04.
The repository mirroring feature in Landscape lets you mirror Ubuntu and third-party repositories, create local repositories for personal packages, and publish repositories to different targets. This adds an extra layer of control over the software versions available to your client machines. If you’re not familiar with repository mirroring in Landscape, read our explanation before continuing through this how-to guide: Repository mirroring (26.04 LTS and later).
This guide demonstrates how to mirror Ubuntu and other third-party debian repositories. For a complete guide that publishes a mirror to object storage and installs a package from it on a client, see How to set up repository mirroring end-to-end (26.04 and later).
Disk space requirements¶
As of April 2026, these are the estimates for the amount of disk space needed to download the following Ubuntu distributions:
Series |
amd64 |
i386 |
Both |
|---|---|---|---|
Resolute |
150GB |
110GB |
180GB |
Noble |
625GB |
170GB |
680GB |
Jammy |
945GB |
140GB |
975GB |
Focal |
655GB |
115GB |
670GB |
Bionic |
335GB |
155GB |
395GB |
These estimates are a breakdown of the total size of the pockets for the main, restricted, universe, and multiverse components of the amd64 and i386 architectures (release, updates and security pockets). The last column provides an estimate for downloading both the amd64 and i386 architectures. It’s not a total of the amd64 and i386 disk space requirements because it doesn’t duplicate packages that are present in both architectures.
These estimates are only a subset, and it doesn’t include arm and other architectures. Including these will use more disk space.
Note that the restricted component is usually large, and it contains proprietary packages and drivers that aren’t fully open-source (e.g., Nvidia graphics drivers). If you know you won’t need these packages and drivers, you could significantly reduce the size of your mirrors by not mirroring the restricted component.
Create a new mirror¶
To create a new mirror:
From the sidebar, navigate to Repositories > Mirrors
Click Add mirror
Enter the name of the mirror. For example,
noble-backports-mirror.Note: You can’t use the same name for multiple mirrors, so you should make this name unique and descriptive of the repository. If you want to reuse a name later, you’ll have to delete the original mirror.
Select the type of mirror from the Source Type dropdown menu. For example, select Ubuntu archive if you’re mirroring an Ubuntu repository.
In the Source URL field, use the default mirror URL if you’re mirroring an Ubuntu repository. Otherwise, enter the URL for the Debian repository you want to mirror. For example,
https://deb.debian.org/debian/.For signature preserving mirrors, select the Preserve upstream signing key checkbox.
Enter the distribution you want to mirror. If you’re mirroring an Ubuntu repository, select the distribution from the dropdown menu. Otherwise, enter the distribution name. For example,
bookworm.Select the components you want to mirror. If you’re mirroring an Ubuntu repository, select the components from the dropdown menu. Otherwise, enter a comma-separated list of components. For example,
non-free-firmware, main.Select the architectures you want to mirror. If you’re mirroring an Ubuntu repository, select the architectures from the dropdown menu. Otherwise, enter a comma-separated list of architectures. For example,
amd64, arm64.For filtered mirrors, use the Filter text box to narrow down which packages are retrieved instead of mirroring the entire selected component(s).
If you’re not preserving the upstream signing key, and using a third-party repository, provide the ASCII-armored GPG key for the mirror in the Verification GPG key text box.
Use repository snapshots¶
Snapshots are another source you can use to mirror packages. They allow Landscape to mirror packages from the Ubuntu archive at a specific point in time.
To use a snapshot, follow the same process as you would to Create a new mirror, but change the type to Ubuntu Snapshot, and choose a snapshot date.
Create a new local repository¶
To create a new local repository:
From the sidebar, navigate to Repositories > Local repositories
Click Add local repository
Enter the name of the local repository. For example,
my-local-repo.Note: You can’t use the same name for multiple local repositories, so you should make this name unique and descriptive. If you want to reuse a name later, you’ll have to delete the original local repository.
Complete the remaining fields. Note that if you’re mirroring multiple components, they need to be a comma-separated list of components. For example,
non-free-firmware, main.
Create a new publication target¶
To create a new publication target:
From the sidebar, navigate to Repositories > Publication targets
Click Add publication target
Enter the name of the publication target. For example,
s3-target-1.In the Type dropdown menu, select the type of publication target you want to create and enter the required information for your publication target.
Note
If you use a filesystem publication target for a mirror that doesn’t preserve upstream signatures, the target system must have enough storage available for both the synced mirror and the published repository. Plan for roughly double the repository disk space.
Create a new publication¶
To create a new publication:
From the sidebar, navigate to Repositories > Publications
Click Add publication
Enter the name of the publication. For example,
noble-backports-publication.In the Source type dropdown menu, select whether you want to publish a local repository or mirror.
In the Source dropdown menu, select the mirror or local repository you want to publish.
In the Publication target dropdown menu, select the publication target you want to publish to.
To resign packages in your publication target, enter the ASCII-armored GPG private key you want to use in the Signing GPG key text box.
Create a repository profile and associate client machines to the profile¶
A repository profile in Landscape is useful for updating repository configurations. When a machine (instance) is associated with a repository profile, the repository configurations are applied one time. Repository profiles don’t perform ongoing monitoring of repository configurations.
To create a profile:
From the sidebar, go to Repositories > Repository profiles
Click Add repository profile
In the Profile name field, enter a name for this profile. For example,
noble-test.Select Add source to specify a Debian repository for this repository profile.
In the Source name field, enter a name for the source.
Add the
debline for the Debian repository. For example,deb [trusted=yes] https://debarchive-test-bucket.s3.us-west-1.amazonaws.com/ devel main.If the repository’s GPG verification key isn’t already in the client machine’s keyring, provide the verification key in the GPG key field.
Use the Access group dropdown menu and Association category to associate this profile with an access group or specific instances/computers (tags).
Optionally fill out the Description field.
Note that you may want to create multiple repository profiles for different groups of managed instances.
Manage existing repositories¶
Sync a mirror¶
From the sidebar, navigate to Repositories > Mirrors.
Select the mirror you want to sync.
Click Update.
Import packages to a local repository¶
From the sidebar, navigate to Repositories > Local repositories.
Select the local repository where you want to import packages.
Click Import packages, provide the URI for the packages you want to import, then click Import packages.
Publish (or republish) an existing mirror¶
If you’re publishing or republishing a mirror that doesn’t preserve upstream signatures, update the mirror before publishing. For instructions, see To sync a mirror.
From the sidebar, navigate to Repositories > Mirrors.
Select the mirror you want to publish.
Click Publish, then select an existing publication or fill out the required information for a new publication.
Publish (or republish) an existing local repository¶
If the local repository doesn’t contain the packages you want to publish, import the packages before publishing. For instructions, see To import packages into a local repository.
From the sidebar, navigate to Repositories > Local repositories.
Select the local repository you want to publish.
Click Publish, then select an existing publication or fill out the required information for a new publication.