Загрузка данных
Да. Для **строго определённой версии 9.0.101** лучше использовать `dotnet-install.sh` или скачать архив вручную. Установка через `apt` обычно ставит последнюю доступную версию ветки .NET 9, а не обязательно `9.0.101`.
### Вариант 1: официальный скрипт установки
```bash
sudo apt-get update
sudo apt-get install -y curl ca-certificates
curl -fsSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh \
--version 9.0.101 \
--install-dir "$HOME/.dotnet"
```
Добавьте .NET в текущую оболочку:
```bash
export DOTNET_ROOT="$HOME/.dotnet"
export PATH="$DOTNET_ROOT:$PATH"
dotnet --info
```
Чтобы настройки сохранялись после перезагрузки:
```bash
cat >> ~/.bashrc <<'EOF'
export DOTNET_ROOT="$HOME/.dotnet"
export PATH="$DOTNET_ROOT:$PATH"
EOF
source ~/.bashrc
```
Для установки системно, например в `/usr/share/dotnet`:
```bash
sudo ./dotnet-install.sh \
--version 9.0.101 \
--install-dir /usr/share/dotnet
sudo ln -sf /usr/share/dotnet/dotnet /usr/local/bin/dotnet
```
### Вариант 2: скачать tar.gz вручную
Для обычного сервера с архитектурой `x86_64`:
```bash
uname -m
```
Если вывод `x86_64`, скачайте архив:
```bash
curl -fL \
-o dotnet-sdk.tar.gz \
https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.101/dotnet-sdk-9.0.101-linux-x64.tar.gz
```
Установите:
```bash
sudo mkdir -p /usr/share/dotnet
sudo tar -xzf dotnet-sdk.tar.gz -C /usr/share/dotnet
sudo ln -sf /usr/share/dotnet/dotnet /usr/local/bin/dotnet
```
Проверьте:
```bash
dotnet --version
```
Ожидаемый результат:
```text
9.0.101
```
Для ARM64 используйте другой архив:
```bash
https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.101/dotnet-sdk-9.0.101-linux-arm64.tar.gz
```
### Вариант 3: скачать на другом компьютере и передать на сервер
Если сервер не имеет доступа к интернету:
1. На компьютере с интернетом скачайте нужный архив.
2. Передайте его через `scp`:
```bash
scp dotnet-sdk-9.0.101-linux-x64.tar.gz user@server:/tmp/
```
3. На сервере распакуйте:
```bash
sudo mkdir -p /usr/share/dotnet
sudo tar -xzf /tmp/dotnet-sdk-9.0.101-linux-x64.tar.gz \
-C /usr/share/dotnet
sudo ln -sf /usr/share/dotnet/dotnet /usr/local/bin/dotnet
```
### Вариант 4: через Microsoft APT Repository
Этот способ удобен, но не гарантирует установку именно патч-версии `9.0.101`.
Для Ubuntu 22.04:
```bash
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-9.0
```
Для Ubuntu 24.04 замените `22.04` на `24.04`:
```bash
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-9.0
```
### Если загрузка не работает
Проверьте отдельно DNS, HTTPS и доступ к URL:
```bash
curl -I https://dot.net/v1/dotnet-install.sh
curl -I https://builds.dotnet.microsoft.com
getent hosts builds.dotnet.microsoft.com
```
Если сервер работает через прокси:
```bash
export HTTPS_PROXY=http://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080
```
Если `curl` падает из-за сертификатов:
```bash
sudo apt-get install --reinstall ca-certificates
sudo update-ca-certificates
```
Если загрузка с `builds.dotnet.microsoft.com` блокируется, попробуйте альтернативный CDN:
```bash
curl -fL \
-o dotnet-sdk.tar.gz \
https://dotnetcli.azureedge.net/dotnet/Sdk/9.0.101/dotnet-sdk-9.0.101-linux-x64.tar.gz
```
Для проекта можно зафиксировать SDK в `global.json`:
```json
{
"sdk": {
"version": "9.0.101",
"rollForward": "latestPatch"
}
}
```
На практике для сервера без доступа к Microsoft-сайтам наиболее надёжный способ — скачать tar.gz на другой машине и передать его через `scp`.