Snap을 사용하여 .NET SDK 설치

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

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

중요함

Snap으로 .NET 설치하는 경우 Snap을 사용하여 모든 .NET 설치를 관리합니다. 혼합 방법을 사용하면 충돌이 발생할 수 있으므로 패키지 관리자 또는 스크립팅된 설치와 같은 다른 설치 방법과 Snap을 혼합하지 마세요.

주의

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

snap을 통해 .NET 설치될 때 dotnet watch 명령이 작동하지 않는 알려진 문제입니다.

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

필수 조건

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

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

.NET 릴리스

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

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

  • 10.0(LTS) - 지원은 2028년 11월 14일에 종료됩니다.
  • 9.0(STS) - 지원은 2026년 11월 10일에 종료됩니다.
  • 8.0(LTS) - 2026년 11월 10일에 지원이 종료됩니다.

.NET 빌드하고 릴리스하는 다른 엔터티는 다른 지원 정책을 도입할 수 있습니다. .NET 지원되는 방법을 이해하려면 해당 사용자와 함께 확인해야 합니다.

1. SDK 설치

이 방법을 사용하면 여러 SDK 버전을 나란히 설치하고 관리할 수 있으므로 .NET SDK를 설치하려면 버전별 스냅 패키지 식별자를 사용합니다. 예를 들어, .NET 8에는 dotnet-sdk-80을 사용하고 .NET 10에는 dotnet-sdk-100을 사용합니다. SDK에는 SDK에 버전이 지정된 ASP.NET Core 및 .NET 런타임이 모두 포함됩니다. 이 문서에서는 .NET 10 SDK 스냅 패키지를 사용합니다. 다른 패키지를 사용하는 경우 대체합니다.

Snapcraft .NET SDK 패키지 페이지(.NET 8, .NET 9, .NET 10)에는 Snapcraft 및 .NET 설치하는 방법에 대한 배포 관련 지침이 포함되어 있습니다.

  1. 터미널을 엽니다.

  2. snap install 사용하여 .NET SDK 스냅 패키지를 설치합니다.

    다음 명령은 .NET SDK 10을 설치합니다.

    sudo snap install dotnet-sdk-100
    

다음 표에서는 설치할 수 있는 .NET SDK 스냅 패키지를 나열합니다.

.NET 버전 Snap 패키지
10(LTS) dotnet-sdk-100
9(STS) dotnet-sdk-90
8(LTS) dotnet-sdk-80

2. dotnet 명령 매핑하기

Snap은 변환 dotnet 되지 않은 명령을 만들지 않으므로 시스템 전체에서 사용할 수 있도록 dotnet 기호 링크를 만듭니다. dotnet 명령을 이 특정 Snap 설치에 매핑하려는 경우에만 이 링크를 만드세요. 이미 다른 메서드를 통해 .NET 설치되어 있고 이 링크를 만든 경우 해당 매핑을 덮어씁니다.

이미 있는 경우 /usr/local/bin/dotnet 링크를 만들기 전에 제거합니다.

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

3. 설치 위치 내보내기

도구에서 환경 변수를 DOTNET_ROOT 사용하여 .NET 설치되는 위치를 결정하기 때문에 셸 프로필에서 환경 변수를 구성합니다. 맞춤 설치는 이 변수를 자동으로 설정하지 않습니다. 경로는 다음 형식 /snap/{package}/current/usr/lib/dotnet을 사용합니다.

export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet

100을 설치한 SDK 버전으로 바꾸세요. 예를 들어 .NET 8의 경우 80, .NET 9의 경우 90를 사용합니다.

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

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

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

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

셸에 적합한 소스 파일을 편집하고, 설치된 .NET 버전에 대한 내보내기 명령을 추가하고, 변경 내용을 저장합니다.

예: export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.

4. .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 개요 참조하세요.

문제 해결

WSL2에서 Snap을 설치할 수 없음

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

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

  2. 다음 구성을 붙여넣으세요.

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

dotnet 명령 또는 SDK를 해결할 수 없음

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

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

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

  1. 2. dotnet 명령 매핑을 완료합니다.
  2. DOTNET_ROOT 환경 변수를 영구적으로 내보내기를 따라 환경 변수를 영구적으로 설정하세요.

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

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

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