우분투에 .NET Core SDK 설치 시 패키지 의존성 오류
아래의 문서에 따라,
Install .NET Core SDK on Linux Ubuntu 18.04 x64
; https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-current
.NET Core SDK를 설치하려는데,
$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo add-apt-repository universe
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
다음의 단계에서 오류가 발생합니다.
$ sudo apt-get install dotnet-sdk-2.2
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,
불안정 배포판을 사용해서 일부 필요한 패키지를 아직 만들지 않았거나,
아직 Incoming에서 나오지 않은 경우일 수도 있습니다.
이 상황을 해결하는데 다음 정보가 도움이 될 수도 있습니다:
다음 패키지의 의존성이 맞지 않습니다:
dotnet-sdk-2.2 : 의존: aspnetcore-runtime-2.2 (>= 2.2.2) 하지만 %s 패키지를 설치하지 않을 것입니다
의존: dotnet-runtime-2.2 (>= 2.2.2) 하지만 %s 패키지를 설치하지 않을 것입니다
E: 문제를 바로잡을 수 없습니다. 망가진 고정 패키지가 있습니다.
아래로 내려가니,
$sudo apt-get install dotnet-runtime-deps-2.2
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,
불안정 배포판을 사용해서 일부 필요한 패키지를 아직 만들지 않았거나,
아직 Incoming에서 나오지 않은 경우일 수도 있습니다.
이 상황을 해결하는데 다음 정보가 도움이 될 수도 있습니다:
다음 패키지의 의존성이 맞지 않습니다:
dotnet-runtime-deps-2.2 : 의존: libicu55 하지만 설치할 수 없습니다
E: 문제를 바로잡을 수 없습니다. 망가진 고정 패키지가 있습니다.
$sudo apt-get install libicu55
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
libicu55 패키지를 사용할 수 없습니다. 하지만 다른 패키지가 참조하고 있습니다.
해당 패키지가 누락되었거나 지워졌다는 뜻입니다. 아니면 또 다른 곳에서
패키지를 받아와야 하는 경우일 수도 있습니다.
E: 'libicu55' 패키지는 설치할 수 있는 후보가 없습니다
libicu55 패키지 설치를 할 수 없다는 것입니다. 다행히 검색해 보면 답이 나옵니다.
.NET Core 2.1 fails to install on clean Ubuntu 18.04.1 LTS ( Bionic Beaver )
; https://github.com/dotnet/core-setup/issues/4703
그래서 다음과 같은 명령어로 libicu55를 설치할 수 있고,
$sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
$sudo apt-get update
$sudo apt-get install libicu55
이후 dotnet-sdk-2.2가 정상적으로 설치됩니다.
$sudo apt-get install dotnet-sdk-2.2
테스트를 해봐야죠. ^^ Visual Studio로 .NET Core Web API 프로젝트를 만든 후, 다음의 설정으로 Publish를 합니다.
Configuration: Release
Target Framework: netcoreapp2.0
Deployment Mode: Self-Contained
Target Runtime: linux-x64
출력된 .\bin\Debug\netcoreapp2.0\publish 폴더의 내용을 리눅스 머신에 복사하고 다음과 같이 실행해 주면 끝!
$dotnet webapp.dll
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]