본문 바로가기
카테고리 없음

리눅스( CentOS )에서 C# 바로 실행!

오늘은 리눅스 팁을 공유드리고자 합니다.
바로 리눅스에서 씨샵(C#) 프로그램을 실행하는 방법인데요.

CentOS7을 기준으로 하고 있습니다만 CentOS8에서의 설치 방법도 적어놓도록 하겠습니다.
테스트는 못 해봤네요 :)

리눅스 터미널 정도는 사용하실 줄 아신다는 기준에서 시작합니다.

심심하실까봐 CCM 음악하나 공유드립니다. 들으면 기분이 좋아 지실 거예요 :)


설치방법

관리자(sudoer) 권한이 있는 사용자로 로그인 한 다음 설치해주시면 되는데요.
먼저 아래 명령을 실행한 다음,

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

아래 명령을 실행해주시면 됩니다.

sudo yum -y install dotnet-sdk-3.1
sudo yum -y install aspnetcore-runtime-3.1
sudo yum -y install dotnet-runtime-3.1

CentOS8은 아래와 같은데요.
해보지는 않아서 확실한지는 모르겠네요. 실제 시도 후 성공하면 댓글 달아 주시면 감사드리겠습니다:)

sudo dnf -y install dotnet-sdk-3.1
sudo dnf -y install aspnetcore-runtime-3.1
sudo dnf -y install dotnet-runtime-3.1

프로젝트 생성

제대로 설치되었나 확인해볼까요?
닷넷 프로젝트 생성을 위해 프로젝트를 보관할 폴더를 만들고 해당 폴더로 경로를 변경해 주어야 합니다.

mkdir csexam01
cd csexam01

그리고 닷넷 콘솔 프로젝트를 생성해볼까요?
아래 명령을 입력하시면 닷넷 프로젝트가 생성됩니다.

dotnet new console

파일 구조를 살펴볼까요? tree 명령어 ( yum 으로 설치 가능 )를 실행하면 아래와 같은 구성을 보실 수 있습니다.

tree

여기서 Program.cs 파일이 메인 프로그램이 적재된 소스 코드인데요.
소스 코드 구성은 아래와 같습니다.

using System;

namespace csexam01
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

에디터를 이용하여 Console.writeLine 을 아래와 같이 바꿔보았습니다.

Console.WriteLine("C#의  세계, 안녕하시오?");

이제 리눅스에서 c# 프로그램을 실행해보겠습니다.
프로젝트가 있는 폴더여야 합니다.

dotnet run

위와 같이 표시된다면 성공!
리눅스 서버에서 PC 컴파일러의 도움 없이 직접 C# 프로그램이 실행된 것을 확인할 수 있습니다.

tree 명령을 입력, 파일 구성을 살펴보면 아래처럼 보일텐데요.

bin/debug/netcoreapp3.1 폴더 아래 csexam01 어쩌고 파일들이 다수 있는 것을 확인할 수 있고,
bin/debug/netcoreapp3.1/csexam01 파일을 직접 실행해도 결과가 표시되는 것을 볼 수 있는데요.
컴파일을 따로 안하기 때문에 속도는 빠른 편입니다.

bin/Debug/netcoreapp3.1/csexam01

chatGPT에게 부탁해서 웹사이트 소스를 읽어오는 간단한 샘플 코드를 만들어 실행해 보니 잘 작동합니다.
이럴 때는 chatGPT가 꽤 유용한것 같습니다.

using System;
using System.Net;

namespace csexam01
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "http://dreamplan7.cafe24.com"; // 원하는 웹사이트 주소로 변경하세요.
            try
            {
                using (WebClient client = new WebClient())
                {
                    string htmlSource = client.DownloadString(url); 
                    Console.WriteLine(htmlSource);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }

            Console.ReadKey();
        }
    }
}

 

리눅스에서 바로 실행하는 C#, 이런 기술도 있다니 희안하지 않으신가요 ? :)

우분투에서 설치하는 방법도 있어 추가로 기록합니다.
역시 테스트는 못해봤으니 성공하시면 댓글 주시면 감사하겠습니다.

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1
sudo apt-get install -y aspnetcore-runtime-3.1
sudo apt-get install -y aspnetcore-runtime-3.1

오늘도 방문해주신 분들께 감사드리며 크레이는 이만!