2020. 6. 2. 17:53ㆍ카테고리 없음
* CLI: command line lnterface
유닉스 기반의 리눅스, 우분투, centOS, 그리고 centOS 기반의 amazon linux는 windows처럼 편하게 GUI로 쓸 수 있는게 아니라 불편한 CLI, 즉 콘솔(또는 터미널)로 작업해야 한다.
spring project 배포를 위해 알아보다가 이왕에 하는거, aws를 써보자, 이왕에 aws 써보는거, linux로 해보자... 하다가.... 공부할 것이 매우 많아졌다. 깊이있게 하자면 끝도 없이 방대해서, 최대한 간단히 해보려 한다.
나는 windows를 쓰고 있기에 xShell이나 PuTTY등을 이용하여 $로 시작하는 console을 쓸 수 있지만, 또 프로그램을 깔고 싶지가 않았다. 어느 분이 생활코딩 aws 댓글로 git for windows를 설치하여, git bash가 있으면 이걸 쓰면 된다하신 것이 생각나서, git bash를 통하여 작업하기로 했다.
* 인스턴스 연결
$ ssh -i {git bash 기준 상대경로로서의 key 위치} ec2-user@{내 인스턴스의 퍼블릭 DNS}
혹은
$ ssh -i {/d/자세한_키_주소} ec2-user@{내 인스턴스의 퍼블릭 DNS}
상대경로로 쓰면 분노할 일이 생기기 때문에 {/드라이브명/주소}로 쓰는 편이 좋다! 나는 c드라이브와 분리하려고 d,e,f 드라이브 중 한 곳에 저장했다.
내 아마존 인스턴스로 연결하면 다음과 같이 인터페이스가 바뀐다.
[ec2-user@ip-{내 public ip} ~]$
ec2-user는 linux 계정명이고, ip가 내 아마존 인스턴스를 가리키고 있기에 '내 컴퓨터가 아닌 내 인스턴스에 위치하는구나'를 알 수 있다.
* git 설치
$ sudo yum install -y git
$ git --version
* 자바, 톰캣 설치
http://progtrend.blogspot.com/2018/06/aws-amazon-linux-2-jdk-tomcat.html
* 자바 1.8 설치
$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64
* 톰캣 설치
$ sudo yum install tomcat
$ sudo yum install tomcat-admin-webapps
$ sudo yum install tomcat-webapps
$ sudo yum install tomcat-docs-webapp
* 오라클 설치(express 11g)
계정을 root로 변경해야 오라클을 설치할 수 있다.
-> root 계정 변환 및 리눅스 명령어 참고
https://jhnyang.tistory.com/136
** 콘솔에서 계정 옮기며 알게 된 사실들!
linux에서 모든 것의 루트, 즉 시작점이 되는 지점은 /이다.
$ pwd(print working directory: 현재 작업중인 디렉토리 출력, 쉽게 말해 현위치)를 입력했을 때 /이면 $ cd .. 를 입력해도 계속 / 상태이다. 가장 상위 디렉토리라는 의미로 받아들일 수 있다.
$ cd ~를 치면 /root 가 현재위치가 되는데, 이는 root 계정으로 접근할 때의 루트이다.
$ su ec2-user 를 입력하여 ec2-user 로 로그인하면, $ cd ~를 입력할 때, /home/ec2-user 로 이동한다. 해당 계정의 루트 폴더는 /home/ec2-user 인 셈이다.
가장 상위 디렉토리인 /에 $ mkdir {폴더이름} 으로 새 폴더를 만들면 mkdir: cannot create directory {폴더이름}: Permission denied 이라는 문구가 뜬다. root유저에게만 권한이 있는 것이다. 따라서 오라클 등의 설치를 위해서는 root 유저로 접속하여 진행하자!
-> 오라클 설치 참고: centOS 기준
https://xxsiyoung.tistory.com/3
*** 가장 좋은 공식 설치 가이드: https://docs.oracle.com/cd/E17781_01/install.112/e18802/toc.htm#XEINL102
1. 오라클 설치를 위해서 https://www.oracle.com/database/technologies/xe-prior-releases.html 에 접속하여, 맨 하단의 Oracle Database 11gR2 Express Edition for Linux x64를 다운받는다.
2. 파일질라나 vsftpd 이용하여 내컴(윈도우10)에 있는, 방금 다운받은 .zip 파일을 amazon linux에 생성되어 있는 usr/local/src/oracle_src로 옮긴다. (폴더 구조 보기도 편하니까, filezilla는 왠만하면 쓰기로..)
- 참고2: https://babamba-playground.tistory.com/27
3. 시스템 요구사항에 따라 패키지 전부 설치
# yum install glibc make binutils gcc libaio
공식 가이드에서 다음과 같이 설치할 패키지들과 적합한 버전을 소개하고 있다.
- glibc 크거나 같아야합니다 2.3.4-2.41
- make 크거나 같아야합니다 3.80
- binutils 크거나 같아야합니다 2.16.91.0.5
- gcc 크거나 같아야합니다 4.1.2
- libaio 크거나 같아야합니다 0.3.104
4. 스왑 공간 요구 사항 충족
참고: https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
Oracle Database XE에 필요한 최소 스왑 공간은 RAM 크기의 2GB 또는 2 배 중 작은 쪽이다.
이 설정을 해주지 않으면, 아래와 같은 경고 문구가 출력되면서 실패한다.
This system does not meet the minimum requirements for swap space. Based on
the amount of physical memory available on the system, Oracle Database 11g
Express Edition requires 1966 MB of swap space. This system has 0 MB
of swap space. Configure more swap space on the system and retry the
installation.
위에 보면 나는 1966 MB만 필요하다고 하지만, 나도 초보이고 나중에 문제 생기기 싫어서 그냥 넉넉히 2기가를 할당해주었다.
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
결과:
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 31.7339 s, 67.7 MB/s
이하의 명령어는 메모리 할당을 마쳤기 때문에 상기 aws 답변 가이드와 동일하다...
남은 명령어는 해당 페이지 참고~~
5. .zip파일 풀고 cd Disk1 하여 rpm 실행한다~
# rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
설치하면 설정을 건드리게 되는데 나는 톰캣 포트번호인 8080과 오라클의 8080이 겹쳐서 어느 블로그에서 본 대로 오라클을 9000으로 설정해주었다.
Specify the HTTP port that will be used for Oracle Application Express [8080]:9000
sys 비번도 잘 입력해주면(절대 까먹지 말자..) 설치는 일단 끝!
6. Oracle Database XE 환경 변수 설정
마찬가지로 공식 가이드를 보자~
갑자기 당황스럽게 shell에 맞는 파일에 들어가서 환경변수를 설정해야 한다는데, 나는 shell이 뭔지 모른다.
검색해봤다: https://jhnyang.tistory.com/57 : 와 여기 대박 강의 맛집이다.. 설명 너무 좋고 완전 강의식으로 작성해주셨다~
더 검색하다가 겁나 좋은 리눅스 튜토리얼 사이트를 찾았다!!
https://www.tutorialspoint.com/unix/unix-what-is-shell.htm
In Unix, there are two major types of shells −
- Bourne shell − If you are using a Bourne-type shell, the $ character is the default prompt.
- C shell − If you are using a C-type shell, the % character is the default prompt.
나는 대충 git bash로 버무리고 있는데, 내가 사용하는 것이 Bourne shell [bɔ́:rn] type이고, bash shell임을 알게 되었다~
드디어 git bash가 왜 bash인지 알게 되었구나~ 하하하하
그동안 명령어를 치고 사용자를 바꿔가면서 알았지만, $, #을 가리켜 프롬프트라고 하고, #는 root유저에 한해 나타나는 프롬프트인 것도 알게 되었다.
환경변수 설정은 그냥 하라는 대로
$ ./oracle_env.sh
한 줄 입력했다.
7. 막힌 부분...
공식 가이드를 따라했는데 여기부턴 설명이 부실해서 블로그를 참고했다.
- su - oracle 해주면 설치 시 자동생성된 oracle 계정으로 갈아탈 수 있는데, 프롬프트가 $나 #에서 -bash-4.2$ 로 바뀐다.
- 위 블로그에서 가르쳐주는 대로 ORACLE_BASE 설정해주면 cd ~ 했을 때 해당 경로로 이동한다.
- sqlplus 접속해서 help나 나가기를 하고 싶을 때:
For a list of known commands enter HELP and to leave enter EXIT.