블로그 이미지

my hiding place

삶이 힘들 때, 조금이라도 고개를 들고 위를 보세요. 푸른 하늘이 당신을 맞이해줄 날이 있을 테니까. by nulonge


'MacPorts'에 해당되는 글 2건

  1. 2009.02.03 MacPorts로 설치한 ruby에 rubynode가 설치되지 않을 때
  2. 2008.12.20 MacPorts 1.7 릴리즈 + 기본적인 사용방법

MacPorts로 설치한 ruby에 rubynode가 설치되지 않을 때

애플에서 Mac OS X에 기본 탑재해 배포하는 *nix 바이너리는 패치가 늦는 편입니다.

OS X에 탑재된 ruby와 python도 예외는 아니어서, 기본 탑재되는 python은 2.4, ruby 버전은 1.8.6-p114이죠. 저는 오늘 macports를 이용해 ruby를 1.8.6-p287로 업데이트했습니다. (metasploit가 ruby 1.8.7에서는 잘 동작하지 않기 때문에 1.8.7 버전은 metasploit가 업데이트 될 때까지 사용하지 않고 있습니다. 업데이트할 때는 "sudo port install ruby186 +tk +thread_hooks" 명령을 사용했습니다. macports에서 제공되는 rubygems 패키지는 ruby 1.8.7에 의존성을 갖고 있기에, rubygems 사이트에서 소스를 받아서 직접 설치했습니다.)

rubygem으로 Mac OS X에 기본 설치되어 있는 rubygem들을 설치하는 과정에서 문제가 발생했는데, rubynode라는 gem이 설치되지 않습니다. RUBY_SOURCE_DIR라는 환경 변수에 ruby 소스파일 디렉토리를 지정해달라고 하는데, ruby 소스 디렉토리를 지정해줘도 설치되지 않지요...... sudo 명령에 문제가 있는걸까요? Google 검색을 통해 원인을 해결했는데, 다음 링크에 힌트가 있었습니다: http://www.keith-lancaster.com/blog/?p=24

단, 문제가 있다면, root로 로그인했을 때, PATH를 재설정해주어야 하는데, 이 부분이 설명이 되어 있지 않아서 추가 작업이 필요합니다. 그렇지 않으면, Mac에서 기본적으로 구성해주는 환경에서 rubynode를 설치하게 됩니다.

1. root 패스워드 부여
Mac OS X에서는 root 계정이 비활성화되어 있으므로 패스워드 지정: sudo passwd root

2. root로 로그인: su -

3. PATH에서 macport로 설치된 ruby와 gem을 기본 경로에 설치된 ruby와 gem보다 먼저 참조하도록 설정 변경
export PATH=/usr/local/sbin:/usr/local/bin:$PATH

여기서 주의할 점: macports의 기본 설치경로는 /opt/local인데, 저는 /usr/local로 변경해서 설치했습니다. 기본 설정에 따라 macports를 설치한 경우, export PATH=/opt/local/sbin:/opt/local/bin:$PATH로 입력해야 합니다. 이하 내용들도 마찬가지 입니다.

4. rubynode는 설치될 때 ruby 소스 코드를 참조하게 되어 있습니다. Mac OS X에서 사용중인 macports와 동일한 버전으로 ruby 소스코드를 다운로드해서 적당한 경로에 풀어놓고, 저장한 경로를 환경 설정에 추가해줍니다
export RUBY_SOURCE_DIR=/usr/local/src/ruby-1.8.6-p287

5. mactports 디렉토리에서 ruby의 소스 디렉토리로 node.h 헤더 파일을 복사합니다. macports가 node.h 헤더 파일에 무슨 변형을 가했기 때문에 정상적으로 설치되지 않는 것 같습니다. (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/291651)
cp /usr/local/lib/ruby/1.8/i686-darwin9.6.0/node.h /usr/local/src/ruby-1.8.6-p287

6. gem 명령을 이용해 rubynode를 설치합니다: gem install rubynode

이렇게 해서, 원하던대로 ruby를 업데이트하면서 원래 Mac OS X에 설치되어 있는 ruby와 동일한 rubygem들을 설치할 수 있었습니다. 이상 끝.

Comment 0 Trackback 1
Top

MacPorts 1.7 릴리즈 + 기본적인 사용방법

MacPorts가 12월 14일에 새 릴리즈를 내놓았습니다. 드디어 버전 업이군요.

다운로드

DMG 디스크 이미지: Leopard (Universal)Tiger (Universal)  Panther (PowerPC)

소스파일: tar.bz2 tar.gz

MacPorts란

mac에서 오픈소스 프로그램을 손쉽게 관리할 수 있게 해주는 패키지 관리 프로그램입니다. BSD(Gentoo Linux였나요?)에서 사용되는 ports,  Ubuntu Linux에서 사용되는 aptitude나 apt-get처럼 패키지를 관리할 수 있게 해줍니다. ports에 더 가깝다고 보시면 됩니다. (ports는 소스를 컴파일해서 바이너리를 만들어주고, aptitude는 바이너리 패키지를 설치해줍니다.)

패키지 이름은 MacPorts이지만, 실행명령어는 ports입니다.

디스크 이미지에 있는 인스톨 프로그램으로 설치하면 설치경로는 /opt/local이 됩니다. (즉, 이제부터 ports를 이용한 프로그램 설치는 /opt/local 아래 위치한다는 뜻이 됩니다.) 더불어, 사용자 홈 디렉토리에 있는 .profile 파일을 알아서 수정해줍니다. 만약 없다면 새로 만듭니다. .profile을 열어보면, /opt/local/bin과 /opt/local/sbin이 PATH에 포함되고, /opt/local/share/man이 MANPATH에 추가된 것을 확인할 수 있습니다.

만약 설치 경로를 변경하고 싶으면 소스를 직접 컴파일해서 설치해야 합니다. 저는 설치경로를 /usr/local로 변경해서 설치했습니다. 그리고 .profile을 직접 변경해주어야 합니다. 저는 PATH와 MANPATH를 모두 새로 고쳐썼죠. (그렇게 하지 않으면 /usr/local/bin, /usr/local/sbin이 PATH에 두번씩 나타나게 됩니다. 이런걸 그냥 두고 보지 못하는 까칠한 성격...)

MacPorts 사용하기

MacPorts 설치 후, 설치 가능한 패키지 목록을 업데이트합니다. 목록업데이트는 root 권한이 필요하므로 sudo 명령을 사용합니다.

$ sudo port -d selfupdate 

목록 업데이트가 완료된 후, 설치 가능한 패키지를 찾는 방법은 다음과 같습니다.

 $ port search hping3  // hping3 패키지 정보를 찾습니다.

hping3 @20051105 (net, security)

    hping is a command-line oriented TCP/IP packet assembler/analyzer

$

검색된 패키지에 대한 자세한 정보를 보고 싶으면 port info를 입력합니다.

 $ port info hping3

Variants:    no_tcl, universal

hping is a command-line oriented TCP/IP packet assembler/analyzer. The interface is inspired to the ping(8) unix command, but hping isn't only able to send ICMP echo requests. It supports TCP, UDP, ICMP and RAW-IP protocols, has a traceroute mode, the ability to send files between a covered channel, and many other features.

Homepage:    http://www.hping.org


Library Dependencies: tcl

Platforms:            darwin

Maintainers:          pmq@macports.org

$

Variants는 패키지를 설치할 때 사용할 수 있는 설치 옵션을 의미합니다. 설치 옵션의 자세한 정보는 port variants를 이용해서 볼 수 있습니다. 설치 옵션 가운데에는 사용자가 설치할 때 임의로 지정할 수 없는 것이 있을 수도 있습니다. 그런 것들은 port가 패키지를 설치할 때 자동으로 지정해주는 것들입니다. 설치 옵션을 주의해서 읽어보시기 바랍니다.

$ port variants hping3

hping3 has the variants:

no_tcl: Remove the Tcl scripting support

universal: Build for multiple architectures

 $

검색된 패키지를 설치하려면 port install을 이용합니다. 패키지 설치는 root 권한이 필요하므로 sudo를 함께 사용합니다. 설치과정에서 의존성을 갖는 패키지들은 port가 알아서 설치해줍니다. 참 편하죠.

$ sudo port install hping3

$ sudo port install tcpdump +smb // smb는 tcpdump의 설치 옵션. 설치 옵션을 지정은 +와 함께 사용.

설치 전에 설치하고자 하는 의존성을 갖는 패키지 정보를 보고 싶다면 다음 명령을 이용해보세요.

 $ port deps tcpdump

tcpdump has library dependencies on:

libpcap

openssl

$

반대로, 설치된 특정 패키지에 의존성을 갖는 패키지들을 보고 싶다면 다음 명령을 이용합니다.

 $ port dependents openssl

tcpdump depends on openssl

wget depends on openssl

py25-hashlib depends on openssl

net-snmp depends on openssl

wireshark depends on openssl

$

설치된 패키지의 업데이트가 있는지 확인하려면 다음 명령어를 이용합니다.

 $ port outdated

업데이트된 패키지가 있는 것으로 확연되면, 업데이트를 실행해야겠지요? 설치된 패키지의 업데이트 명령어는 다음과 같습니다. 패키지 업데이트에는 root 권한이 필요하므로 sudo 명령을 이용합니다.

$ sudo port -u upgrade outdated

마지막으로, 설치된 패키지를 제거하려면 다음 명령을 이용하세요. 마찬가지로 root 권한이 필요합니다.

$ sudo port uninstall hping3  // hping3 패키지를 제거합니다. 

그외에 다른 옵션들은 http://guide.macports.org/ 를 참조하세요~.

Comment 0 Trackback 0
Top

prev 1 next