2016년 3월 16일 수요일

파이썬의 라이브러리 NumPy + SciPy _____ 1

파이썬에는 유용한 라이브러리들이 많은 것으로 알고 있는데,

얼마전에 우연히 호기심이 발동한 NumPy와 SciPy를 사용하는 방법을 정리해 두고 싶었다.


이유는.....

자칫 잘못하면 미궁에 빠져서 시간을 낭비할 수도 있겠다 싶어서....


우선 사용환경은,

OS : MS-WindowsXP sp3
Python : 2.7.1 (이 버전이 적합하다는 의미가 아니라, 처음에 이 버전으로 시작했다는 뜻. 나중에 업그레이드 하게 된다.)


먼저 NumPy와 SciPy를 찾아보자.
왜 두개의 라이브러리가 종종 자주 언급되는지는 금방 알게 된다.
같은 곳에서 만들어서 배포하고 있기 때문...

http://www.scipy.org/




이제 좌측 상단의 Install을 클릭해서 들어가면,



Windows와 Mac 사용자들은 과학 기술용 Python 패키지를 통째로 받아서 설치하는게 젤 쉽다고 가르쳐준다.
몇개의 배포판들이 있으니 각 배포판의 특징을 보고 자신에게 적당한 것을 고르면 된다.

하지만, 난 이미 Python이 설치되어 있으니 이 방법은 패스.

설치에 관한 설명이 있는 이 페이지의 하단을 가면 이런 부분이 나온다.

필요한 패키지들별로 각각의 링크가 되어 있으니, 사용자가 자신의 구미에 맞게 원하는 것을 설치하라는 것.

그리고 마지막의 문구가 눈에 똭~ 들어 온다.

Windows용 : 크리스토프 골케(?)라는 사람이 Python용 패키지들을 미리 빌드해서 설치할 수 있게 제공한다는 것.


흠....아마도 Python용 패키지들은 그냥 다운로드 받아서 적당한 위치에 복사하는 게 아니라 특별한 설치 과정이 필요한가 보다.

혹시라도 컴파일이 필요하다고 하면 뭘 싸야할지도 고민이니까 이걸 가져다 쓰자....라고 생각....


해당 사이트는 http://www.lfd.uci.edu/~gohlke/pythonlibs/

전혀 꾸밈이 없는 페이지.....이런 거 오래 못가던데....



패키지가 너무 많은 관계로 반드시 Ctrl-F를 이용해서 찾아야 한다.

그리고 모든 패키지의 나열을 한 페이지에서 하고 있기 때문에 브라우저의 부하가 심하다.

성능이 좀 떨어지는 컴퓨터에서는 부담을 느낄 수 밖에 없는 상황이다.



먼저 NumPy의 경우엔, MKL(Math Kernel Library)와 vanilla 빌드의 두가지가 있는데, 설명을 읽어 보니 MKL.
Python 2.x(cp27)에 Win32(win32) 환경이니 맨 위의 것을 다운로드 받는다.


SciPy의 경우에도 cp27과 win32인 맨 위의 것을 다운로드 받는다.
SciPy를 사용하려면 NumPy가 있어야 한다고 되어 있다.


그런데 다운로드 받은 패키지의 확장자가 whl임을 알 수 있는데,
이걸 설치하려면 pip이라는 것이 필요하다고 되어 있다.


그런데 pip은 Python 2.7.9 이상에 포함되어 있다고....ㅠ.ㅠ


별 수 없이 Python 업데이트 감행.

현재 최신 버전은 Python 2.7.11이고 기존 버전을 지우지 않고 설치하면 기존 버전에 Overwrite한다.


이제 [Python 설치 디렉토리]/Script/pip.exe가 있으므로 pip install [whl파일]을 실행하면 된다.....였는데...

pip의 버전이 낮아서 설치가 안 됨.

다행히 바로 pip을 업그레이드 하는 명령을 알려 준다.
(지금은 까먹었다. python -m pip install pip --upgrade 이게 맞는지 긴가민가 알쏭달쏭)


그렇게하고 나서 NumPy와 SciPy 설치

(pip가 이미 Python의 폴더를 알고 있으므로 별도로 설치할 폴더를 지정해주고 그럴 필요는 없다.)

그렇게 우여 곡절 끝에 다 설치가 되었다.


설치된 NumPy와 SciPy는 [Python 설치 디렉토리]/Lib/site-packages/에 존재하고 있으니 궁금하면 살펴 보길.


이제 scipy의 홈페이지에서 Getting Started 페이지를 가서 예제 프로그램을 저장하고 실행해 보자.
http://www.scipy.org/getting-started.html




헉...에러....

여기에서부터 본격적인 고난의 시작이다.

난 이 문제를 풀기 위해 고생을 좀 하고 있다.

먼저....파이썬의 저 난삽한 에러 메시지를 보는 법부터...

파이썬의 메시지는 처리한 순서대로 나온다. (most recent call last)

그러니까

1) example.py의 9번째 줄에 있는
   from scipy import special, optimize
  를 처리하기 위해서
2) [Python 설치 디렉토리]/Lib/site-packages/scipy/special/__init__.py를 읽어 와서 처리하던 중,
3) 627번째 줄에 있는
   from ._ufuncs import *
  를 처리하려고 했는데,
4) 여기에서 에러가 발생. 에러의 원인은
  Import Error : DLL load failed: 지정된 프로시져를 찾을 수 없습니다.


그러면 실제 저 모듈이 존재하는 걸까?


__init__.py도 존재하고 _ufuncs.pyd도 존재한다.


그러면 에러가 발생한 소스는?
__init__.py

에러메시지 그대로다.

아직은 python에 대해 완전히 초보와 마찬가지라 대체 무엇이 문제인지 감을 잡지도 못하겠다.

*.py가 아닌 *.pyd는 무슨 파일일까?
*.py가 아닌 *.pyd를 import 할 수 있는 걸까?
에러메시지의 DLL이라는 건 또 무슨 뜻일까?


====================================================
참고 삼아서, 아주 구닥다리 컴에서 Ubuntu Linux 10.04를 사용 중이다.
이제는 더 이상 지원을 해 주지도 않는 버전이라 패키지들의 업데이트 불가능한 상황.
확인해 보니 여기에 Python 2.6.5와 NumPy 1.3.0, SciPy 0.7.0이 설치되어 있었다.

간단한 예제 프로그램은 문제 없이 돌아가고 있는 상황.

그래서 위에서 문제가된 부분이 어떻게 되어 있는지 확인 해 보았다.


버전이 낮아서 그런지, 문제가 되었던 _ufuncs.pyd나 비슷한 이름의 파일은 보이지 않는다.

또한 __init__.py에서도 _ufuncs를 import하지도 않는다.
==========================================================


==========================================================
import error가 발생한 원인은, 크리스토프 골케의 바이너리가 MS-Windows XP를 지원하지 않기 때문인 것으로 보인다.

Windows XP및 WINE과는 호환성 없음
아직까지도 MS-WIndows XP를 사용하고 있었고, 그 이후의 버전은 사용해 본 경험이 없어서 몰랐는데, 마이크로소프트사가 Visual Studio의 어떤 버전부터 Windows XP와의 호환성을 선택사항으로 바꾼 것을 알게 되었다.

특별히 관심을 가지지 않은 오픈소스 혹은 프리웨어 개발자들은 이 사실을 모르고, 새로운 Visual Studio로 빌드한 바이너리를 배포했고, 이런 바이너리들은 Windows XP에서는 실행되지 않게 되었다.(빌드시에 옵션을 선택해주면 실행이 가능한 것으로 알고 있지만, 디폴트 옵션이 아니라고 들었다.)

어쨌든 이 포스팅이 8회까지 진행된 후에서야 이런 결론을 내리게 되어 매우 허탈하지만, 애초에 저 문구를 보지 못했던 내 자신을 탓할 수 밖에 없지 않겠는가.
- 2016년 11월 13일
==========================================================

2016년 3월 14일 월요일

[알파고] 인공지능과의 조우

2016년 3월 9일,
구글의 자회사인 딥마인드가 개발한 인공지능 시스템인 알파고와 프로 바둑 기사인 이세돌 9단의 대국이 시작되었다.

이 경기는 구글 딥마인드 챌린지 매치(Google DeepMind Challenge Match)라는 이름으로 개최되었으며 총 5국의 대전을 펼칠 예정이다.

애당초 이세돌 9단은 5:0 혹은 4:1의 일방적인 승리를 자신했는데, 모든 사람들의 예상을 뒤엎고 초반 3국을 모두 알파고가 승리하였다.

이 글을 쓰고 있는 3월 15일 새벽 현재는 4국까지 진행되었으며, 다행히도 이세돌 9단이 네번째 경기를 이겨서 1:3인 상황으로 마지막 한 경기만을 남겨 두었다.


이 과정은 거의 모든 인류에게 충격을 주었음이 확실한데, 팔순을 넘긴 부친께서도 방송을 보시고 걱정을 하셨더랬으니....

그리고 그걸 보고 있자니 인간들이 받았을 공포와 두려움, 그리고 한번의 승리에 대해 환호하는 모습에서 비쳐지는 초라한 안도감에, 만감이 교차하고 온갖 생각들이 머리 속을 흔들어 놓았다.


아주 많은 사람들이, 그 보다 더 다양한 상상과 우려와 희망을 얘기하고 있는데,
나 또한 여기에 지금까지의 내 생각을 한번 끄적여 보고 싶다.



경기에 대한 예고가 있었을 시점부터 내가 예상했던 한가지.
만약에라도 이세돌이 알파고에게 패배한다면(이제 현실이 되었다), 사람들은 이 사실을 애써 무시하려 할 것이다.
그래봐야 단지 좀 복잡한 '게임'일 뿐 아니냐고....
성능 좋은 기계와 효율적인 알고리즘으로 언젠가는 정복될 수 있었던 복잡한 계산이었을 뿐이라고...

알파고가 이세돌을 이긴 순간, 나는 혼란에 빠졌다.
이세돌을 이긴 것이 알파고인가, 알파고를 개발한 딥마인드의 개발자들인가?

그리고 이 질문은 또 하나의 공포를 불러냈다.
알파고를 개발한 딥마인드의 개발자들은, 알파고가 둔 바둑의 각 수에 대해 설명할 수 있을까? 알파고가 내린 결정을 미리 예측할 수 있었을까?
설명할 수 없는 결정을 내린 것은 과연 알파고의 버그일까?
인공지능의 이해할 수 없는 결정에 인간이 따라야 하는 그런 암울한 순간이 오게 되는 건 아닐까?

이대로 가게 되면 미래에는,
과연 '인공지능'일 필요가 있을까? 인간을 닮으려는 목표로 시작되었지만, 결국에는 인간스러워야 하는 것은 단지 제약일 뿐이고, 다시 인간다워지는 것을 벗어난 '궁극의 지능'이 탄생하는 것은 아닐까?

대국을 진행하는 화면을 보면서, 한편으로는 여러가지 의심도 들었다.
과연 알파고는 여러대의 컴퓨터가 연결된 일종의 서버팜일까? 혹시 거기엔 바둑 고수들 여러명이 모여 있는건 아닐까? 그리고 구글이나 딥마인드가 원했던 것은 알파고와 같은 뛰어난 시스템이 아니라, 그런 시스템이 등장했을 때, 사람들의 반응을 알고 싶었던 건 아닐까?

그리고 무엇보다도 허무하게 만드는 것이 있으니,
지난 수천년간 그 많은 사람들이, 그 많은 시간들을 써가며 골몰하고 온갖 묘수를 짜냈던 그 노력들이 무슨 의미가 있는것일까?
그리고 생산성과는 아무 관련이 없는 인간의 감각적인 측면에 호소하는 많은 일들 - 스포츠, 오락, 예술, 영화, 문학 - 등등은 이제 시간만 갉아 먹는 백해 무익한 것들로 전락할 것인가?

2016년 3월 1일 화요일

[자바스크립트] 이벤트 퍼즐 게임의 샘플 코드

자바스크립트는 제대로는 물론이고 대강도 공부해 본 적이 없는 언어지만,
간혹 특정 홈페이지의 소스코드를 들여다 볼라치면,
이제는 html보다 자바스크립트가 차지하는 비중이 월등히 높아진 까닭에 어쩔 수 없이 읽어라도 볼 수 밖에 없는 언어가 되었다.

여러가지로 궁금한 점들도 있고 공부해 보고 싶기도 하지만, 대부분 그 때 뿐이라 그냥 지나치곤 하는데....

최근에 모 회사에서 퍼즐 게임이벤트를 열었는데, 이것이 자바스크립트로 구현되어 있음을 알게 되었고, 그 소스코드를 보게 되었다.
이 코드를 통해서 차근차근 공부해 본다면 실력 향상에 큰 도움이 되지 않을까 해서....


먼저 해당 이벤트 페이지는,
http://www.nongshimi.com/event/2016/02_bulbimpibim/bulbimpibim_event?




위 이벤트 페이지의 소스를 보면, 537 line에 자바스크립트 파일이 지정되어 있음을 볼 수 있다.



해당 자바스크립트 파일은 다음과 같이 시작한다.



맨 처음의 주석으로 미루어 보아, Open Source인 것으로 보인다.

직접 게임을 해 보면서 소스를 공부한다면 좋은 참고자료가 되지 않을까 싶어 여기에 기록을 해 둔다.

2015년 11월 30일 월요일

설계된 인간(The Schematic Man) - 프레드릭 폴(Frederik Pohl)

플레이보이 SF 걸작선 (The Playboy Book of Science Fiction) 1권에 실린 매우 짧은 단편 작품이다.

10페이지 분량도 되지 않는, 말 그대로 장편(掌篇) 소설이고, 어쩌면 소설이라기 보다는 백일몽이나 스쳐 지나가는 상상 한 조각 정도?

주인공은 컴퓨터를 전공으로 하는 교수.

당시(1969년)에는 컴퓨터의 활용 범위가 복잡한 수학 계산에 주로 이용되었지만, 작가는 자기 자신을 모델링하여 컴퓨터에 입력하고 시뮬레이션 하는 작업에 몰두하게 된다.
(인공지능과 유사하지만, 범용 인공지능이 아닌, 일 개인의 행동 양상을 예측하는 시스템)

동료 교수가 왜 그런 일을 하냐고 묻자, 앨런 튜링의 튜링테스트에 대한 언급을 한다.

이 때 "무엇이 '나'인가?"라는 질문이 나오고, 주인공은 튜링 테스트를 언급하며, 외적인 부분을 제외한다면 나와 시스템을 분간하지 못할 것이라고 말한다.

- 공각기동대 극장판에서도 이와 같은 질문이 나온다.
- 무엇이 과연 나를 만드는가. 얼굴, 목소리, 기억......
- 타인으로 하여금 나를 구분하게 만드는 특징은 위와 비슷하겠지. 기억은 바로 그 타인과의 공유하는 기억으로 한정되겠지만....
- 나 자신에게 인식되는 나는?
- 철학적인 문제가 되는가? 종교적인 문제가 되는가? 나라는 본질이 존재하기는 할 것인가?

- 모인사가 말하길, 나는 누구인가, 하는 질문의 답을 찾고자 한다면, 내 주위에 있는 사람들과의 관계를 통해서만 답을 찾을 것이라 했다.
- 한편으로는 이와 같은 심리적인 작용이 아주 자연스러운 것이다.(비판받기 쉽기도 하지만)
- 흔히들 한국의 주부들이 자가 자신을 누군가에 소개할 때 하는 방식이 이와 같다.
- 남편이 누구고 무엇을 하며, 자식이 몇명이고, 자식들이 무엇을 하며, 시댁이 어떠하고 친정이 어떠하고....
- 어린이들도 마찬가지....아버지가 뭐하고 어머니가 뭐하고 형제관계가 어떻고....
- 하지만 서양의 어린이들은...좋아하는 색깔이 뭐고, 즐겨하는 놀이가 뭐고, 싫어하는 음식이 뭐고....


여튼....
소설의 주인공은 자신을 시뮬레이션 하는 시스템을 만들어가며, 이상한 증세에 시달린다.
시스템이 완성되어 갈수록 자신의 기억은 점점 사라지게 되는 것.
마치 자신의 기억들이 시스템으로 이동하는 듯한.....

그리고 마침내는 자신 또한 하나의 시스템이 아닐까 하는 의문.
수학적 모델로 표현된 자신을 컴퓨터 프로그램으로 만들지만, 그 모델이 완벽해질 수록, 자신과 프로그램의 차이는 줄어들고, 과연 내가 프로그램과 무엇이 다를까라는 자아의 혼란.



이 소설은, 특별한 사건이나 갈등 전개 결론 없는, 그저 상상의 한 조각과 같지만, 읽으면서 자꾸 나를 또 다른 상상에 빠지게 만드는....영감을 불어 넣는 작품이었다.

언뜻, 내가 좋아하는 사람을 영원히 곁에 두기 위해, 일종의 시뮬레이션 시스템을 만드는 작업도 어렵지만 재미있겠다 싶다. 시스템의 이름은 미믹(Mimic)이면 어떨까?

아마도 이런 시스템이 일반화 된다면, 사람들의 관계가 점점 폐쇄적으로 흘러가서 인간적인 교류가 없는 이상한 사회가 되지 않을까도 싶다.
어쩌면 이렇게 인류가 멸망하게 될지도....

또...시스템의 발전으로 특정 개인과 매우 흡사해진다면 과연 누가 진짜이고 누가 가짜인지, 그리고 이런 과정에서 진짜와 가짜를 구별하고자 하는 노력이 있을 것이고, 인간 본질에 대한 접근과 성찰이 활발해지지 않을까?

2015년 4월 26일 일요일

MAME에 대한 궁금증

시간이 날 때에 아무 생각 없이, 부담 없이 즐길 수 있는 게임으로 MAME 만한 것이 없다.

MAME는 Multiple Arcade Machine Emulator의 약자로 업소용 게임기의 게임 에뮬레이터이다.

대부분 과거 십수년이 지난 게임들이기에 저작권에 대한 문제도 그리 민감하진 않고 (그렇다고 저작권이 없다는 뜻은 절대 아니다. 그러기에 게임 하나마다 게임에 대한 사용권리를 가지고 있는지 주의를 환기시키는 문구가 포함되어 있다.),
플레이 시간이 비교적 짧아서 부담도 적다.

그런데 그 많은 게임들을 대체 어떻게 에뮬레이팅을 하는 것일까?

게임기에 대한 큰 분류가 있어서 동일한 기종에서 돌아가는 게임들이 아주 많고, 그런 게임기들 몇가지를 에뮬레이팅 해 주면 되는 걸까?
설마 각 게임마다 각각 에뮬레이팅을 해 주는 것일까?
간혹 롬파일이 없다는 문구도 보이던데, 그럼 롬파일에 대한 정보도 모두 가지고 있는 걸까?

딥스위치에 대한 정보는 어떻게 알고 있으며, 입력 장치의 수정은 어떻게 하고 있으며, 자동연사기능은 왜 없어진걸까?


궁금증은 많지만, 의문을 풀고 싶은 욕구는 적었던가 보다.
수년 이상을 가졌던 의문을 풀지 않고 그냥 지내 온 것을 보니.....

그래서....마음만 먹으면 얼마든지 구할 수 있는게 소스코드이니 소스를 구해서 저런 궁금증 만이라도 풀어보기로 했다.


최신 소스코는 다음에서 받을 수 있다.
http://www.mamedev.org/release.html

0.160b인데, MAME와 MESS의 소스코드가 묶여 있다. (대략 55MB ~ 79MB)

살펴보니, 이미 다운로드 받았던 0.149 소스가 있어서 이것을 풀어 보았다.

MAME 소스의 디렉토리 구조

대략적인 소스의 디렉토리 구조는 위와 같았다.
0.149 버전에서도 MAME와 MESS의 소스가 함께 존재했다.
에뮬레팅에 대한 핵심적인 부분은 emu 폴더에 있지 않을까 싶다.


소스가 너무 방대하기에 소스인사이트를 이용해서 살펴보기로 하고
프로젝트를 만들어 파일들을 프로젝트에 등록하고 싱크로나이즈 해 주었다.

전체 소스들이 정렬되어 나타난 브라우징 창이 다음과 같았다.

MAME의 소스들
이 창에서 7번째부터 익숙한 이름이 보인다.
1942.*, 1943.*
캡콤의 유명한 슈팅게임들이다.
두개의 C 파일과 하나의 헤더 파일.
drivers라는 폴더와 video라는 폴더, includes라는 폴더에 각각 위치하고 있음을 볼 수 있다.

잠깐 살펴보니 drivers폴더에 있는 내용이 알아보기 쉽다는 것을 알게 되었다.


잠시 MAME를 직접 구동해서 게임을 하나 골라서 해 보았다.

슈퍼 보블보블

우리에겐 보글보글로 알려진 게임인데, MAME에서의 이름은 Super Bobble Bobble이다.
윈도우 타이틀바에 표기된 [sboblbob]가 소스 파일의 이름일지 모르겠다는 생각이 들었다.
하지만 찾아보니 그런 파일은 없었다.

조금 더 찾아보니, Bublbobl.c(drivers 폴더)라는 파일에 다음과 같은 부분이 보인다.

보글보글 게임에 대한 매크로

위 소스의 밑에서 두번째 줄을 보면,
GAME( 1986, sboblbob,   bublbobl, boblbobl, sboblbob....
라고 되어 있다.

그리고 GAME이라는 매크로는 다음과 같이 정의 되어 있다.
PARENT가 보글보글(bublbobl)인 게임의 몇가지 버전들이 위와 같이 주~욱 나열되어 있는 듯하다.


이렇게 보니 MAME는 엄청난 노력이 들어간 에뮬레이터였다.
처음의 시작부터 현재의 모습까지 오는 과정에는 엄청난 노력과 발전이 있었음을 미루어 짐작할 수 있다.
아마도 지속적인 발전을 해 오면서 공통되는 부분을 묶고, 기능을 공유할 수 있도록 일반화 하는 과정이 있었을 것이며, 그럼에도 각 게임 하나 하나의 에뮬레이션도 직접 손대야 하느 번거로움까지....


아주 아주 맛보기만 보았지만, 시간이 나면 나머지 의문들도 하나 둘씩 파헤쳐 볼 수 있기를 바래본다.

2014년 11월 27일 목요일

Mini vMac

초기 Macintosh에 대한 에뮬레이터로 종종 언급되는 것이 바로 이 Mini vMac이다.

그런데 어찌된 일인지 사용하기가 무지 까다롭다.

정확히 말하자면 내.가. 사용하기에 무지 까다로왔다.

아직까지도 제대로 써 보질 못했으며, 써 보려고 시도한 것도 수차례이며, 같은 삽질이 반복되고 있다는 것은 정말 화가 날 지경이다.

그래서 더 이상은 삽질하지 말자는 의미로 여기에 정리해 두려 한다.



1. Mini vMac
공식적인 홈페이지가 sourceforge에 있었는데 이번에 방문해 보니 다른 곳으로 옮겼다고 한다.
http://www.gryphel.com/c/minivmac/index.html
여기에서 Mini vMac 바이너리를 다운로드 받을 수 있다.

2. ROM
어디에서 구했는지 기억은 나지 않지만, Macintosh Plus용 ROM을 가지고 있으며 여기에 저장해 둔다.
Mac_Plus_ROM.zip
압축을 풀면 vMac.ROM 이름의 파일이 나온다. 이 이름 그대로 사용하면 된다.

3. System 6 OS
위의 Mini vMac 사이트에서 설명한대로라면 Apple 사이트에서 이 오래된 OS의 디스크 이미지를 받을 수 있어야 하는데, 어찌된 일인지 지금은 링크가 사라진 듯 보인다.
그래서 이것도 여기에 보관해 두었다.
SSW_6.0.8_Disk 1 of 2
SSW_6.0.8_Disk 2 of 2

4. Stuff-it Expander
위의 디스크 이미지를 그대로 사용하려고 하면 작동하지 않는다는 것을 알게 된다.
확장자도 .bin이라서 더 이상 뭐가 있겠나 싶었는데, Macintosh에서 사용되는 Stuff-it이라는 압축 프로그램으로 압축이 되어 있으니 이걸 풀어야 한다고 한다.
그런데 이게 뭐 유명하지도 않고 Macintosh에서나 사용되는 프로그램이라 구하기가 녹녹하지는 않아 보인다.
일단은 Linux용의 Stuff-it 압축 프로그램을 찾아냈다.
혹시 모르니 이것도 보관.
Stuffit520.611linux.tar.gz

5. System 6 디스크 이미지 풀어내기
4번의 Stuff-it으로 3번의 System 6 디스크 이미지를 풀면 되지 않는가?
그것만으로는 안되더라는....ㅠㅠ
먼저 디스크 1번의 압축을 풀어보면, *.info, *.rsrc, *.data 세개의 파일이 나온다.
여기에서 *.data 파일을 다시 압축을 풀면 System Startup이라는 파일이 나온다.
이 파일이 1.44MB의 디스크 이미지이고, Mini vMac에서 인식할 수 있는 파일이다.
혹시 모르니 이것도 여기에 보관.
System Startup
디스크 2의 압축을 풀어서 나온 이미지도 여기에 보관.
System Additions

System 6 디스크 압축 풀기

2014년 11월 11일 화요일

Ubuntu 10.04에 Java 설치하기

Ubuntu 10.04의 소프트웨어 센터에는 구글의 크롬도 없고, 오라클의 자바도 없다.
대신 Chromium이라는 크롬 호환 브라우저가 있고, OpenJDK라는 자바 호환 플랫폼이 제공된다.

아마도 Ubuntu의 버전이 오래되다 보니, 캐노니컬에서 정식으로 지원하지 않는 것인지, 혹은 개별 소프트웨어 업체가 워낙에 막강하다보니 굳이 Ubuntu의 소프트웨어 센터에 등록하지 않아도 된다 생각한건지...

하지만 Ubuntu의 소프트웨어 센터가 매우 편리하고, 이것이 아니라도 apt-get으로 간단히 설치가 가능해 진 이 시점에... 개별적 설치는 이래저래 번거로운 문제가 되어 버렸다.

그리고 캐노니컬에서 지원하지 않는 소프트웨어 패키지 가운데에는 설치가 아얘 불가능해 보이는 것들도 종종 마주치게 되고, 설치해도 여러가지로 찜찜한 경우는 더 자주 발생한다.

크롬 브라우저도 Ubuntu 10.04에서는 이런 경우에 속하는 패키지라 Chromium을 사용하고 있는데, 여기에 Java가 필요한 상황에 부딪히게 되었다.

편리한대로 OpenJDK를 설치해 보았는데, 이게 무슨 일인지 Java Application 실행에도 문제가 있고 브라우저에서 Java Applet을 실행하는 데에도 문제가 생겼다. 아니, 문제가 아니라 아얘 설치전과 마찬가지로 작동하지 않는 것...

OpenJDK라서 그런가도 싶고, OpenJDK는 버전 업데이트가 어찌 되는지도 의심스럽고 해서 번거롭지만 Oracle Java를 설치하기로 했다.

다음 사이트에서 Java(JRE)를 다운로드 한다. Ubuntu 10.04의 경우는 Linux 링크를 클릭하면 된다.
http://java.com/ko/download/manual.jsp?locale=ko
Java Download

위의 화면에서 "지침"을 클릭하면 다음과 같은 화면이 나오지만, 링크가 따로 있으니 이걸 클릭.
설치 지침 - Ubuntu용 Java로 이동하자

위의 링크따라 이동하면 처음엔 OpenJDK에 관한 설명이 나오는데, 스크롤해서 내려가면 Oracle Java 부분이 나온다.
Ubuntu용 Java 설치 지침 가운데 Oracle Java

위의 화면에서 "2. How do I install Oracle JRE 7?"을 클릭하면 다음과 같은 화면이 나온다.
JDK 기준으로 설명하지만 JRE도 비슷하다.
Oracle Java 설치 과정

설치 과정

Java(JRE) 설치에 대한 설명 계속. 플러그인 부분은 따르지 말고 다음에 나오는 화면을 따라하자.
Oracle Java 설치 과정(계속)

더 아래로 스크롤하면 JRE에 대한 설명이 따로 나온다.
그리고 여기에 브라우저 plugin 설정하는 방법이 나온다.
파이어폭스와 Chromium 모두 동일하게 다음의 방법으로 설정이 가능하다.
브라우저 플러그인 설정

브라우저 플러그인 설정 과정. 내 경우에는 mkdir과 ln 두가지 명령만으로 끝.
브라우저 플러그인 설정

Chromium에서 Java 설치 확인
Chromium에서 Java 설치 확인

FireFox에서도 Java 설치 확인
FireFox에서 Java 설치 확인