[Linux] 초기개발도구 환경설정
GOAL
Linux환경내 개발도구 초기설정
SUMMARY
- 본 Post내 모든 Command는 Ubuntu 20.04.1 LTS (Debian)에서 진행
✨ Linux계열이 Debian외 OS인 경우, Command가 다른 경우가 있음. - 다음 Tool을 초기설정대상으로 함
- Java
- Maven
- Python
- NodeJS
- Yarn
- Docker
- Docker-compose
- Kubernetes
- ETC
HOW TO SET?
1. Java
-
JDK 다운로드
-
- 아래 공식홈페이지에서 필요한 JDK버젼을 Download
- https://www.oracle.com/java/technologies/downloads/
-
- 본 post에서는 JDK 8u271(64bit Compressed Archive)로 진행
- file name: jdk-8u271-linux-x64.tar.gz
-
-
다운받은 JDK 폴더 압축해제 및 System관리 폴더로 이동
1 2 3 4 5 6 7 8 9 10 11
# 다운받은 JDK가 있는 폴더로 이동 cd Download/ # JDK Archive파일을 압축풀기 # Expected: 같은 directory내에 jdk1.8.0_271 폴더가 생성됨 tar -xvzf jdk-8u271-linux-x64.tar.gz # 압축해제된 폴더를 아래 시스템 폴더로 이동 # 이동 directory: /usr/local # (해당 directory는 시스템 폴더이기때문에, 이동시에는 root권한이 필요) sudo mv jdk1.8.0_271 /usr/local
-
- 환경변수설정 (기타 profile 수정)
- (시스템 전체 사용자 적용)
- file path: /etc/profile
1 2
# (해당 파일은 시스템 파일이기때문에, 수정시root권한이 필요) sudo vi /etc/profile
아래 Linux 실행시 적용할 JDK설정을 File 끝단에 추가
1 2 3 4
JAVA_HOME=/usr/local/jdk1.8.0_271 CLASSPATH=$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME CLASSPATH PATH
수정된
/etc/profile
적용1
source /etc/profile
-
적용 확인
1 2 3 4 5 6
# Java home directory가 출력되는지 확인 echo $JAVA_HOME # Class path가 출력되는지 확인 echo $CLASSPATH # Path에 JAVA_HOME내 bin이 포함되어있는지 확인 echo $PATH
java 버전 확인
1 2 3 4
# 설치한 Java 버전이 출력되는지 확인 java -version # 설치한 Java 버전이 출력되는지 확인 javac -version
2. Maven
-
Maven 압축 파일 다운로드 & 압축해제 및 폴더 이동 본 post에서는 maven 3.6.3로 진행
1 2 3 4 5 6 7 8 9 10 11 12 13
# 해당 버전 maven 압축파일 다운로드 curl -O https://ftp.yz.yamagata-u.ac.jp/pub/network/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz # 압축해제 # Expected: 같은 directory내에 apache-maven-3.6.3 폴더가 생성됨 tar -xvzf apache-maven-3.6.3-bin.tar.gz # 압축해제된 폴더를 아래 시스템 폴더로 이동 # 이동 directory: /opt sudo mv apache-maven-3.6.3 /opt/ # Maven 전용 link 작성 sudo ln -S /opt/apache-maven-3.6.3 /opt/maven
-
- 환경변수설정 (기타 profile 수정)
- (시스템 전체 사용자 적용)
- file path: /etc/profile
1 2
# (해당 파일은 시스템 파일이기때문에, 수정시root권한이 필요) sudo vi /etc/profile
아래 Linux 실행시 적용할 JDK설정을 File 끝단에 추가
1 2 3 4
M2_HOME=/opt/maven MAVEN_HOME=/opt/maven PATH=$PATH:$MAVEN_HOME/bin export M2_HOME MAVEN_HOME PATH
수정된
/etc/profile
적용1
source /etc/profile
-
적용 확인
1 2
# maven 설정이 출려되는지 확인 mvn -version
3. Python (pip)
Reference: https://pip.pypa.io/en/stable/ 개발 중, python에서 제공하는 특정 Library를 설치 할 필요가 있을 때, pip을 이용해 설치가 가능
Ubuntu 20.04.1 LTS에 Python3는 기본 설치 되어 있기때문에 본 post에서는 pip 설치방법만 다룸 pip: https://pip.pypa.io/en/stable/
-
pip.py 다운로드
1
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
-
실행
1
python3 get-pip.py
-
설치 확인
1
pip3 --version
4. NodeJS
Reference: https://github.com/nodesource/distributions
-
NodeJS 최신버젼 확인 https://nodejs.org/en/
-
PPA repository 갱신
1
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
-
nodeJS 설치
1
sudo apt-get install -y nodejs
-
설치 확인
1 2
node --version npm --version
5. Yarn
Reference: https://classic.yarnpkg.com/en/docs/install#debian-stable
[4.NodeJS] 설치가 전제
- PPA repository 갱신
1 2
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
- yarn 설치
1
sudo apt update && sudo apt install yarn
- 설치 확인
1
yarn --version
6. Docker
- Docker 설치
1
curl -fsSL https://get.docker.com/ | sudo sh
- 현재 User를
docker
group에 포함1
sudo usermod -aG docker $USER
- 설치 및 권한 확인
1 2
# docker 설치정보 및 docker server정보가 표시되는지 확인 docker version
7. Docker-compose
- docker-compose 설치
1
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 설치 파일에 Permission 부여
1
sudo chmod +x /usr/local/bin/docker-compose
- Linux내 명령어 폴더에
docker-compose
Symbolic link 생성1
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 설치 확인
1
docker-compose --version
8. Kubernetes
업데이트 예정
9. ETC
Vim 설정
Reference https://sybarits.github.io/2019/12/24/vim-plugin.html
주로 CUI환경에서 코드작성을 많이 하기때문에 vim에 필요한 plugin을 설치해서 사용중 (선택사항)
-
vim 환경설정 폴더에 Vundle plugin 설치
1
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
vim 설정파일에 초기설정
1
vim ~/.vimrc
⬇️ 아래 내용을 paste 사용자 작업에 맞춰 수정가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' " plugin from http://vim-scripts.org/vim/scripts.html " Plugin 'L9' " Git plugin not hosted on GitHub Plugin 'git://git.wincent.com/command-t.git' " git repos on your local machine (i.e. when working on your own plugin), "Plugin 'file:///home/jjeaby/Dev/tools/vim-plugin' " The sparkup vim script is in a subdirectory of this repo called vim. " Pass the path to set the runtimepath properly. Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " Install L9 and avoid a Naming conflict if you've already installed a " different version somewhere else. " Plugin 'ascenator/L9', {'name': 'newL9'} " All of your Plugins must be added before the following line Plugin 'vim-airline/vim-airline' Plugin 'scrooloose/nerdtree' Plugin 'airblade/vim-gitgutter' Plugin 'scrooloose/syntastic' Plugin 'ctrlpvim/ctrlp.vim' Plugin 'nanotech/jellybeans.vim' call vundle#end() " required "filetype plugin indent on " required "NERDTree ON shortcut ("\nt") map <Leader>nt <ESC>:NERDTree<CR> let NERDTreeShowHidden=1 " let NERDTreeQuitOnOpen=1 let g:ctrlp_custom_ignore = { \ 'dir': '\.git$\|vendor$', \ 'file': '\v\.(exe|so|dll)$' \ } color jellybeans " Settings (Tag List) filetype on "vim filetype on " Settings (Source Explorer) nmap <F8> :SrcExplToggle<CR> "F8 Key = SrcExpl Toggling nmap <C-H> <C-W>h "Move to left window nmap <C-J> <C-W>j "Move to bottom window nmap <C-K> <C-W>k "Move to upper window nmap <C-L> <C-W>l "Move to right window " Settings(Detail information) set nu set title set showmatch set ruler " Highlight Syntax if has("syntax") syntax on endif " Color set t_Co=256 " About Indent set autoindent set smartindent set tabstop=4 set shiftwidth=4 set softtabstop=4 set smarttab set expandtab " About Paste set paste set mouse-=a " UTF-8 set encoding=utf-8 set termencoding=utf-8 " Highlight Cursor set cursorline " Show Status bar set laststatus=2 set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F\ " About search set ignorecase " Focus Cursor modified au BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "norm g`\"" | \ endif " Markdown syntax augroup markdown " remove previous autocmds autocmd! " set every new or read *.md buffer to use the markdown filetype autocmd BufRead,BufNew *.md setf markdown augroup END
저장
1 2
<esc>입력후 :wq
-
Plugin install
1 2
vim :PluginInstall