Установка .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.
Проверка скачанных двоичных файлов
После скачивания установщика или двоичного выпуска убедитесь, что файл не был изменен или поврежден. Вы можете проверить контрольную сумму на компьютере, а затем сравнить ее с тем, что было сообщено на веб-сайте скачивания.
При скачивании файла с официальной страницы скачивания контрольная сумма для файла отображается в текстовом поле. Нажмите кнопку "Копировать", чтобы скопировать значение контрольной суммы в буфер обмена.
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:
Страница заметок о выпуске для .NET 8 на сайте GitHub https://github.com/dotnet/core/tree/main/release-notes/8.0#releases содержит раздел с именем "Выпуски". Таблица в этом разделе ссылается на файлы загрузки и контрольные суммы для каждого выпуска .NET 8:
Выберите ссылку для скачаемой версии .NET.
Предыдущий раздел использовал пакет SDK для .NET 8.0.100, который находится в выпуске .NET 8.0.0.
На странице выпуска можно увидеть версию пакета SDK для .NET и среды выполнения .NET, а также ссылку на файл контрольной суммы:
Щелкните правой кнопкой мыши ссылку "Контрольная сумма " и скопируйте ссылку на буфер обмена.
Откройте окно терминала.
Используется
curl -O {link}
для скачивания файла контрольной суммы.Замените ссылку в следующей команде на скопированную ссылку.
curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
При использовании файла контрольной суммы и файла выпуска .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