Skip to content
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

Linux packages JSON format #9412

Merged
merged 35 commits into from
Jul 22, 2024
Merged
Changes from 7 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
3f99a91
Add packages JSON file
richlander Jul 15, 2024
8b7ee12
Reformat document
richlander Jul 15, 2024
893f323
Remove zlib
richlander Jul 15, 2024
41671da
Remove 'Extra' concept
richlander Jul 16, 2024
095aef4
Add reference doc
richlander Jul 16, 2024
2139d47
Generate markdown
richlander Jul 16, 2024
4450ffc
Add trailing CR
richlander Jul 16, 2024
0aa6b09
Apply suggestions from code review
richlander Jul 16, 2024
d513a42
Update schema per feedback
richlander Jul 16, 2024
b1d75dc
Remove commands property
richlander Jul 16, 2024
827b472
Update markdown to commands schemea change
richlander Jul 17, 2024
489d5cd
Add formats description
richlander Jul 17, 2024
e0f943a
Change title
richlander Jul 17, 2024
c5a68e8
Add more examples
richlander Jul 17, 2024
bd86084
Add formats link to README
richlander Jul 17, 2024
1ce34c5
Apply suggestions from code review
richlander Jul 17, 2024
03af9b6
Update schema with descriptions
richlander Jul 17, 2024
0d3bf12
Apply suggestions from code review
richlander Jul 19, 2024
77f97ac
Rename files
richlander Jul 19, 2024
c502763
Add eol-date
richlander Jul 19, 2024
6f99007
Update README files
richlander Jul 19, 2024
9c90a9f
Update schema links
richlander Jul 19, 2024
837b149
Update link titles
richlander Jul 19, 2024
5ffe062
Update per feedback
richlander Jul 19, 2024
f46f070
Update per feedback
richlander Jul 19, 2024
00ad51b
Updates per feedback
richlander Jul 19, 2024
bf18e05
Update description
richlander Jul 19, 2024
0babb5d
Sort packages
richlander Jul 19, 2024
27ac344
Remove Debian 11
richlander Jul 20, 2024
1b75a09
Add min-version information
richlander Jul 20, 2024
45c0093
Change to link
richlander Jul 20, 2024
3a8b35f
Update markdown
richlander Jul 20, 2024
1a82e29
Update schema per feedback
richlander Jul 20, 2024
608f264
Apply suggestions from code review
richlander Jul 22, 2024
cb34996
Update markdown
richlander Jul 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
385 changes: 385 additions & 0 deletions release-notes/9.0/linux-packages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,385 @@
{
"channel-version": "9.0",
"last-updated": "2024-07-01",
"packages": [
{
"id": "libc",
"name": "C Library",
"references": [
"https://www.gnu.org/software/libc/libc.html",
"https://musl.libc.org/"
],
"required": [
"CoreCLR",
"Native AOT"
]
},
{
"id": "libgcc",
"name": "GCC low-level runtime library",
"references": [
"https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html"
],
"required": [
"CoreCLR",
"Native AOT"
]
},
{
"id": "ca-certificates",
"name": "CA Certificates",
"references": [
"https://www.redhat.com/sysadmin/ca-certificates-cli"
],
"required": [
"HTTPS"
]
},
{
"id": "libssl",
"name": "OpenSSL",
"references": [
"https://www.openssl.org/"
],
"required": [
"HTTPS",
"Cryptography"
]
},
{
"id": "libstdc++",
"name": "C++ Library",
"references": [
"https://gcc.gnu.org/onlinedocs/libstdc++/"
],
"required": [
"CoreCLR"
]
},
{
"id": "libicu",
"name": "ICU",
"references": [
"http://icu.unicode.org",
"https://github.com/dotnet/runtime/blob/main/docs/design/features/globalization-invariant-mode.md"
],
"required": [
"Globalization"
]
},
{
"id": "tzdata",
"name": "tz database",
"references": [
"https://data.iana.org/time-zones/tz-link.html"
],
"required": [
"Globalization"
]
},
{
"id": "krb5",
"name": "Kerberos",
"references": [
"http://web.mit.edu/kerberos"
],
"required": [
"Kerberos networking"
]
}
],
"distributions": [
{
"name": "Alpine",
"commands": [
"sudo apk add"
],
"releases": [
{
"name": "Alpine 3.20",
"release": "3.20",
"packages": [
{
"id": "libgcc",
"name": "libgcc"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl3"
},
{
"id": "libstdc++",
"name": "libstdc++"
},
{
"id": "icu",
"name": "icu-libs"
},
{
"id": "icu",
"name": "icu-data-full"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
},
{
"name": "Alpine 3.19",
"release": "3.19",
"packages": [
{
"id": "libgcc",
"name": "libgcc"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl3"
},
{
"id": "libstdc++",
"name": "libstdc++"
},
{
"id": "icu",
"name": "icu-libs"
},
{
"id": "icu",
"name": "icu-data-full"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
}
]
},
{
"name": "Debian",
"commands": [
"sudo apt-get update",
"sudo apt-get install -y --no-install-recommends"
],
"releases": [
{
"name": "Debian 12 (Bookworm)",
"release": "12",
"packages": [
{
"id": "libc",
"name": "libc6"
},
{
"id": "libgcc",
"name": "libgcc-s1"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl3"
},
{
"id": "libstdc++",
"name": "libstdc++6"
},
{
"id": "libicu",
"name": "libicu72"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
},
{
"name": "Debian 11 (Bullseye)",
"release": "11",
"packages": [
{
"id": "libc",
"name": "libc6"
},
{
"id": "libgcc",
"name": "libgcc1"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl1.1"
},
{
"id": "libstdc++",
"name": "libstdc++6"
},
{
"id": "libicu",
"name": "libicu67"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
}
]
},
{
"name": "Ubuntu",
"commands": [
"sudo apt-get update",
"sudo apt-get install -y --no-install-recommends"
],
"releases": [
{
"name": "Ubuntu 24.10 (Oracular Oriole)",
"release": "24.10",
"packages": [
{
"id": "libc",
"name": "libc6"
},
{
"id": "libgcc",
"name": "libgcc-s1"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl3t64"
},
{
"id": "libstdc++",
"name": "libstdc++6"
},
{
"id": "libicu",
"name": "libicu74"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
},
{
"name": "Ubuntu 24.04 (Noble Numbat)",
"release": "24.04",
"packages": [
{
"id": "libc",
"name": "libc6"
},
{
"id": "libgcc",
"name": "libgcc-s1"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl3t64"
},
{
"id": "libstdc++",
"name": "libstdc++6"
},
{
"id": "libicu",
"name": "libicu74"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
},
{
"name": "Ubuntu 22.04.4 LTS (Jammy Jellyfish)",
"release": "22.04",
"packages": [
{
"id": "libc",
"name": "libc6"
},
{
"id": "libgcc",
"name": "libgcc-s1"
},
{
"id": "ca-certificates",
"name": "ca-certificates"
},
{
"id": "libssl",
"name": "libssl3"
},
{
"id": "libstdc++",
"name": "libstdc++6"
},
{
"id": "libicu",
"name": "libicu70"
},
{
"id": "tzdata",
"name": "tzdata"
},
{
"id": "krb5",
"name": "libgssapi-krb5-2"
}
]
}
]
}
]
}
194 changes: 105 additions & 89 deletions release-notes/9.0/linux-packages.md
Original file line number Diff line number Diff line change
@@ -1,120 +1,136 @@
# .NET 9 Linux package dependencies
# .NET 9 Required Packages

.NET 9 has several dependencies that must be satisfied to run .NET apps. The commands to install these libraries are listed for multiple Linux distributions.
Several packages must be installed to run .NET apps and the .NET SDK. This is handled automatically if .NET is [installed through archive packages](../../linux.md).

Feel free to contribute packages for distributions not (yet) listed in this document, including ones not supported by the .NET Team.
## Package Overview

Tips:
The following table lists required packages, including the scenarios by which they are needed.

- [runtime-deps container images](https://github.com/dotnet/dotnet-docker/tree/main/src/runtime-deps) install these same packages. You can look at those dockerfiles.
- [pkgs.org](https://pkgs.org/) is a useful site for searching for packages, to find the one for your distribution.
Id | Name | Required | References
--------------- | --------- | ------------- | ------------------------------
[libc][0] | C Library | CoreCLR<br>Native AOT | https://www.gnu.org/software/libc/libc.html<br>https://musl.libc.org/
[libgcc][1] | GCC low-level runtime library | CoreCLR<br>Native AOT | https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html
[ca-certificates][2] | CA Certificates | HTTPS | https://www.redhat.com/sysadmin/ca-certificates-cli
[libssl][3] | OpenSSL | HTTPS<br>Cryptography | https://www.openssl.org/
[libstdc++][4] | C++ Library | CoreCLR | https://gcc.gnu.org/onlinedocs/libstdc++/
[libicu][5] | ICU | Globalization | http://icu.unicode.org<br>https://github.com/dotnet/runtime/blob/main/docs/design/features/globalization-invariant-mode.md
[tzdata][6] | tz database | Globalization | https://data.iana.org/time-zones/tz-link.html
[krb5][7] | Kerberos | Kerberos networking | http://web.mit.edu/kerberos

## Packages
[0]: https://pkgs.org/search/?q=libc
[1]: https://pkgs.org/search/?q=libgcc
[2]: https://pkgs.org/search/?q=ca-certificates
[3]: https://pkgs.org/search/?q=libssl
[4]: https://pkgs.org/search/?q=libstdc++
[5]: https://pkgs.org/search/?q=libicu
[6]: https://pkgs.org/search/?q=tzdata
[7]: https://pkgs.org/search/?q=krb5

.NET depends on the following packages.
## Alpine

- [GNU C Library (glibc)](https://www.gnu.org/software/libc/libc.html)
- [GNU C++ Library](https://gcc.gnu.org/onlinedocs/libstdc++/)
- [GCC low-level runtime library](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html)
- [ICU](http://site.icu-project.org/)
- [Kerberos](http://web.mit.edu/kerberos/)
- [Open SSL](https://www.openssl.org/)
- [zlib compression library](https://www.zlib.net/)
### Alpine 3.20

You do not need to install ICU if you [enable globalization invariant mode](https://github.com/dotnet/runtime/blob/main/docs/design/features/globalization-invariant-mode.md#enabling-the-invariant-mode).
```bash
sudo apk add && \
libgcc \
ca-certificates \
libssl3 \
libstdc++ \
icu-libs \
icu-data-full \
tzdata \
libgssapi-krb5-2
```

If your app relies on `https` endpoints, you'll also need to install `ca-certificates`.
### Alpine 3.19

## Alpine 3.19
```bash
sudo apk add \
libgcc \
libssl3 \
libstdc++ \
zlib
```
## Debian 12 "bookworm"
sudo apk add && \
libgcc \
ca-certificates \
libssl3 \
libstdc++ \
icu-libs \
icu-data-full \
tzdata \
libgssapi-krb5-2
```

## Debian

### Debian 12 (Bookworm)

```bash
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libc6 \
libgcc-s1 \
libicu72 \
libssl3 \
libstdc++6 \
tzdata \
zlib1g \
```
## Debian 11 "Bullseye"
``` bash
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
sudo apt-get update && \
sudo apt-get install -y --no-install-recommends && \
libc6 \
libgcc1 \
libgssapi-krb5-2 \
libicu67 \
libssl1.1 \
libgcc-s1 \
ca-certificates \
libssl3 \
libstdc++6 \
zlib1g
libicu72 \
tzdata \
libgssapi-krb5-2
```

## Ubuntu 24.04 "Noble"
### Debian 11 (Bullseye)

```bash
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
sudo apt-get update && \
sudo apt-get install -y --no-install-recommends && \
libc6 \
libgcc-s1 \
libicu74 \
libssl3 \
libgcc1 \
ca-certificates \
libssl1.1 \
libstdc++6 \
zlib1g
libicu67 \
tzdata \
libgssapi-krb5-2
```

## Ubuntu 23.10"Mantic"
``` bash
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libc6 \
libgcc-s1 \
libicu72 \
libssl3 \
libstdc++6 \
tzdata \
zlib1g \
```
## Ubuntu 22.04 "Jammy"

``` bash
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libc6 \
libgcc-s1 \
libicu70 \
libssl3 \
libstdc++6 \
tzdata \
zlib1g \
```
## Ubuntu

### Ubuntu 24.10 (Oracular Oriole)

```bash
sudo apt-get update && \
sudo apt-get install -y --no-install-recommends && \
libc6 \
libgcc-s1 \
ca-certificates \
libssl3t64 \
libstdc++6 \
libicu74 \
tzdata \
libgssapi-krb5-2
```

## Community supported distros
### Ubuntu 24.04 (Noble Numbat)

The following distros are not supported by the .NET team. The following package information is provided on an as-is basis. Feel free to contribute package information for the distro you use .NET with if it isn't listed.
```bash
sudo apt-get update && \
sudo apt-get install -y --no-install-recommends && \
libc6 \
libgcc-s1 \
ca-certificates \
libssl3t64 \
libstdc++6 \
libicu74 \
tzdata \
libgssapi-krb5-2
```

### Arch Linux
### Ubuntu 22.04.4 LTS (Jammy Jellyfish)

```bash
sudo pacman -Sy \
glibc \
gcc \
krb5 \
icu \
openssl \
libc++ \
zlib
sudo apt-get update && \
sudo apt-get install -y --no-install-recommends && \
libc6 \
libgcc-s1 \
ca-certificates \
libssl3 \
libstdc++6 \
libicu70 \
tzdata \
libgssapi-krb5-2
```

This set of packages was tested on the Arch and Manjaro.