Snap을 사용하여 .NET SDK 설치
이 문서에서는 .NET SDK 스냅 패키지를 설치하는 방법에 대해 설명합니다. .NET SDK 스냅 패키지는 Canonical에서 제공 및 유지 관리합니다. Snap은 Linux 배포에 기본 제공되는 패키지 관리자의 좋은 대안입니다.
스냅은 다양한 Linux 배포판에서 작동하는 앱과 해당 종속성의 번들입니다. 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 버전은 다음과 같습니다.
- 9.0(STS) - 지원은 2026년 5월에 종료됩니다.
- 8.0(LTS) - 2026년 11월 10일에 지원이 종료됩니다.
.NET을 빌드하고 릴리스하는 다른 엔터티는 다른 지원 정책을 도입할 수 있습니다. .NET이 지원되는 방식을 이해하려면 이러한 정책과 함께 확인해야 합니다.
1. SDK 설치
Important
.NET 9는 2024년 11월 12일에 릴리스되었습니다. 패키지 관리자 피드에 패키지가 표시되거나 특정 Linux 배포판에 패키지가 포함되는 데 시간이 걸릴 수 있습니다.
.NET SDK용 Snap 패키지는 모두 동일한 식별자 dotnet-sdk
로 게시됩니다. 특정 버전의 SDK는 채널을 지정하여 설치할 수 있습니다. SDK에는 SDK에 버전이 지정된 ASP.NET Core 및 .NET 런타임이 모두 포함됩니다.
팁
Snapcraft .NET SDK 패키지 페이지에는 Snapcraft 및 .NET을 설치하는 방법에 대한 배포 관련 지침이 나와 있습니다.
터미널을 엽니다.
.NET SDK 스냅 패키지를 설치하려면
snap install
을 사용합니다. 예를 들어 다음 명령은 기본값인latest/stable
채널을 설치합니다.sudo snap install dotnet-sdk --classic
--classic
매개 변수는 필수입니다.--channel
매개 변수를 사용하여 설치할 버전을 지정합니다. 이 매개 변수를 생략하면latest/stable
이 사용됩니다. 예를 들어--channel 9.0/stable
.NET SDK 9.0을 설치합니다.
dotnet
스냅 별칭이 자동으로 만들어지고 스냅 패키지의 dotnet
명령에 매핑됩니다.
다음 표에는 설치할 수 있는 패키지 채널이 나와 있습니다.
.NET 버전 | 스냅 패키지 채널 |
---|---|
9(STS) | 9.0/stable latest/stable |
8(LTS) | 8.0/stable lts/stable |
7(STS) | 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
를 활성화해야 합니다.
선택한 텍스트 편집기에서
/etc/wsl.conf
를 엽니다.다음 구성에 붙여넣습니다.
[boot] systemd=true
파일을 저장하고 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'를 찾을 수 없습니다.
문제를 해결하려면 다음 단계를 완료합니다.
DOTNET_ROOT
환경 변수를 영구적으로 내보내는지 확인합니다.스냅
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 |
관련 콘텐츠
.NET