Python 개발 환경

평소 해킹에 관심이 많아 개발을 하면서 틈틈히 해킹관련 공부를 해 왔다. 그러던 중 훌륭한 책을 만나 이렇게 Python 의 세계에 빠지게 된다.

Gray Hat Python - Python Programming for Hackers and Reverse Engineers

이 책은 처음부터 해킹에 관련 된 내용으로 일관한다. Python 이 먼지도 모르고 이 책을 읽다간 많이 아픔을 격을 것이다. 먼저 파이썬에 대해서 기초를 다진다면 공식싸이트에 있는 Tutorial 이나 기타 검색으로 "Python 강좌"를 찾는 것이 먼저 일 것이다.

본론으로 들어가 환경구축을 하기 위해 내 맥에 어떤 상태인지 확인이 필요하다. Mountain Lion 은 우선 파이썬을 기본적으로 설치가 되어 있는 상태이다. 그럼 다음으로 볼 것이 wxPython 으로 GUI 로 파이썬을 개발할 수 있게 도와 주는 툴킷으로 크로스 플랫폼(멀티 플랫폼)을 지원한다.

wxPython 설치 유무 판다은 무식한 판단으로 터미널을 열고 다음과 같이 입력 후 파이썬을 실행 한다.

(11:27:45) Mac:~ $ python

Python 2.7.2 (default, Oct 11 2012, 20:14:37) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>


다음과 같이 파이썬이 실행 되면 >>> 꺽쇠 다음 아래와 같이 입력 후 엔터를 친다.

 >>> from wxPython.wx import * 


오류 메시지가 보이지 않으면 현재 운영체제에는 wxPython 이 설치 되어 있으므로 이클립스에서 환경을 구축으로 넘어간다. 허나, Mountain Lion 에서 wxPython 공식 싸이트에서 받은 설치 파일이 정상적으로 설치가 되지 않는다.

위와 같은 증상으로 설치가 않되므로 다른 운영체제에 wxPython 이 설치가 안되어 있다고 가정하고 설치를 시도해 보겠다.

우선 위와 같이 팝업 창이 뜨면 "취소" 버튼을 클릭하고 터미널 창으로 이동 한다. 터미널 창에는 다음과 같이 입력하여 wxPython 을 설치 한다.


(11:35:27) Mac:~ $ sudo installer -pkg /Volumes/wxPython2.9-osx-2.9.5.0-cocoa-py2.7/wxPython2.9-osx-cocoa-py2.7.pkg -target /


성공적으로 설치가 완료되면 이클립스를 다운 받아 원하는 곳에 압축을 풀다. 여기서 주의해야 할 점은 앞으로 PyDev 플러그인을 이클립스에 추가하고 파이썬을 지정해 줘야 하는데 이 때 디렉토리명에 대한 문제가 발생한다. 나는 "01.개발툴" 이란 디렉토리에 이클립스를 압축해제 하고 실행 후 환경설정을 하니 문제가 발생했다. 이유는 한글 디렉토리명으로 인해 발생한 것이다. 그러므로 이클립스 실행 파일이 존재하는 경로까지 한글이 있는 디렉토리가 있다면 이클립스 디렉토리를 오류가 안나도록 한글 디렉토리명이 없는 경로에 이동시켜야 한다. (단, 파인더에서 시스템, 라이브러리 디렉토리는 한글로 보일 뿐 실제 디렉토리명은 영어이다.)

    이클립스 설치시 주의점 - 이클립스 실행 파일이 있는 경로까지 디렉토리명들이 한글이 있으면 PyDev 설정에서 오류 발생

이클립스는 eclipse.org 에서 최신 버전을 다운받아 압축을 풀고 다음으로 PyDev 플러그인을 설치 해야 한다. PyDev 플러그인은 이클립스를 실행 한 후에

위 그림에서 처럼 환경설정을 클릭 한다. Help/Install New Software 를 선택한다. 아래 그림과 같다.

그럼 아래 그림과 같은 창이 나오는데 여기서 add 를 클릭 해 새로운 플러그인을 추가 할 수 있게 한다.

 

PyDev 플러그인 추가 주소는 위 그림에서와 같이 http://pydev.org/updates 이다. OK 버튼을 클릭 후 

위와 같은 화면이 나오면 PyDev 만 선택해서 설치해도 되고 밑에 있는 플러그인도 체크를 하여 설치 하여도 된다. 이 후 PyDev 설정을 해 주어야 한다. 이클립스가 다시 실행이 되면 환경설정으로 들어가 아래 그림과 같이 Interpreter - Python 을 선택 한다.

위 그림은 설치가 되어 있어 보여지는 것이고 만약 설치가 안되어 있다면 우측 창에 있는 위-아래 항목은 비어 있어야 정상이다. 설치가 안되어 있다면 우측  Auto Config 버튼을 클릭 하면 자동으로 Python과 wxPython을 이클립스가 인식해 설치를 도와 준다. 위에서 말한 디렉토리 한글 오류는 여기서 발생되어 진다. 이클립스 실행 파일이 있는 경로까지 한글명으로 된 디렉토리가 있다면 한글명으로 된 디렉토리가 없는 곳으로 이동하여 Auto Config를 다시 실행한다.

여기까지가 Python 개발을 위한 환경 구축이다.

'02. 운영체제 > OS X' 카테고리의 다른 글

MacPorts 설치  (0) 2013.10.14
Mountain Lion iCal 과 구글 캘린더 연동  (0) 2013.09.16
맥북 프로 A1297 모델에 우분투 설치  (0) 2012.11.07

MacPorts 란?

MacPorts는 Command-line 에서 오픈소스 프로그램을 쉽게 컴파일, 설치, 업데이트 등을 할 수 있도록 디자인 된 X11 또는 Aqua 기반 맥 OS X 용 소프트웨어이다.
먼저 MacPorts를 설치하기 위해서 Xcode (version 4.4 or later for Mountain Lion, 4.1 or later for Lion, 3.2 or later for Snow Leopard, or 3.1 or later for Leopard) 가 필요하다. 이는 Xcode 에 있는 Command Line Tools 이(가) 필요하기 때문이다.
 

Xcode는 AppStore 또는 애플개발자 센터에서 무료로 다운받을 수 있다. 이왕 하는 김에 개발자 등록을 해 두도록 하는 것도 좋을거 같다. 매버릭스(Mavericks OX S 10.9 버젼)을 개발하기 위해서 OS X 10.9 doc set을 다운 받으려면 애플 계정이 필요하다. 개발자와 먼 분들은 상관이 없다. 필요한 것은 Command Line Tools 이거니까!

위 그림은 Xcode 를 설치 후 실행 하면 좌측 상단 Xcode/Preferences… 를 선택하면 나오는 창이다.

Command Line Tools 까지 설치 했다면 이젠 MacPorts 를 설치하면 된다. MacPorts 다운로드는 http://distfiles.macports.org/MacPorts/ 또는 http://www.macports.org/install.php 여기서 자신의 운영체제에 맞는 파일을 다운 받는다. 나는 Mountain Lion이므로 http://distfiles.macports.org/MacPorts/MacPorts-2.2.0-10.8-MountainLion.pkg 이것을 다운받아 설치했다.

설치가 완료되면 이제 터미널에서 Command line 명령으로 자신에게 필요한 프로그램을 설치 할 수 있다. 먼저 난 wget 을 설치 했다.

 

MacPorts command line 에서 사용법은 간단하다. sudo 다음 port 를 입력 후 install, update 등 우분투에서 사용하는 명령어를 그대로 사용하면 된다.

~$ sudo port install wget

위 명령어를 입력하면 다음과 같은 화면이 나오면서 wget 과 연관된 모든 프로그램을 설치한다.

---> Computing dependencies for wget
---> Dependencies to be installed: gettext expat libiconv ncurses gmp gnutls libidn libtasn1 nettle p11-kit curl-ca-bundle desktop-file-utils glib2 libffi perl5 perl5.12 gdbm zlib popt libxslt libxml2 xz libgcrypt libgpg-error pcre bzip2 libedit
---> Fetching archive for expat
---> Attempting to fetch expat-2.1.0_0.darwin_12.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/expat
---> Attempting to fetch expat-2.1.0_0.darwin_12.x86_64.tbz2.rmd160 from http://jog.id.packages.macports.org/macports/packages/expat
---> Installing expat @2.1.0_0
---> Activating expat @2.1.0_0
.
.
.

To customize wget, you can copy /opt/local/etc/wgetrc.sample to /opt/local/etc/wgetrc and then make changes.

---> Cleaning wget
---> Updating database of binaries: 100.0%
---> Scanning binaries for linking errors: 100.0%
---> No broken files found.

 

 

아래 그림처럼 iCloud 계정 활성화 체크를 해제 해 주면 구글 캘린더와 연동이 시작된다.

맥북 프로 A1297 모델에 우분투 설치

맥 북 브로 A1297 모델 우분투 설치에 가장 큰 난관은 무선 이더넷 카드 설정이다. 다른건 제대로 다 되는데 이것만 안되는 이유는 이 모델에 설치된 이더넷 카드(BCM4331)만 지원이 제대로 안되기 때문이다. 운이 안따르는 것인가... 내 노트북 모델이 이 모델이다...

검색을 하면 한국에서 해결 본 글은 없다. 그렇다고 외국애들이 올린 정보도 많은게 아니다. 특수 상황이다...

우선 이곳 에서 도움을 얻어 차례차례 설정을 해 보도록 하겠다.

환경
1. 맥북프로 17인치 A1297 모델
2. 우분투 12.10 맥용 (ftp://ftp.kaist.ac.kr/ubuntu-cd/12.10/ubuntu-12.10-desktop-amd64+mac.iso)
3. kernel : 3.5.0-18-generic

1. kernel-header 업그레이드

mac@ubuntu:~$ uname -r 
mac@ubuntu:~$ cd /tmp 
mac@ubuntu:/tmp$ wget http://dl.dropbox.com/u/47950494/upubuntu.com/linux-kernel-3.6 -O linux-kernel-3.6 
mac@ubuntu:/tmp$ chmod +x linux-kernel-3.6 
mac@ubuntu:/tmp$ sudo sh linux-kernel-3.6


2. 리붓


3. 펌웨어 업그레이드 

mac@ubuntu:~$ sudo apt-get update 
mac@ubuntu:~$ sudo apt-get install bcmwl-kernel-source 
mac@ubuntu:~$ modprobe -r b43 ssb wl brcmfmac brcmsmac bcma 
mac@ubuntu:~$ modprobe wl


4. 3개의 파일 다운받기 (파일 첨부함)
compat-wireless : go to Linux Wireless and download compat-wireless-2.6.tar.bz2.

compat-wireless-2011-08-27.tar.bz2

[수정]
위 파일 대신 이곳(
http://linuxwireless.org/download/compat-wireless-2.6/)에서 최신 파일을 받아 설치하면 오류 없이 진행된다.
the latest version of bw43-fwcutter (version 015)

b43-fwcutter-015.tar.bz2

- Broadcom's proprietary driver to extract the firmware

[다운로드]

- 첨부한 파일을 B4331 디렉토리로 이동시킨다.
mac@ubuntu:~$ sudo mkdir ~/B4331
mac@ubuntu:~$ cd ~/B4331 


- 다운 받은 파일 압축 해제
mac@ubuntu:~/B4331$ tar xf compat-wireless-2011-08-27.tar.bz2
mac@ubuntu:~/B4331$ tar xf b43-fwcutter-015.tar.bz2
mac@ubuntu:~/B4331$ tar xf broadcom-wl-5.100.138.tar.bz2
-
mac@ubuntu:~/B4331$ cd compat-wireless-2011-08-27
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ make 


- 여기서 make 를 하면 오류가 2개가 나오는데 그냥 넘어가서 install make 한다.
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ sudo install make
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ cd ..
mac@ubuntu:~/B4331$ cd b43-fwcutter-015
mac@ubuntu:~/B4331/b43-fwcutter-015$ make
mac@ubuntu:~/B4331/b43-fwcutter-015$ export FIRMWARE_INSTALL_DIR="/lib/firmware"
mac@ubuntu:~/B4331/b43-fwcutter-015$ sudo ./b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" ../broadcom-wl-5.100.138/linux/wl_apsta.o
mac@ubuntu:~/B4331/b43-fwcutter-015$ cd ..
mac@ubuntu:~/B4331$ cd compat-wireless-2011-10-09
mac@ubuntu:~/B4331$ sudo make wlunload
mac@ubuntu:~/B4331$ sudo modprobe b43


- 다음과 같이 하여 b43 을 /etc/modules 마지막 줄에 입력한다.
mac@ubuntu:~/B4331$ sudo gedit /etc/modules

- 다음과 같이 하여 /etc/pm/config.d/default 파일을 생성 후 SUSPEND_MODULES="b43" 를 추가한 후 저장
mac@ubuntu:~/B4331$ sudo gedit /etc/pm/config.d/default 


- 위 작업은 대기모드로 전환되면 무선연결이 끈기는데 다시 정상화면으로 돌아오면 잘 안잡히는 걸 방지하기 위해 대기모드시 꺼지지 않게 하기 위함.


- 마무리 단계로 make 시 오류가 나오는데 무시
mac@ubuntu:~/B4331$ cd ~/B4331/compat-wireless-2011-08-27
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ make clean
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ make
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ sudo make install
mac@ubuntu:~/B4331/compat-wireless-2011-08-27$ sudo reboot


여기까지 완료가 되면 재부팅 후 무선랜이 자동으로 잡히게 된다.