Загрузка данных


Да. Для **строго определённой версии 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`.