-
윈도우에서 WSL로 레디스 설치하기개발/Unix 2021. 11. 4. 04:14
WSL는 Window Subsystem for Linux의 두음문자어다. 전부는 아니지만 리눅스 기능을 일부 사용할 수 있게 하는 것으로 가상머신이나 도커를 이용하지 않고 윈도우에서 리눅스를 사용할 수 있는 시스템이다. 마이크로소프트의 개발자들은 도대체 어떤 인간들일까.
모든 윈도우에서 되는 건 아니고 윈도우 10부터 가능하며 특정 버전 이상이어야 한다. 윈도우10 S에서는 안 된다. 레디스는 기본적으로 유닉스 운영체제를 지원하며 윈도우 버전은 2016년도 이후로 설치 파일이 업데이트되지 않았다. WSL을 이용하면 최신 버전의 레디스를 설치할 수 있다.
https://docs.microsoft.com/ko-kr/windows/wsl/install
WSL 설치
wsl --install 명령을 사용하여 Linux용 Windows 하위 시스템을 설치합니다. Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine 등 원하는 Linux 배포판에서 실행되는 Windows 머신에서 Bash 터미널을 사용할 수 있습니
docs.microsoft.com
WSL 설치
1. Power shell을 관리자로 실행한 뒤에 다음 명령어를 입력한다.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
2. 재부팅을 해주고 나서 다시 관리자 실행으로 Power shell을 켜주고 난 뒤 다음 명령어를 입력한다.
wsl --install -d Ubuntu
비밀번호 설정하고 나면 생각보다 빠르게 설치가 완료된다.
3. 설치가 완료되고 나서 한 번 exit로 리눅스 모드를 나오고 난 뒤 wsl을 입력해 재접속한다.
꼭 필요한 절차는 아니지만 설치 이후에 제대로 동작하는지 확인하려면 해볼 것.
Redis 설치
레디스를 설치하기 전에 sudo apt update와 sudo apt upgrade를 순차적으로 수행해줘야 한다.
sudo apt update
패키지 정보를 다운로드하기 위해 사용된다.
소스 파일은 /etc/apt/sources.list 파일에 정의되고 나머지 파일은 /etc/apt/sources.list.d 디렉토리에 위치한다.
sudo apt upgrade
sources.list 파일을 통해 구성된 소스를 통해서, 시스템에 설치된 모든 패키지 중에서 가능한 것들을 업그레이드한다.
update 명령으로 리스트를 만들었고 upgrade로 리스트 항목을 업그레이드 하는 것.
이 두 가지를 성공적으로 마치고 나서 레디스를 설치해야 한다.
가장 쉬운 방법은 sudo apt get redis-server 명령을 사용하는 것이다.
이렇게 하면 5.0.7 버전이 디폴트로 설치된다. 최신 버전은 6.2.6이다.
이 방법을 쓰지 않고 직접 최신 버전을 다운받아 설치할 예정이다.
build-essential을 설치해야 한다. build-essential은 소스 코드를 빌드할 때 필요한 기본적인 패키지를 모아둔 것이다.
pkg-config도 설치해야 하는데 이는 소스 코드를 컴파일할 때 필요한 라이브러리를 조회하기 위해 통일된 인터페이스를 제공하는 소프트웨어다(출처: 위키백과). 두 가지 전부 설치가 되어 있어야 하고 설치 과정에서 yes를 요구하는 질의에 대해 전부 yes를 할 것이므로 -y 플래그를 넣을 것이다. 이 모두를 합치면 명령은 다음과 같다.
sudo apt get install build-essential pkg-config -y
redis는 https://download.redis.io/releases/redis-6.2.6.tar.gz에서 다운로드를 하면 되기 때문에 wget을 이용한다.
다운로드 하면 해당 압축파일을 풀고 나서 설치를 진행할 것이다. 이 과정은 다음과 같다.
mkdir -p /home/ubuntu/app cd /home/ubuntu/app wget https://download.redis.io/releases/redis-6.2.6.tar.gz tar xvfz redis-*.tar.gz rm redis-*.tar.gz ln -s /home/ubuntu/app/redis* redis cd redis sudo make
관리와 편한 접근을 위해 따로 폴더를 생성했다. ln -s 명령어는 해당 파일에 대한 심볼릭 링크를 만드는 것인데 압축 파일을 풀고 나면 폴더 이름이 길어져서 redis라는 심볼릭 링크를 만들었다. 그러고 나서 make를 해주면 소스를 컴파일한다. 여기에서 sudo make install까지 진행하면 make를 통해 만든 설치 파일들을 설치한다.
이 때의 설치 위치가 usr/local/bin인데, redis-server를 입력해서 실행해보면 usr/bin에 파일이 없다는 엉뚱한 소리를 하는 오류가 생길 때가 있다. 이것은 redis-server가 적절하게 경로를 찾지 못한다는 의미인데 hash redis-server으로 간단하게 해결된다. 유닉스의 bash에는 해시 테이블이 있어서 명령어를 실행할 때 매번 $PATH를 탐색하지 않고 메모리에 결과를 캐싱해놓는다. hash 명령어를 사용하면 최근 실행된 프로그램의 해시 테이블 상태를 유지해준다.
cp /home/ubuntu/app/redis/src/redis-server /usr/bin cp /home/ubuntu/app/redis/src/redis-cli /usr/bin
레디스 서버를 실행할 때 redis-server라고 입력하면 된다. sudo를 붙이지 않으면 권한 때문에 서버가 제대로 꺼지지 않는 문제점이 있다. 그리고 레디스 서버를 가동할 때 설정 파일을 읽어야 한다.
redis.conf라는 파일이며 home/ubuntu/app/redis에 있다. 보통 이 파일은 /etc에 위치한다고 하니 복사해주자. 이 파일에는 포트 번호 등을 지정할 수 있는데 우리는 비밀번호만 부여할 예정이다. 파일을 수정해야 하므로 다음과 같이 해서 redis.conf 파일을 열어주자.
sudo vi redis.conf
vi에는 문자열을 찾는 기능이 있다. /를 누르고 requirepass를 타이핑한 뒤 엔터를 치고 나서 n을 이용해 다음 문자열로 넘어가면서 requirepass를 찾아주자. requirepass가 비밀번호다. 커서를 해당 위치에 이동해 i를 누르면 그 위치에서 뭔가를 입력할 수 있는 상태가 된다. 비밀번호 입력이 끝나면 esc를 눌러서 입력 상태를 종료한다. 콜론(:)을 눌러 wq!를 타이핑하고 엔터를 치자. 이는 현재 상태를 저장하고 파일을 닫는다는 의미다. 정상적으로 수행되면 콘솔 창으로 복귀한다.
redis 서버를 킬 때 해당 위치의 설정 파일을 같이 읽어주면 된다.
redis-server /etc/reids.conf
아직 끝나지 않았다. 테스트를 위해 redis-cli를 켜볼 것이다.
redis-cli를 치면 바로 접속이 된다.
하지만 뭔가를 할 수 있는 상태는 아니다.
테스트를 위해 ping을 치면 다음과 같은 안내가 나온다.
비밀번호를 입력해야 한다는 의미다.
auth password를 해야 한다.
그러고 나서 ping을 해주면 pong이 돌아온다.
레디스 서버를 종료하는 것은 redis-cli에서 하는데
종료가 목적이라면 지금처럼 redis-cli에 접속해서 할 필요가 없다.
다음처럼 해주면 된다.
redis-cli auth password shutdown
명령어가 성공적으로 수행된다면 서버를 켜놓은 콘솔화면은 다음과 같이 변경된다.
서버를 구동할 때 sudo를 안 붙였다면 서버가 꺼지지 않게 된다.
프로세스 종료 단축키인 ctrl + c를 아무리 눌러도 종료가 되지 않을 때가 있을 것이다.
이 때에는 ctrl + z 눌러 프로세스를 잠시 중단한다.
프로세스를 강제로 종료하려면 프로세스 아이디를 알아내야 한다.
다음 명령어로 레디스 서버의 프로세스 아이디를 확인하자
ps -ef | grep 6379
왼쪽에서 두 번째인 125가 프로세스 아이디다. 해당 프로세스를 강제로 종료하면 된다.
kill -9 125
'개발 > Unix' 카테고리의 다른 글
리눅스 우분투에서 환경변수 설정하기(WSL) (0) 2021.11.07 간단한 명령어 정리 (0) 2021.10.27