윈도우에서 리눅스 환경 설정

HwangJerry·2023년 4월 11일
0
*** 이 시리즈는 인프런 운영체제 강의를 정리한 내용입니다.

리눅스 접속 준비

WSL2 : Windows Subsystem for Linux 2
VSCode : Visual Studio Code

  • WSL과 vscode 두 가지를 같이 접목시켜 사용할 경우, 윈도우 10 환경에서 가장 편리하게 리눅스 개발환경을 구축할 수 있습니다. WSL 설치 안내는 링크를 달아두었습니다.

  • 설치 방법 : 윈도우 cmd를 켜고, wsl --install을 입력하면 기본값으로 설치가 됩니다.

  • 현재 WSL은 version 2가 default 패키지로 설치되므로, 별도의 업데이트를 거치지 않고도 WSL2을 설치할 수 있다. 버전2임을 확인하고 싶다면 wsl -l -v를 입력해보면 됩니다.

  • 기본값으로 ubuntu가 설치되며, 만약 우분투를 수동으로 설치해야 하는 경우에는 탐색기에 microsoft store를 검색하여 접근한 뒤 ubuntu XX.XX LTS를 설치하면 됩니다. 저는 ubuntu 20.04 LTS를 설치하였습니다.

리눅스 환경 세팅

WSL 계정 비밀번호 재설정

설치 과정에서 root 비밀번호를 설정해야 하는데, 나는 이 때 잘못 입력하여 단계가 넘어가버렸습니다. 다행히도 root 계정 비밀번호를 wsl 환경에서 재설정하는 방법은 간단했습니다.
  1. cmd 실행
  2. ubuntu.exe config --default-user root 입력
  3. ubuntu 입력하여 실행한 후, passwd 입력하여 root 계정 비밀번호 재설정
  4. passwd 사용자_계정_이름(기본값:root) 입력하여 사용자 계정 비밀번호 재설정
  5. exit로 나간 뒤, 다시 ubuntu.exe config --default-user 사용자_계정_이름 입력하면 끝.
  • 리눅스 환경 실행은 cmd에서 ubuntu라고 치면 됩니다.

  • 우분투 설치 버전 확인은 리눅스 환경에서 cat /etc/issue 를 치면 됩니다.

  • 우분투에서 GNU 툴체인(gcc, g++, gdb와 같은 컴파일러 등 개발도구들) 설치는 다음 과정을 따라하면 됩니다.

sudo apt-get update
sudo apt-get install build-essential gdb # build-essential과 gdb를 설치하겠다.

위 과정을 통해 설치한 걸 확인해보려면 다음 명령어를 입력해보면 됩니다.

gcc --version
g++ --version
gdb --version
  • vscode를 설치한 뒤, vscode 내 확장 패키지 중 remote developmentwsl을 설치하면 준비는 끝났습니다.

  • vscode 좌측 하단 구석에 있는 원격 창 열기를 클릭해주면 됩니다.

  • 활성화되는 검색창에 wsl 이라 입력하여 connect to wsl 을 선택해주시면 됩니다.

[트러블슈팅] vscode server for wsl closed unexpectedly

위와 같이 연결하려고 했는데, 위와 같은 에러 메세지를 만나게 되었습니다. 해당 메세지가 뜨는 이유는 크게 두 가지가 있는 것으로 보입니다. 저의 경우에는 2번째 문제였습니다.

1. wsl이 켜져있는 경우:
wsl.exe --shutdown을 통해 해결할 수 있다고 합니다.

2. docker가 default로 설정되어 있는 경우:
우선 경고문이 뜨면 ignore을 하여 접근한 뒤 아래와 같이 원격 탐색기로 접근하여 기본 배포판을 변경해주면 됩니다.

테스트

환경 설정이 잘 이루어졌는지 확인해보기 위해, 간단한 코드를 돌려보겠습니다.

vscode에서 wsl과 연결한 이후 ctrl + `을 이용하여 프롬프트를 열어주고, mkdir testwsl을 통해 폴더를 생성해 주겠습니다. 이후 hello.c 파일 생성 후 다음과 같은 예시 코드를 작성하고, 컴파일 한 뒤에 실행해 보겠습니다.

// pwd: ~/home/hwang/testwsl/hello.c
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>

int main()
{
    pid_t pid;

    pid = fork();
    printf("hello, wsl!\n");


    return 0;
}

위 코드를 작성한 뒤 프롬프트를 통해 아래와 같이 컴파일하여 실행해보겠습니다.

gcc hello.c
./a.out
>>> hello, wsl!
>>> hello, wsl!

fork에 의해 위와 같이 문장이 두 번 실행되는 것을 확인한다면 제대로 설정이 이루어진 겁니다.

profile
알고리즘 풀이 아카이브

0개의 댓글