설치 스크립트를 사용하거나 이진 파일을 추출하여 Linux에 .NET 설치

이 문서에서는 설치 스크립트를 사용하거나 이진 파일을 추출하여 Linux에서 .NET SDK 또는 .NET 런타임을 설치하는 방법을 보여 줍니다. 기본 제공 패키지 관리자를 지원하는 배포 목록은 Linux에서 .NET 설치를 참조하세요.

.NET 앱을 개발하려는 경우 SDK(런타임 포함)를 설치합니다. 또는 앱을 실행하기만 하려면 런타임을 설치합니다. 런타임을 설치하려면 .NET 런타임과 ASP.NET Core 런타임이 모두 포함된 ASP.NET Core 런타임을 설치하는 것이 좋습니다.

dotnet --list-sdksdotnet --list-runtimes 명령을 사용하여 설치된 버전을 확인합니다. 자세한 내용은 .NET이 이미 설치되어 있는지 확인하는 방법을 참조하세요.

.NET 릴리스

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

다음 표에는 .NET(및 .NET Core)의 각 버전의 지원 상태가 나열되어 있습니다.

✔️ 지원됨 ❌ 지원 안 됨
8(LTS) 5
7(STS) 3.1
6(LTS) 3.0
2.2
2.1
2.0
1.1
1.0

종속성

.NET을 설치할 때 특정 종속성이 설치되지 않을 수 있습니다(예: 수동으로 설치하는 경우). 다음 목록에서는 Microsoft에서 지원하며, 설치해야 할 수 있는 종속성이 있는 Linux 배포판에 대해 자세히 설명합니다. 자세한 내용은 배포 페이지를 확인하세요.

종속성에 대한 일반적인 내용은 Self-contained Linux apps(자체 포함 Linux 앱)를 참조하세요.

RPM 종속성

자신의 배포판이 위에 나열되지 않았으며 RPM 기반인 경우 다음 종속성이 필요할 수 있습니다.

  • krb5-libs
  • libicu
  • openssl-libs

대상 런타임 환경의 OpenSSL 버전이 1.1 이상인 경우, compat-openssl10을 설치합니다.

DEB 종속성

자신의 배포판이 위에 나열되지 않았으며 Debian 기반인 경우 다음 종속성이 필요할 수 있습니다.

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu67
  • libssl1.1
  • libstdc++6
  • zlib1g

일반 종속성

.NET 앱에서 System.Drawing.Common 어셈블리를 사용하는 경우 libgdiplus도 설치해야 합니다. System.Drawing.Common이 더 이상 Linux에서 지원되지 않으므로 이는 .NET 6에서만 작동하며 System.Drawing.EnableUnixSupport 런타임 구성 스위치를 설정해야 합니다.

일반적으로 시스템에 Mono 리포지토리를 추가하여 최신 버전의 libgdiplus를 설치할 수 있습니다.

스크립팅된 설치

dotnet-install 스크립트는 자동화와 SDK런타임의 관리자 설치가 아닌 일반 설치를 수행하는 데 사용됩니다. https://dot.net/v1/dotnet-install.sh에서 스크립트를 다운로드할 수 있습니다. 이러한 방식으로 .NET을 설치하는 경우 Linux 배포에 필요한 종속성을 설치해야 합니다. 특정 Linux 배포에 대해서는 Linux에 .NET 설치 문서의 링크를 사용합니다.

Important

스크립트를 실행하려면 Bash가 필요합니다.

wget을 사용하여 스크립트를 다운로드할 수 있습니다.

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

이 스크립트를 실행하기 전에 이 스크립트를 실행 파일로 실행할 수 있는 권한을 부여해야 합니다.

chmod +x ./dotnet-install.sh

스크립트는 기본적으로 최신 LTS(장기 지원) SDK 버전(.NET 8)을 설치합니다. (LTS) 버전이 아닐 수도 있는 최신 릴리스를 설치하려면 --version latest 매개 변수를 사용합니다.

./dotnet-install.sh --version latest

SDK 대신 .NET 런타임을 설치하려면 --runtime 매개 변수를 사용합니다.

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

특정 버전을 나타내는 --channel 매개 변수를 사용하여 특정 주 버전을 설치할 수 있습니다. 다음 명령은 .NET 8.0 SDK를 설치합니다.

./dotnet-install.sh --channel 8.0

자세한 내용은 dotnet-install 스크립트 참조를 참조하세요.

명령줄에서 .NET을 사용하도록 설정하려면 시스템 전체에서 환경 변수 설정을 참조하세요.

수동 설치

패키지 관리자의 대안으로, SDK와 런타임을 다운로드하여 수동으로 설치할 수 있습니다. 수동 설치는 일반적으로 연속 통합 테스트의 일부로서 사용되거나 지원되지 않는 Linux 배포판에서 사용됩니다. 개발자 또는 사용자의 경우 패키지 관리자를 사용하는 것이 좋습니다.

다음 사이트 중 한 곳에서 SDK 또는 런타임의 이진 릴리스를 다운로드합니다. .NET SDK에는 해당 런타임이 포함됩니다.

다운로드한 파일의 압축을 풀고 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 디렉터리와 해당 tools 하위 디렉터리가 모두 PATH 환경 변수에 추가됩니다.

Important

이러한 명령을 실행하는 경우 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 버전을 설치할 수 있습니다.

HOME 변수 또는 ~ 경로로 식별되는 홈 디렉터리에 .NET을 설치할 수도 있습니다.

export DOTNET_ROOT=$HOME/.dotnet

다운로드한 이진 파일 확인

설치 프로그램을 다운로드한 후 파일이 변경되거나 손상되지 않았는지 확인합니다. 컴퓨터에서 체크섬을 확인한 다음 다운로드 웹 사이트에 보고된 내용과 비교할 수 있습니다.

공식 다운로드 페이지에서 설치 프로그램이나 이진 파일을 다운로드하면 해당 파일의 체크섬이 표시됩니다. 체크섬 값을 클립보드에 복사하려면 복사 단추를 선택합니다.

The .NET download page with checksum

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

체크섬을 다운로드 사이트에서 제공한 값과 비교합니다.

Important

이러한 예제에서는 Linux 파일이 표시되지만 이 정보는 macOS에도 동일하게 적용됩니다.

체크섬 파일을 사용하여 유효성 검사

.NET 릴리스 정보에는 다운로드한 파일의 유효성을 검사하는 데 사용할 수 있는 체크섬 파일에 대한 링크가 포함되어 있습니다. 다음 단계에서는 체크섬 파일을 다운로드하고 .NET 설치 이진 파일의 유효성을 검사하는 방법을 설명합니다.

  1. GitHub(https://github.com/dotnet/core/tree/main/release-notes/8.0)의 .NET 8 릴리스 정보 페이지에는 릴리스라는 섹션이 포함되어 있습니다. 해당 섹션의 표는 각 .NET 8 릴리스에 대한 다운로드 및 체크섬 파일로 연결됩니다.

    The github release notes version table for .NET

  2. 다운로드한 .NET 버전에 대한 링크를 선택합니다. 이전 섹션에서는 .NET 8.0.0 릴리스에 있는 .NET SDK 8.0.100을 사용했습니다.

  3. 릴리스 페이지에서 .NET 런타임 및 .NET SDK 버전과 체크섬 파일에 대한 링크를 볼 수 있습니다.

    The download table with checksums for .NET

  4. 체크섬 파일에 대한 링크를 복사합니다.

  5. 다음 스크립트를 사용하되 링크를 바꿔 적절한 체크섬 파일을 다운로드합니다.

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. 체크섬 파일과 .NET 릴리스 파일을 모두 동일한 디렉터리에 다운로드한 상태에서 sha512sum -c {file} --ignore-missing 명령을 사용하여 다운로드한 파일의 유효성을 검사합니다.

    유효성 검사를 통과하면 확인 상태로 인쇄된 파일이 표시됩니다.

    $ 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
    

다음 단계