The Pursuit of Happyness

반응형

테스트 환경


Ubuntu (16.04.1 LTS)


Virtual Box (V5.1.14)


Vagrant (1.9.1)



먼저 Vagrant 에 대해서 간략히 소개하자면.. 개발환경을 쉽고 빠르게 설정하기 위한 Virtual Machine 관리 툴 입니다. 


Vagrant는 Virtual Box 같은 Virtual Machine 프로그램을 명령어로 제어합니다.



@ Virtual Box 와 Vagrant 설치 


설치는 OS 환경에 따라 약간씩 다르지만 Ubuntu 기준으로 설명합니다. (Windows 나 Mac OS의 경우 GUI 로 쉽게 설치가 가능합니다.)


1) 먼저 Virtual Box 를 설치합니다. 


1. Virtual Box 설치에 앞서서 필요한 의존성 라이브러리들을 설치합니다. 


$ sudo apt install libqt5x11extras5 libsdl1.2debian libsdl-ttf2.0-0


각자 환경에 따라서 위의 라이브러리 이외에도 추가로 필요한 것들이 있을 수도 있습니다.


2. 홈페이지에서 deb 패키지를 다운로드 합니다. (https://www.virtualbox.org/wiki/Linux_Downloads)


3. dpkg 명령어로 다운로드 받은 패키지를 설치합니다. (아래는 5.1.14 버전 예시)


$ sudo dpkg -i  virtualbox-5.1.5.1.14-112924-Ubuntu-xenial_amd64.deb



2) 이번에는 vagrant 를 설치합니다.


1. 홈페이지에서 deb 패키지를 다운로드 합니다. (https://www.vagrantup.com/downloads.html)


2. dpkg 명령어로 다운로드 받은 패키지를 설치합니다. (아래는 1.9.1 버전 예시)


$ sudo dpkg -i vagrant_1.9.1_x86_64.deb 



@ Vagrant Box


Vagrant는 Virtual Machine을 쉽고 빠르게 생성하기 위해서 Box를 이용합니다.


Box 는 Virtual Machine 을 생성하기 위한 이미지 정도로 이해하시면 됩니다.



1) 먼저 Box 관리에 대한 명령어를 알아보겠습니다.


1. 현재 로컬 컴퓨터에서 사용가능한 Box들을 확인하는 방법


$ vagrant box list 



2. 로컬 컴퓨터에 필요한 Box 를 추가하는 방법


먼저 필요한 Box 의 URI를 확인합니다. Vagrant 홈페이지에 있는 Box 링크에서 찾을 수도 있고, (https://atlas.hashicorp.com/boxes/search) 아니면 필요한 Box 이미지를 다운로드 받아서 파일 경로를 지정할 수도 있습니다.


아래 명령어를 사용하면 vagrant 가 Box를 리스트에 추가합니다.


$ vagrant box add [box name or URI] --clean



3. 로컬 컴퓨터에 있는 Box를 제거 하는 방법


필요에 따라 같은 Box의 다른 버전들을 같이 가지고 있는 경우 버전을 명시해 주어야 합니다.


$ vagrant box remove [box name] --box-version [box version] 



4. 로컬 컴퓨터의 Box가 최신 버전인지 확인하는 방법


$ vagrant box outdated --global



@ Virtual Machine 관리 명령어


1. Virtual Machine 생성


$ vagrant init [box name or URI] --box-version [box version]


위의 명령어는 명령어를 실행한 경로에 "Vagrantfile" 을 생성하는데, 이 파일은 실제 Virtual Machine 을 생성할 때 필요한 설정 정보입니다.


실제로 존재하지 않는 위치를 입력해도 "Vagrantfile" 은 생성이 되지만, 다음 과정에 에러가 발생하게 됩니다.


2. Virtual Machine 시작 


$ vagrant up


위의 명령어는 "Vagrantfile" 이 있는 위치에서 실행되어야 하며, 설정파일에 맞게 새 Virtual Machine 을 Virtual Box에 실제로 생성하고 Virtual Machine 을 시작합니다. 만약 로컬 컴퓨터에 존재하지 않는 Box의 경우라도 위의 Box 링크 사이트에서 검색이 가능한 Box의 경우 다운로드하고 로컬 컴퓨터에 Box를 추가하고 나서 Virtual Machine을 생성하게 됩니다.


3. Virtual Machine 에 접속하기


$ vagrant ssh


위의 명령어를 이용해서 해당 Virtual Machine의 ssh 서비스에 접속할 수 있습니다. "Vagrantfile" 이 위치한 곳에서 실행해야 하며, ssh 를 직접 이용하고자 한다면 인증 키를 확인해서 접속할 수 있으나 상당히 번거롭기 때문에 위의 명령어를 이용하는 것이 가장 편합니다. 윈도우 서버를 위한 rdp 나 powershell 명령어도 있는데 제대로 동작하는지 확인은 해보지 못했습니다.


4. Virtual Machine 종료시키기


$ vagrant halt



5. Virtual Machine 삭제하기


$ vagrant destroy



~

반응형

반응형

Machine Learning 에서 많이 사용되는 Python 기본 설치 방법입니다. 이 포스트에서 Python과 같이 설치할 라이브러리는 Machine Learning에서 필수적으로 사용되는 수치연산을 위한 numpy 와 데이터를 플롯팅 해주는 matplotlib 라이브러리 입니다.


참고로 현재 Python은 3.x 버전이 릴리즈 되었으나 3.x 버전과 2.x 버전의 차이가 크고, 아직은 2.x 버전의 라이브러리가 많아서 2.x 버전도 많이 사용되고 있어서 2.x 버전을 기준으로 정리해 보았습니다. 3.x 버전에서는 numpy 등의 라이브러리가 내장되어 있어서 설치는 용이하겠지만 아직까지는 Machine Learning 책들도 2.x 버전 기준으로 설명을 하고 있어서 2.x 버전 설치 방법을 알아두는 것이 아직은 의미가 있을 듯 합니다.


Python 및 라이브러리 설치 방법은 OS 에 따라서 약간씩의 차이가 있습니다. MacOS 의 경우 기본으로 Python이 설치되어 있고, Linux의 경우 apt 나 yum 등의 명령어로 설치가 가능합니다. 윈도우의 경우 여러가지 설치 방법이 있겠지만 가장 기본적인 설치 방법을 소개해 보겠습니다. 


1. Python 설치

Python은 아래 사이트에서 관리 됩니다.

https://www.python.org/

Download 탭을 클릭해서 2.x 버전 중에 최신버전 (현재 2.7.12)  다운로드 페이지로 갑니다.

본인의 개발 환경에 따라서 32bits 윈도우를 사용하면 Windows x86 MSI installer 를 64bits 윈도우를 사용하면 Windows x86-64 MSI installer 를 선택해서 다운로드 합니다.

다운로드 받은 파일을 더블클릭해서 설치합니다.


2. numpy 라이브러리 설치

Python에서 라이브러리를 설치하는 방법은 여러가지가 있습니다. 크게 세가지 방법이 있는데, 라이브러리를 직접 설치하거나, setup.py 를 실행하거나, pip 를 이용합니다.

numpy 의 경우에도 여러가지 설치 방법이 있는데, 여기서는 setup.py 를 이용해서 설치해 보도록 하겠습니다.

numpy 의 경우는 C++ 로 빌드된 모듈을 참조해서 사용하기 때문에 설치시에 Visual C++ 9.0 컴파일러를 요구합니다.

Visual C++이 설치되어 있지 않다면, 아래 마이크로 소프트 사이트에서 무료로 다운로드 받아서 설치합니다.

https://www.microsoft.com/en-us/download/details.aspx?id=44266


sourceforge 에서 numpy 라이브러리를 다운로드 합니다. 

https://sourceforge.net/projects/numpy/files/NumPy/

numpy 에 대한 최신정보는 아래 사이트에서 확인 가능합니다.

http://www.numpy.org/

최신버전을 다운로드 받았으면, 적당한 곳에 압축을 풉니다. (여기서는 C:\numpy 에 압축이 해제되었다고 가정)


이제 본격적인 설치를 위해서 커맨드 프롬프트를 실행합니다. (윈도우키 + R 누르고 cmd 입력)

numpy 압축해제 경로로 이동


cd C:/numpy


그리고 커맨드 프롬프트 상에서 다음과 같이 실행하여 numpy 를 설치합니다. (python 설치는 C:/Python2.7 에 되어 있다고 가정)


 C:/numpy>C:/Python2.7/python.exe setup.py install 


중간에 라이브러리를 컴파일 하는 시간이 상당히 오래 걸립니다. (사양에 따라 다르겠지만.. CPU도 거의 100% 차지합니다..)

적당히 기다리면 설치가 완료됩니다.


3. matplotlib 설치

관련 자료는 아래 사이트에서 찾아보실 수 있습니다.

http://matplotlib.org/index.html


아래 링크로 가시면 각 OS 별로 라이브러리 설치 방법이 소개되어 있습니다.

http://matplotlib.org/users/installing.html#build-windows


사이트에서는 Python을 처음 설치하면 WinPython 이나 Python(x,y) 등을 이용하길 권장하고 있으나, 표준 Python 설치 환경에서는 pip를 이용하라고 되어 있습니다. 참고로 CentOS (Linux) 에서는 pip 으로 설치가 제대로 되지 않아서, yum으로 설치했던 기억이..


커맨드 프롬프트에서 아래 명령어를 이용해서 설치하면 됩니다.


C:/Python2.7>python.exe -m pip install -U pip setuptools

C:/Python2.7>python.exe -m pip install matplotlib








반응형

반응형

Linux 콘솔에서는 기본적으로 하나의 foreground job 을 수행할 수 있는데, 여러 개의 작업을 동시에 실행할 때에는 screen 명령을 이용해서 가상의 콘솔을 이용할 수 있다.


1. 기본 사용법


> screen 



2. 스크린 추가하기


^A^C



3. 스크린 닫기


exit : 현재 스크린 닫기

^D : 현재 스크린 닫기

^A\ : 전체 스크린 종료 및 screen 명령 종료



4. 스크린 전환하기


^A^P : 이전 번호의 스크린으로

^A^N : 다음 번호의 스크린으로

^A0, ^A1, ... ^A9 : 해당 번호의 스크린으로 이동

^A' : 이동할 스크린 번호 입력해서 이동

^A^A : 바로 전에 사용한 스크린으로 이동



5. 현재 스크린 확인


^AN : 현재 스크린 번호 확인

^A^W : 전체 스크린 리스트 확인





반응형

반응형

Linux에서는 여러 개의 프로그램을 동시에 실행시킬 수가 있는데, 


하나의 콘솔창에서는 보통 하나의 Job만 foreground에서 실행이 가능하고, 나머지 Job은 Background에서 실행이 된다.


이 포스트에서는 Foreground / Background Job을 관리하는 방법에 대해서 알아본다.


1. Job


현재 콘솔에서 실행되고 있는 Job들의 리스트를 확인하는 명령어


> jobs 



2. 백그라운드에서 프로그램을 실행하는 방법 


명령 끝에 '&' 를 붙여준다. 실행 하게 되면 job id와 프로세스 id 를 보여준다. (아래 예제에서는 job id = 1, process id = 910)


> sleep 1000 &

[1]+ 910



3. 현재 실행중인 명령을 잠시 중단하는 방법


명령어 실행 후 ^Z  (ctrl + z) 를 입력한다.


> sleep 1000 &

^Z
[1]+ Stopped          sleep 1000


Stopped 라고 나오지만 실제로는 종료되지 않은 상태로 남아 있다. (jobs 명령어로 확인이 가능)



4. 잠시 중단한 명령을 백그라운드로 보내는 방법


bg %[id]


> bg %1

[1]+ sleep 1000 &



5. 백그라운드에서 실행중인 job을 foreground로 바꾸는 방법


fg %[id]


> fg %1

sleep 1000



6. 실행 중인 명령을 중단하는 방법


명령어 실행 후 ^C (ctrl + c) 를 입력한다.



참고로 백그라운드에서 작업 중인 명령을 종료하기 위해서는 해당 job을 foreground로 넘긴 후 ^C 를 입력하면 된다.


혹은 kill 명령어를 이용해서 해당 process 를 종료 하면 된다. (process id 는 ps 명령어로 검색한다.)


> kill 910







반응형

반응형

현재 사용중인 SWAP 메모리 확인

more /proc/swaps


SWAP 메모리로 사용할 파일 생성 (파일당 1GB)

cd /var/tmp

dd if=/dev/zero of=swapfile1 bs=1024 count=1048576

dd if=/dev/zero of=swapfile2 bs=1024 count=1048576


SWAP 영역으로 설정

/sbin/mkswap -c -v1 /var/tmp/swapfile1

/sbin/mkswap -c -v1 /var/tmp/swapfile2


SWAP 파일 사용시작

/sbin/swapon /var/tmp/swapfile1

/sbin/swapon /var/tmp/swapfile2


바뀐 SWAP 메모리 확인

more /proc/swaps


시작시 SWAP 메모리가 적용이 되도록 설정
vi /etc/rc.d/rc.sysinit

아래 라인을 검색
swapon -a

다음 내용을 같은 줄에 추가
swapon /var/tmpswapfile1 swapon /var/tmp/swapfile2

결과는 다음과 같음
swapon -a swapon /var/tmpswapfile1 swapon /var/tmp/swapfile2


반응형