Поделиться через


Установка .NET в Linux с помощью скрипта установки или извлечения двоичных файлов

В этой статье показано, как установить пакет SDK для .NET или среду выполнения .NET в Linux с помощью скрипта установки или извлечения двоичных файлов. Список дистрибутивов, поддерживающих встроенный диспетчер пакетов, см. в разделе Установка .NET в Linux.

Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.

dotnet --list-sdks Используйте команды, dotnet --list-runtimes чтобы узнать, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.

Выпуски .NET

Существует два типа поддерживаемых выпусков, выпусков долгосрочной поддержки (LTS) или стандартной поддержки терминов (STS). Качество всех выпусков одинаково. Единственное различие заключается в продолжительности поддержки. Выпуски LTS получают бесплатную поддержку и исправления в течение 3 лет. Выпуски STS получают бесплатную поддержку и исправления в течение 18 месяцев. Дополнительные сведения см. в статье о политике поддержки .NET.

В следующей таблице перечислены сведения о состоянии поддержки каждой версии .NET (и .NET Core):

✔️ Поддерживается ❌ Не поддерживается
8 (LTS) 7
6 (LTS) 5
3.1
3.0
2,2
2.1
2.0
1,1
1.0

Зависимости

В некоторых случаях, например при установке .NET вручную, некоторые зависимости могут не устанавливаться. Ниже перечислены дистрибутивы Linux, которые поддерживаются корпорацией Майкрософт и для которых может потребоваться установка зависимостей. Дополнительные сведения см. на странице, посвященной соответствующему дистрибутиву:

Общие сведения о зависимостях см. в статье об автономных приложениях Linux.

Зависимости RPM

Если ваш дистрибутив не указан в приведенном выше списке и построен на основе RPM, могут потребоваться следующие зависимости:

  • krb5-libs
  • libicu
  • openssl-libs

Зависимости DEB

Если ваш дистрибутив не указан в приведенном выше списке и построен на основе Debian, могут потребоваться следующие зависимости:

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu70
  • libssl3
  • libstdc++6
  • zlib1g

Общие зависимости

Если приложение .NET использует сборку System.Drawing.Common , необходимо также установить libgdiplus. Так как System.Drawing.Common больше не поддерживается в Linux, это работает только в .NET 6 и требует установки System.Drawing.EnableUnixSupport параметра конфигурации среды выполнения.

Как правило, можно установить последнюю версию libgdiplus , добавив репозиторий Mono в систему.

Установка с помощью сценария

Сценарии dotnet-install используются для автоматизации установок пакета SDK и среды выполнения и осуществления таких установок без прав администратора. Вы можете скачать скрипт из https://dot.net/v1/dotnet-install.sh. При установке .NET таким образом необходимо установить зависимости, необходимые дистрибутиву Linux. Используйте ссылки в статье "Установка .NET в Linux " для конкретного дистрибутива Linux.

Внимание

Для выполнения скрипта требуется Bash.

Скрипт можно скачать с помощью wget:

wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh

Перед выполнением этого скрипта убедитесь, что вы предоставьте этому скрипту разрешение на выполнение в качестве исполняемого файла:

chmod +x ./dotnet-install.sh

Скрипт по умолчанию используется для установки последней долгосрочной версии пакета SDK (LTS), которая является .NET 8. Чтобы установить последний выпуск, который может не быть версией LTS, используйте --version latest этот параметр.

./dotnet-install.sh --version latest

Чтобы вместо пакета SDK установить среду выполнения .NET, используйте параметр --runtime.

./dotnet-install.sh --version latest --runtime aspnetcore

Можно установить определенную основную версию с параметром --channel , чтобы указать определенную версию. Следующая команда устанавливает пакет SDK для .NET 8.0.

./dotnet-install.sh --channel 8.0

Дополнительные сведения см. в статье Справка по скриптам dotnet-install.

Сведения о включении .NET в командной строке см. в разделе "Настройка переменных среды на всей системе".

Сведения об использовании .NET CLI см. в обзоре .NET CLI.

Установка вручную

В качестве альтернативы диспетчерам пакетов можно скачать и вручную установить пакет SDK и среду выполнения. Установка вручную как правило выполняется в рамках тестирования непрерывной интеграции или в неподдерживаемом дистрибутиве Linux. В большинстве случаев разработчикам и пользователям рекомендуется использовать диспетчер пакетов.

Скачайте двоичный выпуск для пакета SDK или среды выполнения на одном из следующих сайтов. Пакет SDK для .NET включает соответствующую среду выполнения:

Извлеките скачанный файл и используйте export команду, чтобы задать DOTNET_ROOT расположение извлеченной папки, а затем убедитесь, что .NET находится в PATH. DOTNET_ROOT Экспорт делает команды .NET CLI доступными в терминале. Дополнительные сведения о переменных среды .NET см. в статье .NET SDK и переменные среды CLI.

Различные версии .NET можно извлечь в одну и ту же папку, которая сосуществует параллельно.

Пример

Следующие команды используют Bash для задания переменной DOTNET_ROOT среды текущего рабочего каталога, за которым следует .dotnet. Этот каталог создается, если он не существует. Переменная DOTNET_FILE среды — это имя файла двоичного выпуска .NET, который требуется установить. Этот файл извлекается в DOTNET_ROOT каталог. В DOTNET_ROOT переменную среды добавляются PATH каталог и его tools подкаталог.

Внимание

При выполнении этих команд не забудьте изменить DOTNET_FILE значение на имя загруженного двоичного файла .NET.

DOTNET_FILE=dotnet-sdk-8.0.100-linux-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet

mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"

export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

В одной папке можно установить несколько версий .NET.

Вы также можете установить .NET в домашний каталог, определяемый переменной HOME или ~ путем:

export DOTNET_ROOT=$HOME/.dotnet

Сведения об использовании .NET CLI см. в обзоре .NET CLI.

Проверка скачанных двоичных файлов

После скачивания установщика или двоичного выпуска убедитесь, что файл не был изменен или поврежден. Вы можете проверить контрольную сумму на компьютере, а затем сравнить ее с тем, что было сообщено на веб-сайте скачивания.

При скачивании файла с официальной страницы скачивания контрольная сумма для файла отображается в текстовом поле. Нажмите кнопку "Копировать", чтобы скопировать значение контрольной суммы в буфер обмена.

Страница загрузки .NET с контрольной суммой

sha512sum Используйте команду для печати контрольной суммы скачаемого файла. Например, следующая команда сообщает контрольную сумму файла dotnet-sdk-8.0.100-linux-x64.tar.gz :

$ sha512sum dotnet-sdk-8.0.100-linux-x64.tar.gz
13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5  dotnet-sdk-8.0.100-linux-x64.tar.gz

Сравните контрольную сумму со значением, предоставленным сайтом скачивания.

Внимание

Несмотря на то, что файл Linux показан в этих примерах, эта информация одинаково применяется к macOS.

Использование файла контрольной суммы для проверки

Заметки о выпуске .NET содержат ссылку на файл контрольной суммы, который можно использовать для проверки скачаированного файла. Ниже описано, как скачать файл контрольной суммы и проверить двоичный файл установки .NET:

  1. Страница заметок о выпуске для .NET 8 на сайте GitHub https://github.com/dotnet/core/tree/main/release-notes/8.0#releases содержит раздел с именем "Выпуски". Таблица в этом разделе ссылается на файлы загрузки и контрольные суммы для каждого выпуска .NET 8:

    Таблица версий заметок о выпуске github для .NET

  2. Выберите ссылку для скачаемой версии .NET.

    Предыдущий раздел использовал пакет SDK для .NET 8.0.100, который находится в выпуске .NET 8.0.0.

  3. На странице выпуска можно увидеть версию пакета SDK для .NET и среды выполнения .NET, а также ссылку на файл контрольной суммы:

    Таблица загрузки с контрольными суммами для .NET

  4. Щелкните правой кнопкой мыши ссылку "Контрольная сумма " и скопируйте ссылку на буфер обмена.

  5. Откройте окно терминала.

  6. Используется curl -O {link} для скачивания файла контрольной суммы.

    Замените ссылку в следующей команде на скопированную ссылку.

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  7. При использовании файла контрольной суммы и файла выпуска .NET, скачаемого в один каталог, используйте sha512sum -c {file} --ignore-missing команду для проверки скачаемого файла.

    При прохождении проверки вы увидите файл, напечатанный с состоянием OK :

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: OK
    

    Если файл помечен как FAILED, скачанный файл недействителен и не должен использоваться.

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: FAILED
    sha512sum: WARNING: 1 computed checksum did NOT match
    sha512sum: 8.0.0-sha.txt: no file was verified
    

Настройка системных переменных среды

Если вы использовали предыдущий сценарий установки, переменные применяются только к текущему сеансу терминала. Добавьте их в профиль оболочки. Существует множество различных оболочков, доступных для Linux, и каждый из них имеет другой профиль. Например:

  • Оболочка Bash: ~/.bash_profile или ~/.bashrc
  • Оболочка Korn: ~/.kshrc или .profile
  • Оболочка Z: ~/.zshrc или .zprofile

Задайте следующие две переменные среды в профиле оболочки:

  • DOTNET_ROOT

    Эта переменная установлена в папке .NET, например $HOME/.dotnet:

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    Эта переменная должна включать как папку, DOTNET_ROOT так и папку DOTNET_ROOT/tools :

    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

Следующие шаги