OS X Lion이 앱스토어에 공개되었습니다. 언제쯤 공개되나 기다리고 있었는데 빠르군요. 운영체제를 앱스토어에서 구매해서 업그레이드 할 수 있다는 것은, 확실히 대단한 일입니다. CD로 구매해서 업그레이드 할 수 있다고 하니, 기업체에서는 이 옵션을 사용하는 것이 좋겠습니다.
OS X Lion에 추가된 핵심 기능들로는 다음과 같은 것들이 있습니다.
1. 풀 스크린
기존 Mac 프로그램들은 전체 화면 모드를 지원하지 않았는데, 이번에 OS X 에 전체화면 기능이 포함되면서, 모든 프로그램에 전체 화면 모드를 사용할 수 있게 되었습니다. (대체 왜 이런 기본적인 기능이 지금까지 지원 안된 것인지.. ㅎ)
2. 미션 컨트롤
클릭 한번으로 모든 윈도우를 보고, 바로 이동할 수 있습니다. 손가락 네개로 쓸어올리면 다음과 같은 화면이 보입니다. 화면 상단에는 모든 작업영역 화면이 보이고, 아래쪽에는 모든 응용 프로그램 화면이 보이죠. 배치를 조정할 수도 있습니다. Expose를 완전히 대체한다고 봐도 될듯.
3. Launch pad
iOS와 Mac OS의 경계를 없애버리는 인터페이스. 엄지와 나머지 손가락 세 개를 터치패드 상에서 오므리면 다음과 같은 화면이 뜹니다. (처음에는 응용 프로그램 목록 구성하느라 조금 느립니다.) 이 화면에서 프로그램을 실행할 수 있기 때문에, 매번 Finder를 띄워서 프로그램을 찾는 불편함이 사라질 듯.
4. 다시 열기
Mac을 재시동하면 언제나 당신이 작업하던 바로 그 상태로!
5. 자동 저장
Command-S를 누르지 않아도 맥이 언제나 자동 저장!
6. 좀 더 손쉬운 작업 영역간 이동
손가락 세 개로 Swipe를 하면 (쓸어 넘기기) 작업 영역 간 이동을 할 수 있습니다. iOS와 보다 비슷해 진 부분 중 하나죠. 작업 영역의 맨 왼쪽에는 위젯들이 들어가 있는 대시보드 화면이 있어서, 이제 굳이 Fn 키를 누르지 않아도 위젯들을 불러 쓸 수 있습니다. 역시 아이폰과 비슷한 사용법입니다. ㅎ
우선 앱스토어에서 구매 절차부터 살펴봅시다. 설치 전에는 아래 그림과 같은 사항을 먼저 점검해야 합니다.
점검이 끝났다면 설치 돌입! 앱스토어에서 OS X Lion을 선택하고 구매를 선택합니다.
조금 있으면 '설치됨'으로 바뀌는데, 그렇다고 설치가 다 된건 아니고, 다음과 같은 화면이 하나 뜰겁니다.
엔간하면 이 절차는 정상적으로 완료될 것. 하지만 그 다음이 문제. 설치 문서에는 passenger-install-apache2-module 을 실행하라고 나오는데, 이 파일은 /var/lib/gems/1.8/gems/passenger-2.0.2/bin 디렉터리 아래에 있는데다, 결정적으로 실행 권한이 설정되어 있지 않다.
그러므로 실행하려면 그 디렉터리 아래에 가서, sudo ruby passenger-install-apache2-module 처럼 실행해 주어야 한다. 그런데 그렇게 실행해 보면, rake가 gems 디렉터리 아래에 분명 설치되어 있는데도 설치되어 있지 않다고 불평하는 일이 발생한다. (이런...)
이것은 rake 실행파일이 /usr/bin/ 아래에 복사되어 있지 않기 때문에 발생하는 문제. 따라서 sudo cp /var/lib/gems/1.8/gems/rake-0.8.1/bin/rake /usr/bin 과 같이 해주어야 한다. 그러면 문제가 해결된다. (카피가 찜찜한 분은 심볼릭 링크를 걸어주는 편이 낫겠다.) 실행권한도 빠져있으니 sudo chmod +x로 걸어주어야 한다.
이렇게 하고 나서 다시 sudo passenger-install-apache2-module 를 해 보면 뭔가 make 한다는 메시지가 쫙 나오고 나서 다음과 같은 텍스트가 화면에 출력된다.
Please edit your Apache configuration file, and add these lines:
After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration!
Press ENTER to continue.
/etc/apache2/conf.d 디렉터리 아래에 passenger라는 파일을 만들어 위의 설정을 그대로 입력해 보자. 그런 다음에 enter 키를 누르면 다음의 텍스트가 화면에 출력된다.
Deploying a Ruby on Rails application: an example
Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host to your Apache configuration file, and set its DocumentRoot to /somewhere/public, like this:
대략 위와 같이 하면 된다. 다만 한가지 주의할 것은, 위의 /home/.../public 디렉터리에 www-data (apache2가 실행되는 사용자명) group에 대한 읽기쓰기 권한을 주어야 한다는 것. 필자는 /home/.../work/rails 디렉터리에 가서 그 아래에 있는 모든 subdirectory에 대해 chown -R bjlee:www-data *를 실행하고, chmod -R g+w * 를 실행해 주었다.
이렇게 하고 나서 브라우저의 주소창에 www.xxxxx.com을 입력하고 접속해보면 접속이 된다. 접속이 안될 경우 해당 도메인 명이 등록이 안된 것이니 ㅋㅋ 윈도우의 hosts 파일을 고쳐서 등록된 것처럼 꾸며야 할 것.
그런데 이렇게 하면서 몇가지 프로그래머가 반드시 알아야 할 사항이 드러났는데.
1. development 모드에서는 *.rhtml의 확장자를 사용해 view template을 꾸밀 수 있었는데, production mode를 가정하는 passenger의 특성상 *.html.erb의 확장자가 아니면 인식을 못한다는 것. (Rails 2.0부터는 *.rhtml의 확장자는 더이상 사용하지 않으며, *.html.erb의 확장자를 사용해야 한다. 다만 현재로서는 하위호환성을 위해 *.rhtml을 Development 모드에서는 지원하고 있다.)
2. 원래 그런 건지 아니면 설정을 잘못해서 그런건진 몰라도 (아마 전자일듯) passenger를 사용해 rails 프로그램을 띄우면 소스코드를 바꿔도 그 결과가 바로 반영되어 실행되지는 않는다. (소스코드의 변경을 반영하려면 웹 서버를 다시 띄워야 한다.) 아마 production mode 로 release를 하는 것을 가정하는 passenger의 특성상 그러할 것. 물론 시간이 지나 모든 세션이 종료되고 난 뒤에는 수정된 코드가 다시 반영된다. :-) Rails app 디렉터리 아래에 tmp/restart.txt 파일을 'touch' 해도 된다. 이 경우에는 웹 서버 전체가 재시작되는 것이 이니라, 해당 app만 재시작된다.
여기까지만 주의하면 passenger를 통해 rails 프로그램을 쾌적하게 배포할 수 있을 것이다.
yaws를 설치했다면 Erlyweb도 설치해보고 싶은 것이 인지상정일 터인데, 설치 방법이 간단하긴 하지만 그렇다고 한방에 잘 되지도 않는다. 다음과 같이 하면 큰 무리 없이 잘 될 것.
BASIC TROUBLESHOOTING : 설치시 생기는 문제들
우선, http://erlyweb.org/ 에 가서 최신 버전의 erlyweb distribution을 받는다. 그런 다음에 erlang의 lib 디렉터리 아래에다 이 파일의 압축을 푼다. 필자의 경우, /usr/lib/erlang/lib 아래에 풀어주었다. erlang library가 어디에 설치되어 있는지 모르겠다면, erl 프롬프트상에서 code:lib_dir(). 를 입력하고 리턴 키를 눌러주면 된다.
원래는 (?) 압축을 풀어주는 것 만으로 모든 것이 해결되어야 한다. 제대로 되었다면, 이제 작업 디렉터리로 가서 erl 셸을 실행한 다음에 다음과 같이 해 본다.
1> erlyweb:create_app("testapp", ".").
이렇게 하면 다음과 같은 메시지가 나오면서 해당 디렉터리 아래에 src,www, ebin 등의 디렉터리가 생성되어야 한다.
=ERROR REPORT==== 17-May-2007::11:43:31 === beam/beam_load.c(1097): Error loading module erlyweb: use of opcode 136; this emulator supports only up to 129
위와 유사한 오류 메시자가 뜨는 경우가 있다. 그럴 때는 erlyweb 빌드를 다시 해 주어야 한다. /usr/lib/erlang/lib/erlyweb-1.76 (필자의 경우) 로 cd 한 다음에, make clean ; make를 때려주자. 십중팔구는 그것도 잘 안될 것이다. 오류 메시지를 유심히 보면, yaws_api.hrl 파일을 찾지 못하는 것이 원인임을 알 수 있다.
그 때는 cd src/erlyweb을 일단 하자. 위의 문제를 해결하는 데는 여러 가지 우아한 다른 방법이 있을 수 있겠지만, 성질급한 사람에게 추천하는 가장 빠른 방법은, 이 디렉터리 안에서
ln -s <yaws 헤더 파일이 있는 디렉터리>/yaws_api.hrl .
를 해 주는 것이다. 필자의 경우 저 디렉터리는 yaws를 local home directory에 설치했기 때문에 /home/bjlee/packages/yaws-1.76/include 였다.
이렇게 한 다음에 다시 cd ../.. 해서 /usr/lib/erlang/lib/erlyweb-1.76 (필자의 경우) 로 간 다음에 make를 때려보면 정상적으로 컴파일이 될 것이다.
그럴 경우에는 yaws의 interactive command prompt 상에서 pwd().를 해 본다. 아마 testapp를 생성한 디렉터리가 아니게 되어 있을 것이다. 그럴 경우에는
4> cd("/home/bjlee/work/yaws/erlyweb/").
와 같이 해 주면 된다. 필자의 경우에는 저 디렉터리 아래에 testapp 디렉터리가 있었다.
2. MySQL 문제
erlyweb:compile을 처음으로 실행할때는 MySQL을 쓰던 mnesia를 쓰던 사실 별 상관은 없지만, 본격적으로 모델을 만들고 데이터베이스를 붙이려고 하다 보면 이제 문제가 조금씩 발생한다. 가장 크게 문제가 되는 것은 erlyweb:compile이 정상적으로 실행되려면 시스템에 MySQL이 깔려 있어야 한다는 것. (mnesia를 쓰겠다면 아무 문제 없겠지만...)
MySQL을 깔고 나서 yaws interactive shell에서 다음과 같이 해 보자. 이렇게 해 두어야 erlyweb:compile 과정에서 발생하는 문제가 사라진다. 아래의 과정은 mysql server에의 접속 정보를 확인하는 과정과 같은 것이라고 보아도 일단은 무방하다.
username의 "xxxx" 부분에는 데이터베이스 접근에 사용될 아이디를 적어주시고, password의 "yyyy" 부분에는 해당 사용자의 암호를 적어주시면 된다. database의 "testdb" 부분에는 mysqladmin create <데이터베이스이름> 명령으로 생성한 mysql database 이름을 적어주면 된다.
그런 다음에 erlyweb:compile을 다시 돌려보면 되는데, auto_compile을 true로 해두었다면 사실 안해주어도 무방해야 하지만, 직접 돌려보면 어떤 문제가 있는지를 직접 확인할 수도 있다.
Erlang 웹 개발을 위해 yaws 서버 소스 파일을 다운로드 받아 설치할때는 다음과 같은 절차를 우선적으로 밟게 된다.
./configure ; make
그런데 ./configure를 실행하면 gcc에서 실행파일을 생성할 수 없다고 하는 메시지가 뜨면서 configure가 중단되는 경우가 있다.
그런 경우에는 이 글을 참고하여 gcc 문제를 먼저 해결해야 한다. 그런 다음에 다시 ./configure ; make 한다.
그런데 make를 진행하다 보면 pam_appl.h라는 헤더 파일을 찾지 못한다는 오류 메시지가 출력되면서 컴파일이 진행되지 않는 경우가 있다.
그런 경우에는 sudo apt-get install libpam0g-dev 를 실행하여 관련된 헤더 파일을 설치하여야 한다.
이상의 과정이 정상적으로 끝났다면 이제 ./configure ; make를 하면 yaws 파일이 정상적으로 생성된다.
생성된 실행 파일을 설치하는 것은 그 나중 문제인데, 사용자의 local home directory에 임시로 설치하여 사용하고자 한다면 그 상태에서 make local_install 하면 된다. 그러면 실행 파일이 사용자의 $HOME/bin에 설치되고, configuration 파일은 $HOME/yaws.conf와 같이 만들어지게 된다.
개발 단계에서는 이렇게 설치해놓고 사용하는 것이 보다 간편하다.
상기 문제는 yaws 소스를 컴파일하여 설치하려고 하는 경우에만 발생하며, sudo apt-get install yaws와 같이 해서 설치한 사용자에게는 발생하지 않는 문제이다. 다만 sudo apt-get install yaws로 설치한 사용자는 Yaws 사용자 가이드에 나온 예제들을 실행해 보기 위애서 여러 가지 설정 파일들을 이리 고치고 저리 고치는 수고를 좀 장시간 해 주어야 할 것이다.
가장 기본적인 가정은, LM70에는 Fedora Core 6가 제일 잘 맞더라, 하는 것입니다. Ubuntu는 시도해보지 않아서 잘 모르겠습니다.
1. Windows 설치
LM70에 Windows XP 설치 CD를 넣고 시도해 보면, 잘 안됩니다. 장치 Configuration을 검사하다가 뻗어버리는데, 기본적으로 Windows 인스톨러에 SATA 관련 기능이 없는 탓도 있을 것이고... 아무튼 잘 되질 않습니다. 가장 쉬운 방법은 시스템 부팅 시 F11 버튼을 눌러 Xnote의 시스템 복구 기능을 구동시키는 것입니다.
이 기능이 구동된 후에는 파티션을 나눈다거나 하는 작업을 고급 설정 부분에서 할 수 있습니다. 유의할 것은 Windows가 하드 디스크 상의 첫번째 파티션이 되어야 한다는 점입니다. 그렇게 잡지 않으면 LM70의 시스템 복구 기능이 제대로 동작하지 않습니다. 저는 Windows 용으로 25G 정도의 용량을 잡아주었습니다.
파티션을 나눈 다음에는 한번 재부팅 한 다음에 (왜 그런지 모르겠지만, 재부팅하지 않으면 복구 후에도 Windows가 정상적으로 부팅되지 않습니다) 앞서 만든 주 파티션에 Windows를 복구해주어야 합니다. 그런 다음에 Windows가 정상적으로 부팅되면 이제 프로그램을 깔아준다던가, 네트워크를 잡는다거나 하는 작업들을 해 주면 됩니다.
2. Linux 설치
Windows가 제대로 설치된 다음에는 Linux 설치는 오히려 간단합니다. 설치 화면이 실행되고 다음 버튼을 눌러나가다 보면 하드 디스크 파티션과 관련된 화면이 나올텐데, 여기서 "하드 디스크 여유 공간에 기본 파티션 설정"을 선택한 다음 계속 진행해 나가면 됩니다. sda1은 Windows 용, sda2는 부트 이미지가 들어가는 영역인거같구요, sda3에 Linux 파일들이 깔리게 됩니다.
그런 다음에 다음 버튼을 누르다보면 부트로더 설치(GRUB)와 관련된 화면이 나오고 거기에 부팅할 OS 목록이 나옵니다. 두 번째 OS가 아마 Other로 나올텐데, 여기서 그 목록을 클릭한 다음 오른쪽의 편집 버튼을 눌러 그 이름을 Other에서 Windows XP로 바꾸어주면 됩니다.
그런 다음에 나오는 화면은 뭐 별로 어려운 부분이 없으니까 그냥 넘어가도 됩니다.
설치가 제대로 되었으면 이제 GSynaptics를 설치하고, 무선랜을 잡아주는 작업을 해 주면 됩니다.
GSynaptics 설치를 하는 제일 쉬운 방법은, yum install gsynaptics를 실행하는 것입니다. 소스 설치를 하려면 (왜?) GSynaptics 홈페이지에 가서 소스를 다운받아 컴파일을 해 주면 되는데, FC6 설치 직후에 컴파일을 하려면 ./configure부터 잘 안될겁니다. yum install perl-XML-Parser를 입력하여 관련 모듈을 설치한 다음에 ./configure; make; make install 하면 됩니다. (당연히 make install 하려면 super user가 되어야.. ㅎㅎ)
그런 다음 gsynaptics를 실행해 보면... 또 안됩니다. ㅋㅋ
/etc/X11/xorg.conf에 보면 Section InputDevice 부분이 있습니다. 다음과 같이 편집합니다.
이렇게까지 하고 재부팅해보거나 X 서버를 다시 실행시킵니다. 그런다음 명령행 상에서 gsynaptics 프로그램을 실행시키면, 터치패드를 켜고 끌 수 있습니다.
그런 다음에는 무선랜을 잡아야 하는데요.
rpmfind.net에서 ipw2200-firmware-3.0.9-noarch.rpm을 갖다가 깝니다. 그런 다음 재부팅해보면 eth1 (무선랜)이 제대로 올라오는 것을 볼 수 있습니다.
그런 다음에는 시스템->관리->Services 에서 NetworkManager와 NetworkManagerDispatcher 두개를 다 살려줘야합니다. 그러면 화면 상단 구석에 NetworkManager 애플릿이 떠서 인터페이스들을 관리하는 것을 볼 수 있습니다. 뜨지 않는다면 로그아웃했다가 다시 로그인해보면 뜰겁니다. (그래도 안되면 재부팅 ㅋㅋ)
네트워크 정보의 좋은 소스셔서 감사합니다 ,내가이 기사를 읽고 오랫동안 귀하의 사이트를 추적 유지되었습니다, 내가 더 관심을 지불할 것입니다 흥미로운 읽을 수 있습니다,기사가 가장 고전적인 스타일 중 하나가, 내가 한 번 읽으면, 내가 그http://www.bootsuggsale.org/
들과 사랑에 깊이되었습니다이며, 좀 더 완벽한 작품을 기대
댓글을 달아 주세요