리눅스에서 닷넷을 쓰기위한 삽질 연대기....

저는 전자공학쪽 전공이기도 하고 해서 평소에도 마이크로컨트롤러가 달린 기기를 자주 만지작 만지작 거리고 있습니다. 그런데 어느 날 눈에 들어온 기기가 하나 있습니다.

ODROID-GO Advance Black Edition Clear White – ODROID (hardkernel.com)

원래는 게임기인데 이게 어떤걸 올리는가에 따라서 여러가지 활용법이 많은 기기라 마침 GPIO도 달렸겟다 저기에다가 .NET IoT라이브러리를 써서 제어가 가능하지 않을까 싶어서 도전해봤습니다.

일단 기기 오고 나서 기기에 내장된 WiFi 모듈을 무선랜에 연결 시켜줄려고 보니까 파일을 수정해줘야 되는데 윈도에서는 ext4 로 포맷된 드라이브를 인식 못하니 헤매고 있다가 그냥 직접 수정해보면 되지 않을까 해서 써본적도 없는 bash 명령어랑 vim 사용법을 조금 익혀서 마침내 무선랜으로 인터넷에 연결할 수 있게 되었습니다. 만세!

이후에 MS에서 제공하는 리눅스에 닷넷을 설치하는 방법 을 따라서 닷넷 SDK를 설치 해볼려고 시도했는데 문제는 여기에서 막혔습니다.

일단 가장 먼저 제시되어있는 패키지 매니저를 통한 설치는 x86-64에서만 동작한다고 하는데 그걸 몰라서 하루동안 왜 안되나 씨름하고 있었네요. 안된다는 메세지를 보고 나서 내가 그동안 이걸 못 보고 뭘 한 건가 싶더라고요.

그 다음에는 수동 설치하는 방법을 찾아봤습니다. 첫번째는 snap이라는 패키지매니저를 이용한 설치였는데 이거도 snap이 호환이 안된다는 에러만 나오고 snap자체가 먹히질 않아서 포기…

그다음에는 인스톨 스크립트를 통한 설치가 가장 쉬워 보이길래 그걸 따라 할려고 했는데 이건 bash에서 권한이 부족하다는 에러가 뜨고 돌아가지도 않네요. 분명 root 상태에서 입력해도 영 안됩니다…

마지막으로 바이너리를 통해서 직접 설치 하는것만 남은 상태인데 이건 어떻게 기기에 바이너리 파일 다운받아서 넣을지 부터가 막막하네요.

생각한 것 보다 훨씬 어려워서 망했나 싶기도 합니다. 일단은 계속 시도할 예정인데 어디서 부터 꼬인건지 막막하네요. 잘 풀려서 제가 어떻게 이걸 해결했나 올릴 수 있으면 참 좋을 것 같은데 제대로 될지 모르겟습니다.

2개의 좋아요

가장 쉽게 설치하는 방법은 인스톨 스크립트를 이용하는 방법입니다. 먼저 해당 기기가 .NET이 동작하는 운영체제인가는 확인이 필요할 것 같고요, 기본 설치는 전역 설치가 아니기 때문에 권한부족 문제가 발생하지 않아야 하는데 좀 더 자세한 오류 메시지를 공유해주시면 도움을 드릴 수 있을 것 같습니다.

https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh

이 파일을 이용하신 것 맞으시지요?

1개의 좋아요

네. 인스톨 스크립트 다운받고 사이트에 나온 대로 실행시켜 보니까 Permission Denied 라고 뜨더군요.

쓴 OS는 ARM64인 Debian Buster입니다.

1개의 좋아요

전역 설치는,

sudo ./dotnet-install.sh --version 6.0.100 --install-dir /usr/share/dotnet

이렇게 하시면 되고, 심볼릭 링크로 /usr/local/bin 등에 dotnet으로 만들어두면

sudo ln -s /usr/share/dotnet/dotnet /usr/local/bin/dotnet

그다음부터는 어디서든 dotnet을 사용할 수 있는데요, 이렇게 설치도 한번 해보시겠어요?

1개의 좋아요

스크립트나 패키지 매니저 대신 바이너리를 직접 설치했을 때 정상동작하는지를 먼저 보시는게 빠를 수도 있을 것 같습니다. 인스톨 스크립트가 모든 기기의 모든 배포판을 다 지원하는게 아니라서 그렇습니다.

일단 arm64 빌드는 있는것 같은데 이상하군요. :thinking:

2개의 좋아요