java-school logo
Last Modified 2017.11.13

우분투 개발환경 세팅

Ubuntu 16.04 설치

http://www.ubuntu.com/download/desktop에서 Ubuntu 16.04 LTS를 내려받는다.

설치를 위한 부팅 USB 만들기

윈도 시스템을 사용한다면 다음 링크를 참조한다.
http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows
우분투를 사용할 수 있다면 다음 과정을 따른다.
USB를 꼽고 USB 디바이스를 확인한다.

sudo ls -l /dev/disk/by-id/*usb*

만일 sdb, sdb1, sdb2가 함께 보이면, 뒤에 숫자가 없는 sdb가 USB 디바이스를 가리킨다.
우분투 ISO 파일을 다운로드한 폴더로 이동한다.
아래 명령을 수행한다. filename.iso 대신 내려받은 우분투 ISO 파일명을, of=다음엔 USB 디바이스를 입력한다.

sudo dd if=filename.iso of=/dev/sdb bs=4M; sync

한글 입력

설치 화면에서 국가는 한국을, 키보드 배치에서 한국어 - 한국어를 선택하여 설치하면 이전 버전과 달리 어떠한 설정없이 한/영키로 한영 전환이 된다.
자바 코드에는 세미콜론을 자주 사용하는데, 세미콜론을 입력할 때마다 불편하다. 다음 과정을 따른다.
2
입력기 설정 창의 에드온 탭에서 Quickphrase...를 선택한다.
3
그림처럼 Semicolon에서 없음으로 변경한다.
4
확인 버튼을 클릭하여 설정을 끝낸다.
5

한/영키가 작동하지 않는 시스템

한/영키가 작동하지 않은 시스템인 경우만 다음 과정을 따라한다.
시스템 설정에서 언어 지원을 선택한다.
System Setting - Language Support
'언어 지원' 창에서 키보드 입력기가 fcitx인지 확인한다.
Language Support

시스템 설정에서 키보드 선택한다.
시스템 설정 - 키보드
자판 입력을 선택한다.
우선 모두 사용 안 함으로 설정한다.
구성 키를 오른쪽 Alt로 설정한다.
다음 입력 소스로 전환을 선택한 상태에서 한/영키를 쳐서 Multi_Key가 선택되도록 한다.
4

우분투 화면 오른쪽 상단의 키보드 모양의 아이콘을 클릭한 후 설정을 선택한다.
전역 설정 탭을 선택해서 나타난 화면을 다음과 같이 설정한다.
1
시스템 설정에서 텍스트 입력창을 선택한다.
System Setting - Text Input
다음 소스로 전환을 Multi_Key로 설정한다.
3
2

Oracle 11g XE 설치

http://meandmyubuntulinux.blogspot.kr/2012/05/installing-oracle-11g-r2-express.html
아래는 위 사이트에서 우분투 시스템에 오라클 설치 방법을 해석한 글이다.

오라클 공식 사이트에서 리눅스용 오라클 11g XE를 내려받는다.
http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
Accept License Agreement 라디오 박스에 체크하고 Oracle Database Express Edition 11g Release 2 for Linux x64를 선택한다.
로그인 화면으로 이동하는데 로그인하면 내려받기가 시작된다.
오라클 공식 웹사이트 회원이 아니면 회원 가입을 한다.
모두 내려받았다면 파일이 있는 디렉터리로 이동해 다음 명령을 수행한다.

unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
sudo apt-get install alien libaio1 unixodbc
cd Disk1
sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

/sbin/chkconfig 파일을 만든다.

sudo nano /sbin/chkconfig

다음을 복사하여 파일에 붙여넣는다.

#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01

파일을 저장하고 실행 권한을 부여한다.

sudo chmod 755 /sbin/chkconfig

커널 파라미터를 설정한다.

sudo nano /etc/sysctl.d/60-oracle.conf

다음 내용을 복사하여 파일에 붙인다.

# Oracle 11g XE kernel parameters  
fs.file-max=6815744  
net.ipv4.ip_local_port_range=9000 65000  
kernel.sem=250 32000 100 128 
kernel.shmmax=2066743296

마지막 줄 kernel.shmmax 값은 시스템에 설치된 램 메모리의 1/2을 할당한다.
계산 방법은 아래와 같다.

free -m

결과가 다음과 같으면

             total       used       free     shared    buffers     cached
Mem:          3942       3809        133        947         50       1571
-/+ buffers/cache:       2186       1756
Swap:         4083        378       3705

3942 * 1024 * 1024 * 0.5 = 2066743296

검증한다.

sudo cat /etc/sysctl.d/60-oracle.conf

새로운 커널 파라미터를 올린다.

sudo service procps start

검증한다.

sudo sysctl -q fs.file-max

다음을 실행한다.

sudo ln -s /usr/bin/awk /bin/awk
sudo mkdir /var/lock/subsys
sudo touch /var/lock/subsys/listener

오라클 설치 파일이 있는 Disk1 디렉터리에서 다음 명령으로 설치를 시작한다.

sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
sudo /etc/init.d/oracle-xe configure

설정에서 Oracle Application Express의 포트는 톰캣과 같은 WAS가 쓰는 8080을 피한다.
(아래에서는 8989로 설정했다.)
리슨너 포트는 디폴트 값인 1521를 그대로 사용한다. (디폴트 선택은 그냥 엔터를 치면 된다.)
관리자 계정인 SYS와 SYSTEM의 비밀번호를 설정한다.
부팅시 오라클 자동시작을 예스로 설정한다.(엔터)

Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express 
Edition.  The following questions will determine whether the database 
should be starting upon system boot, the ports it will use, and 
the passwords that will be used for database accounts.  
Press Enter to accept the defaults. 
Ctrl-C will abort.

Specify the HTTP port that will be used 
	for Oracle Application Express [8080]:8989

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts.
Note that the same password will be used for SYS and SYSTEM.
Oracle recommends the use of different passwords 
for each database account.
This can be done after 
initial configuration: <관리자 비밀번호>
Confirm the password: <관리자 비밀번호>

Do you want Oracle Database 11g Express Edition to be started 
on boot (y/n) [y]:

Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.

환경변수를 추가한다.

gedit ~/.bashrc

아래를 복사하여 .bashrc 가장 아래에 붙여넣는다.

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

다음 명령으로 환경 변수를 적용한다.

source ~/.bashrc

오라클을 시작한다.
(부팅시 오라클 시작을 예스로 설정했으므로 재부팅 후 이 명령은 필요 없다.)

sudo service oracle-xe start

SCOTT 계정 만들기

관리자 계정으로 오라클에 로그인한다.

sqlplus sys as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on 월 6월 29 12:04:33 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter password: <관리자 비밀번호>

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> @/u01/app/oracle/product/11.2.0/xe/rdbms/admin/utlsampl.sql

JDK 설치

http://www.oracle.com/technetwork/java/javase/downloads/index.html에서 jdk 9를 내려받는다.
다운로드 폴더로 이동하여 압축을 풀고 /opt로 옮긴다.

cd ~/다운로드/
tar -xvzf jdk-9.0.1_linux-x64_bin.tar.gz
mv jdk-9.0.1/ /opt/java

gedit ~/.bashrc 로 .bashrc 파일을 연다.

gedit ~/.bashrc & 

.bashrc 파일에 다음을 추가한다.

export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH

환경 변수 설정을 적용한다.

source ~/.bashrc

자바 버전을 확인한다.

java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

JDBC 테스트

다음 GetEmp.java 파일을 홈 디렉터리에 만든다.
GetEmp.java 파일을 생성하고 GetEmp.java 파일이 있는 디렉터리에서 다음을 수행한다.
(유닉스에서 환경변수 구분자는 : 이다.)

javac GetEmp.java
java -classpath \
.:/u01/app/oracle/product/11.2.0/xe/jdbc/lib/ojdbc6.jar GetEmp

메이븐 설치

sudo apt 명령어로 설치하지 말자.
https://maven.apache.org/download.cgi에서 최신 바이너리 파일을 내려받는다.
내려받은 디렉터리로 이동하여 압축을 풀고 생성된 디렉터리를 /opt로 옮긴다.

cd ~/다운로드/
tar -xvzf apache-maven-3.5.2-bin.tar.gz
mv apache-maven-3.5.2/ /opt/maven

gedit ~/.bashrc 로 .bashrc 파일을 연다.

gedit ~/.bashrc & 

.bashrc 파일에 다음을 추가한다.

export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH

환경 변수 설정을 적용한다.

source ~/.bashrc

메이븐 버전을 확인한다.

mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T16:58:13+09:00)
Maven home: /opt/maven
Java version: 9.0.1, vendor: Oracle Corporation
Java home: /opt/java
Default locale: ko_KR, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-98-generic", arch: "amd64", family: "unix"

이클립스 설치

자바 9를 설치한 시스템에 이클립스 최전 버전을 설치하고 테스트한 결과 메모리 누수 현상이 발생했다. 따라서 2017.11.13일 현재 IDE로 이클립스를 추천할 수 없다. 그럼에도 이클립스를 설치하려 한다며 다음을 참조할 것

https://www.eclipse.org/downloads/eclipse-packages/에서 Eclipse IDE for Java EE Developers 를 내려받는다.
내려받은 파일이 있는 디렉터리로 이동하여 압축을 푼다.

tar -xvf eclipse-jee-oxygen-1a-linux-gtk-x86_64.tar.gz

생성된 eclipse 디렉터리를 /opt 디렉터리로 옮긴다.

sudo mv eclipse /opt/

eclipse.desktop 파일 생성

cd ~/.local/share/applications/
gedit eclipse.desktop

다음을 복사하여 eclipse.desktop 파일에 붙여넣는다.

[Desktop Entry]
Name=Eclipse
Type=Application
Exec=/opt/eclipse/eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE
Name[en]=eclipse.desktop

eclipse를 검색하여 실행한다.
이클립스를 런처에 고정한다.

Git 설치

sudo apt install git

git 버전 확인을 확인한다.

git --version

SpringBbs 프로젝트를 설치하려면 다음을 수행한다.

git clone https://github.com/kimjonghoon/SpringBbs

이클립스를 열고 SpringBbs를 임포트한다.
컨텍스트 메뉴에서 Import
이클립스에서 메이븐 프로젝트 Import
pom.xml과 이클립스를 동기화한다.
Package Explorer 뷰에서 프로젝트를 선택하고 마우스 오른쪽 버튼으로 컨텍스트 메뉴를 연다.
Maven - Update Project Configuration을 차례로 선택한다.

오라클 테이블 생성

system 계정으로 접속해 다음 SQL문을 실행한다.

MySQL 설치

sudo apt install mysql-server mysql-client

MySQL 테이블 생성

다음 SQL문을 실행한다.

디렉터리 수정

net.java_school.commons.WebContants.java 파일을 열고 업로드 디렉터리를 자신의 시스템에 맞게 수정한다.

테스트

SpringBbs의 루트 디렉터리에서 다음 명령을 실행한다.

mvn jetty:run

http://localhost:8080에 방문해 테스트한다.

참고 관련 글