다음을 통해 공유


Snap을 사용하여 .NET SDK 설치

이 문서에서는 .NET SDK 스냅 패키지를 설치하는 방법에 대해 설명합니다. .NET SDK 스냅 패키지는 Canonical에서 제공 및 유지 관리합니다. Snap은 Linux 배포에 기본 제공되는 패키지 관리자의 좋은 대안입니다.

스냅은 다양한 Linux 배포판에서 작동하는 앱과 해당 종속성의 번들입니다. Snap은 Snap 스토어에서 검색해서 설치할 수 있습니다. Snap에 대한 자세한 내용은 Snap 시작하기를 참조하세요.

주의

.NET의 끌기 설치는 .NET 도구를 실행하는 데 문제가 있을 수 있습니다. .NET 도구를 사용하려는 경우 dotnet-install 스크립트 또는 특정 Linux 배포에 대한 패키지 관리자를 사용하여 .NET을 설치하는 것이 좋습니다.

끌기를 통해 .NET을 설치할 때 dotnet watch 명령이 작동하지 않는 것은 알려진 문제입니다.

.NET 도구 또는 dotnet watch 명령을 사용하려는 경우 dotnet-install 스크립트를 사용하여 .NET을 설치하는 것이 좋습니다.

필수 조건

  • 스냅을 지원하는 Linux 배포판.
  • snapd 스냅 디먼.

Linux 배포판에 스냅이 이미 포함되어 있을 수 있습니다. 터미널에서 snap을 실행하여 명령이 작동하는지 확인하세요. 지원되는 Linux 배포판 목록 및 스냅을 설치하는 방법에 대한 지침은 snapd 설치를 참조하세요.

.NET 릴리스

Microsoft는 LTS(장기 지원) 및 STS(표준 기간 지원)라는 두 가지 지원 정책에 따라 .NET을 게시합니다. 모든 릴리스의 품질은 동일합니다. 유일한 차이점은 지원 기간입니다. LTS 릴리스는 3년 동안 무료 지원과 패치를 가져옵니다. STS 릴리스는 18개월 동안 무료 지원 및 패치를 받습니다. 자세한 내용은 .NET 지원 정책을 참조하세요.

현재 Microsoft에서 지원하는 .NET 버전은 다음과 같습니다.

  • 8.0(LTS) - 2026년 11월 10일에 지원이 종료됩니다.
  • 6.0(LTS) - 2024년 11월 12일에 지원이 종료됩니다.

.NET을 빌드하고 릴리스하는 다른 엔터티는 다른 지원 정책을 도입할 수 있습니다. .NET이 지원되는 방식을 이해하려면 이러한 정책과 함께 확인해야 합니다.

1. SDK 설치

.NET SDK용 Snap 패키지는 모두 동일한 식별자 dotnet-sdk로 게시됩니다. 특정 버전의 SDK는 채널을 지정하여 설치할 수 있습니다. SDK에는 SDK에 버전이 지정된 ASP.NET Core 및 .NET 런타임이 모두 포함됩니다.

Snapcraft .NET SDK 패키지 페이지에는 Snapcraft 및 .NET을 설치하는 방법에 대한 배포 관련 지침이 나와 있습니다.

  1. 터미널을 엽니다.

  2. .NET SDK 스냅 패키지를 설치하려면 snap install을 사용합니다. 예를 들어 다음 명령은 기본값인 latest/stable 채널을 설치합니다.

    sudo snap install dotnet-sdk --classic
    
    • --classic 매개 변수는 필수입니다.
    • --channel 매개 변수를 사용하여 설치할 버전을 지정합니다. 이 매개 변수를 생략하면 latest/stable이 사용됩니다. 예를 들어 --channel 8.0/stable은 .NET SDK 8.0을 설치합니다.

dotnet 스냅 별칭이 자동으로 만들어지고 스냅 패키지의 dotnet 명령에 매핑됩니다.

다음 표에는 설치할 수 있는 패키지 채널이 나와 있습니다.

.NET 버전 스냅 패키지 채널
8(LTS) 8.0/stable
latest/stable
lts/stable
7 7.0/stable(지원되지 않음)
6(LTS) 6.0/stable
5 5.0/stable(지원되지 않음)
3.1 3.1/stable(지원되지 않음)
2.1 2.1/stable(지원되지 않음)

2. 설치 위치 내보내기

DOTNET_ROOT 환경 변수는 도구에서 .NET이 설치된 위치를 확인하는 데 자주 사용됩니다. .NET이 Snap을 통해 설치되면 이 환경 변수는 구성되지 않습니다. 프로필에서 DOTNET_ROOT 환경 변수를 구성해야 합니다. 스냅 경로는 /snap/{package}/current 형식을 사용합니다.

export DOTNET_ROOT=/snap/dotnet-sdk/current

환경 변수를 영구적으로 내보내기

앞의 export 명령은 실행된 터미널 세션에 대한 환경 변수만 설정합니다.

셸 프로필을 편집하여 명령을 영구적으로 추가할 수 있습니다. Linux에서는 다양한 셸을 사용할 수 있으며 각 셸에는 서로 다른 프로필이 있습니다. 예시:

  • Bash 셸: ~/.bash_profile, ~/.bashrc
  • Korn 셸: ~/.kshrc 또는 .profile
  • Z 셸: _~/.zshrc* 또는 .zprofile

셸에 적절한 원본 파일을 편집하고 export DOTNET_ROOT=/snap/dotnet-sdk/current를 추가합니다.

3. .NET CLI 사용

터미널을 열고 dotnet을 입력합니다.

dotnet

다음 출력이 표시됩니다.

Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

.NET CLI 사용 방법을 알아보려면 .NET CLI 개요를 참조하세요.

문제 해결

dotnet 터미널 명령이 작동하지 않음

스냅 패키지는 패키지에서 제공하는 명령에 별칭을 매핑할 수 있습니다. 기본적으로 .NET SDK 스냅 패키지는 dotnet 명령에 대한 별칭을 만듭니다. 별칭이 만들어지지 않았거나 이전에 제거된 경우 다음 명령을 통해 별칭을 매핑하는 방법을 확인할 수 있습니다.

sudo snap alias dotnet-sdk.dotnet dotnet

WSL2에서 Snap을 설치할 수 없음

스냅을 설치하려면 먼저 WSL2 인스턴스에서 systemd를 활성화해야 합니다.

  1. 선택한 텍스트 편집기에서 /etc/wsl.conf를 엽니다.

  2. 다음 구성에 붙여넣습니다.

    [boot]
    systemd=true
    
  3. 파일을 저장하고 PowerShell을 통해 WSL2 인스턴스를 다시 시작합니다. wsl.exe --shutdown 명령 사용

dotnet 명령 또는 SDK를 확인할 수 없음

Visual Studio Code의 확장 또는 코드 IDE 같은 다른 앱에서 .NET SDK의 위치를 확인하는 것이 일반적입니다. 일반적으로 검색은 DOTNET_ROOT 환경 변수를 확인하거나 dotnet 실행 파일이 있는 위치를 파악하는 방식으로 수행됩니다. 스냅 설치 .NET SDK는 이러한 앱을 혼동시킬 수 있습니다. 이러한 앱이 .NET SDK를 확인할 수 없는 경우 다음 메시지 중 하나와 유사한 오류가 표시됩니다.

  • 지정된 SDK 'Microsoft.NET.Sdk'를 찾을 수 없습니다.
  • 지정된 SDK 'Microsoft.NET.Sdk.Web'을 찾을 수 없습니다.
  • 지정된 SDK 'Microsoft.NET.Sdk.Razor'를 찾을 수 없습니다.

문제를 해결하려면 다음 단계를 완료합니다.

  1. DOTNET_ROOT 환경 변수를 영구적으로 내보내는지 확인합니다.

  2. 스냅 dotnet 실행 파일을 프로그램이 찾고 있는 위치에 기호 링크로 연결해 봅니다.

    dotnet 명령에서 찾고 있는 두 가지 일반적인 경로는 다음과 같습니다.

    • /usr/local/bin/dotnet
    • /usr/share/dotnet

    다음 명령을 사용하여 스냅 패키지에 대한 기호 링크를 만듭니다.

    ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
    

TLS/SSL 인증서 오류

Snap을 통해 .NET이 설치될 경우, 일부 배포판에서는 .NET TLS/SSL 인증서가 발견되지 않을 수 있으며 restore 도중에 오류가 발생할 수 있습니다.

Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
  Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]

이 문제를 해결하려면 다음과 같은 몇 가지 환경 변수를 설정합니다.

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

인증서 위치는 배포판에 따라 다릅니다. 문제가 관찰된 배포판의 위치는 다음과 같습니다.

배포 위치
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt