Ubuntu 14.04 서버 셋팅 - python 3.4 & virtualenv


Ubuntu 14.04 initial server setup

서버 셋팅때마다 까먹고 구글 검색하는 것을 방지해 보자.


유저를 등록한다.

adduser lainfox

sudo 그룹에 넣는다

gpasswd -a lainfox sudo

Root 로그인을 금지

# /etc/ssh/sshd_config 파일
PermitRootLogin no

ssh 재시작

service ssh restart

Python 3 셋팅

파이썬 버전 체크

python --version

기본적으로 ubuntu 14.04는 python 2.7.6 으로 나옴 python 2.7 연결을 제거하고 python 3 버전을 연결하자.

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

다시 python --version 를 하면 Python 3.4.0 으로 나온다.

pip install

python3 버전의 pip 를 설치하자. ( package installer for Python )

sudo apt-get update 을 먼저 한 후에

sudo apt-get install python3-pip

virtualenv

sudo pip3 install virtualenv

원하는 디렉토리로 가서 ( 여기서는 /home 에 virtual-py 라는 디렉토리를 mkdir 로 생성했다. )

virtualenv oroch-env

oroch-env는 플젝이름. 그럼 oroch-env 라는 폴더가 생기고 영역이 생긴다. 활성화를 시키려면

source oroch-env/bin/activate

그러면 입력하는 프롬프트가

(oroch-env)lainfox@vultr:/home/virtual-py$

이런식으로 virtual 영역에 들어온 것을 환영해 준다. 이렇게 virtual 영역에 들어와 있을 때에는 python 버전이 2이던 3이던 상관없이 pip3 대신 그냥 pip를 쓰면 된다. 가상환경 잡을때 이미 버전 셋팅이 되었기 때문. 또한 sudo 를 쓸 필요도 없다.

참고로 가상환경에서 나가려면 비활성화 명령어를 입력.

deactivate

django

pip install django
django-admin --version 아마도 최신 버전의 django 를 확인할 수 있을 것이다.  `Successfully installed django-1.8.5`

python 패키지 중 psycopg2, Pillow, lxml 을 사용하기 위해 미리 준비할 녀석

sudo apt-get install python3-dev libpq-dev python3-setuptools
sudo apt-get install libxml2-dev libxslt-dev
sudo apt-get install libtiff4-dev libjpeg8-dev zlib1g-dev \
    libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev

python manage.py 를 실행하려는데 ipcalc 패키지에서 에러가 발생.

if ip > 0xffffffffffffffffffffffffffffffffL:
                                              ^
SyntaxError: invalid syntax

python 3.4를 사용하면서 ipcalc 패키지가 에러가 나는 경우 github 에 이슈로 해결.

pip install git+https://github.com/tehmaze/ipcalc

Ref:

  • https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04
  • https://github.com/tehmaze/ipcalc/issues/38

Related Posts

Web Front-end developer가 하는일은 무엇인가 그리고 웹개발자에게 바라는 JS

quora에 올라온 글을 재밌게 번역해 주신 내용 중에 프론트엔드 개발자가 하는 일

React transmit with flux store, dynamic data with state

Transmit 또는 Relay를 flux와 함께 사용하기

Apply, call, bind - javascript

apply, call, bind 정리하기

Isomorphic과 Universal javascript에 대한 단상

Isomorphic, Universal에 대해 들어보셨나요?

Hintholder - 모든 브라우저를 위한 placeholder

크롬, 파폭, 사파리 등 모던 브라우저부터 구버전 IE 까지 사용할 수 있는 placeholder

React, react-router, history npm 설치시 버전 충돌

react-router가 react와 버전이 맞지 않을 때 해결

기존에 익숙하게 사용하던 ES5 Javascript 와 ES6 비교

Front-end 에서 많이 사용하는 Javascript의 ES6 버전을 아직 많이 사용하고 있지 않다. 비교를 해보자.

github page로 blog 시작

Blog - github page with jekyll.

Pixyll in Action

See what the different elements looks like. Your markdown has never looked better. I promise.