-
Notifications
You must be signed in to change notification settings - Fork 21
Add directory structure explainer #66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,7 +5,7 @@ author: mattwojo | |
| ms.author: mattwoj | ||
| manager: jken | ||
| ms.topic: article | ||
| ms.date: 05/07/2025 | ||
| ms.date: 10/01/2025 | ||
| --- | ||
|
|
||
| # Linux Software Repository for Microsoft Products | ||
|
|
@@ -24,6 +24,22 @@ The Linux Software Repository can be configured to automatically install the Lin | |
| > Optionally, if you prefer manual configuration, the Linux Software Repository configuration files are available at [https://packages.microsoft.com/config](https://packages.microsoft.com/config/). The name and location of these files can be located using the following URI naming convention: | ||
| `https://packages.microsoft.com/config/<Distribution>/<Version>/prod.(repo|list)` | ||
|
|
||
| ### Directory structure | ||
|
|
||
| At the root of packages.microsoft.com, you’ll see folders like: | ||
|
|
||
| - `/config/<distro>/<version>/prod.list`: Contains repo configuration files for each supported distribution. | ||
| - `/repos/`: Contains product-specific repositories (for example, edge, azure-cli, microsoft-prod). | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Technically, But I'd also recommend adding an item here to say there's also There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| - `/ubuntu/`: Contains distribution-specific repos for Microsoft packages that integrate with Ubuntu’s APT system. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe changing this to:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
|
||
| A few things to keep in mind regarding the packages.microsoft.com repo structure: | ||
|
|
||
| - The packages.microsoft.com repository is public and designed for programmatic consumption by package managers, not for manual browsing, though directory listing is enabled for convenience. | ||
| - The repos tree is product-centric, not distribution-centric. For example: `repos/edge/`, `repos/azure-cli/`, repos/microsoft-prod/', etc. Each contains metadata for multiple distributions, so the same product repo can serve Ubuntu, Debian, etc. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| - This differs from Ubuntu’s pool/main structure, which is strictly tied to Debian policy and archive layout.Ubuntu’s main pool is controlled by Canonical and only includes open-source or vetted packages, so proprietary software, such as Microsoft Edge, cannot be included there. This separation ensures Microsoft is able to directly provide updates and signing keys, as well as compliance with licensing (Microsoft Edge is closed-source). It also enables faster delivery of new versions without waiting for Ubuntu’s release cycle. | ||
| - Microsoft uses a centralized model rather than duplicating packages under each `distro` folder. This avoids redundancy and simplifies publishing across multiple Linux distributions. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not totally sure I understand what this means? Teams at Microsoft can and do publish different packages for different distros and distro versions.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess this is maybe meant to refer to repos under There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Drop. |
||
| - When you install the Microsoft repo config (packages-microsoft-prod.deb), it adds the correct deb `[arch=amd64] https://packages.microsoft.com/repos/edge` stable main line for your Linux distribution. APT then uses Microsoft’s metadata (Release, Packages.gz) to resolve dependencies. The actual `.deb` files live under `repos/edge/pool/main/...`, but you should never hardcode those paths because the APT package manager handles it. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of saying that the repo config packages adds a line..., I would just say that the deb package adds a .list file to /etc/apt/sources.list.d/ for the repository. Also, a couple things here that might be worth mentioning:
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For yum repos, the .list file equivalent would be a .repo file. You can a few here: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
|
||
| ### Examples of available Microsoft products in the Linux Repository | ||
|
|
||
| The following Microsoft products are a few examples that offer Linux versions supported for install using the Linux Repository (package.microsoft.com). See the associated documentation link for more specific installation steps. | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/config/<distro>/<version>/packages-microsoft-prod.[rpm|deb]: Provides the.listor.repofile to enable the distribution-specific repository for each system, as well as the appropriate signing key. If more a manual or non-default (for example, enabling the early-access not-yet-production "insiders" repos) approach is desired then individual.listor.repofiles are available in this directory.