2007년 07월 20일
g-cpan
Gentoo Linux에서는 perl의 CPAN 모듈도 portage를 이용하여 관리할 수 있다. g-cpan 패키지가 그것이다.
Gentoo portage의 dev-perl 카테고리에 있는 패키지들은 대부분 CPAN 모듈들이다. 필요한 모듈이 여기에 있다면 관리는 간단하다. emerge로 설치하고 업데이트하고 제거하면 된다. 그러나 만약 필요한 모듈이 여기에 있지 않다면? 독립된 모듈이라면 perl의 CPAN으로 관리할 수 있겠지만 portage에 있는 모듈과 의존성 문제가 걸리면 어떻게 해야 할까? 이 문제는 g-cpan 툴로 해결할 수 있다.
g-cpan은 CPAN 모듈의 portage package(ebuild)를 만들고 이를 설치해 주는 툴이다. 의존성이 걸려 있어 설치해야 하는 모듈이 있다면 그것이 portage에 있는지 검사하여 없으면 그 패키지를 만들고 의존성을 반영한다. CPAN 모듈을 모두 gentoo의 portage로 관리할 수 있게 해주는 툴인 것이다.
g-cpan은 portage overlay에 패키지를 만든다. 따라서 g-cpan을 쓰려면 먼저 portage overlay를 설정해야 한다. 그 뒤에 "g-cpan -g 모듈이름"하면 모듈을 다운로드하여 ebuild 파일을 만든다. 모듈 이름에 있는 "::"은 "-"으로 바뀌어 portage 패키지 이름이 된다. 이 패키지들은 모두 perl-gcpan 카테고리에 속한다.
이후 emerge를 이용하여 패키지를 설치하면 된다. 직접 g-cpan으로 설치할 수도 있고 업데이트도 할 수 있다.
gentoo의 portage 시스템은 상당히 진보적이고 유연한 패키지 관리 시스템이다. 그래서 이와 같이 다른 패키지 관리 시스템을 융합시킬 수 있는 것이다. ruby의 gem도 이와 같이 통합시킬 수 있는지 궁금하다.
Gentoo portage의 dev-perl 카테고리에 있는 패키지들은 대부분 CPAN 모듈들이다. 필요한 모듈이 여기에 있다면 관리는 간단하다. emerge로 설치하고 업데이트하고 제거하면 된다. 그러나 만약 필요한 모듈이 여기에 있지 않다면? 독립된 모듈이라면 perl의 CPAN으로 관리할 수 있겠지만 portage에 있는 모듈과 의존성 문제가 걸리면 어떻게 해야 할까? 이 문제는 g-cpan 툴로 해결할 수 있다.
g-cpan은 CPAN 모듈의 portage package(ebuild)를 만들고 이를 설치해 주는 툴이다. 의존성이 걸려 있어 설치해야 하는 모듈이 있다면 그것이 portage에 있는지 검사하여 없으면 그 패키지를 만들고 의존성을 반영한다. CPAN 모듈을 모두 gentoo의 portage로 관리할 수 있게 해주는 툴인 것이다.
g-cpan은 portage overlay에 패키지를 만든다. 따라서 g-cpan을 쓰려면 먼저 portage overlay를 설정해야 한다. 그 뒤에 "g-cpan -g 모듈이름"하면 모듈을 다운로드하여 ebuild 파일을 만든다. 모듈 이름에 있는 "::"은 "-"으로 바뀌어 portage 패키지 이름이 된다. 이 패키지들은 모두 perl-gcpan 카테고리에 속한다.
이후 emerge를 이용하여 패키지를 설치하면 된다. 직접 g-cpan으로 설치할 수도 있고 업데이트도 할 수 있다.
gentoo의 portage 시스템은 상당히 진보적이고 유연한 패키지 관리 시스템이다. 그래서 이와 같이 다른 패키지 관리 시스템을 융합시킬 수 있는 것이다. ruby의 gem도 이와 같이 통합시킬 수 있는지 궁금하다.
# by | 2007/07/20 17:57 | 트랙백 | 핑백(1)
2007년 03월 14일
Gentoo Linux 업데이트
Gentoo Linux를 깔고 오랫동안 업데이트를 하지 않았던 서버가 있었다. 백업 용도로 쓰던 놈이라 달랑 ssh만 밖으로 열어 놓아서 그동안 신경쓰지 않고 있었던 놈이다. 그런데 갑자기 이놈을 서비스에 투입해야 할 필요가 생기게 되었다. 버전을 보니 2004.3 버전! 그대로 쓰기엔 문제가 많을 것 같아 업데이트하기로 했다.
portage tree sync 에서부터 문제가 생겼다. 파일을 모두 rsync로 받고 portage cache 업데이트가 80%쯤 진행되다가 에러가 났다. 그거야 portage 버전이 낮으면 생기는 문제니까 portage를 업데이트하려고 다음 명령을 내렸다.
portage tree 중 virtual 패키지 관련해서 에러가 발생하고 업데이트가 되지 않았다. 너무 오래된 버전이라 문제가 생긴 것이다(2004.3 버전에는 virtual 패키지가 없었던 거다). CD를 들고 데이터센터에 가야 하나하는 생각이 들었다. 데이터센터에 가기도 귀찮고 해서 gentoo 홈페이지에 들어가 문서를 뒤졌다. 간단한 해결책이 있었다. 이런 경우에 쓰라고 중간 단계의 profile이 있었던 것이다(gentoo 팀 나이스!).
portage를 업데이트하고 다시 portage tree sync, 이어 최신 profile (2006.1)로 링크하고 다시 portage 업데이트를 했다.
이어 대망의 emerge -uND world ! blocking 된 패키지 몇개가 있었지만 unmerge 몇번 하니 무난히 설치할 수 있었다. 결과는
등등으로 업데이트되었다. redhat 같은 경우 glibc 버전을 올리려면 온갖 쇼를 해야 했지만 gentoo로는 너무도 깔끔하게 업데이트를 할 수 있는 것이다.
그런데 커널 컴파일하다가 잘못해서(make modules_install을 하는 것을 생략했다) 결국 데이터센터로 가야만 한다. ㅡ.ㅡ;;
portage tree sync 에서부터 문제가 생겼다. 파일을 모두 rsync로 받고 portage cache 업데이트가 80%쯤 진행되다가 에러가 났다. 그거야 portage 버전이 낮으면 생기는 문제니까 portage를 업데이트하려고 다음 명령을 내렸다.
# emerge portage
portage tree 중 virtual 패키지 관련해서 에러가 발생하고 업데이트가 되지 않았다. 너무 오래된 버전이라 문제가 생긴 것이다(2004.3 버전에는 virtual 패키지가 없었던 거다). CD를 들고 데이터센터에 가야 하나하는 생각이 들었다. 데이터센터에 가기도 귀찮고 해서 gentoo 홈페이지에 들어가 문서를 뒤졌다. 간단한 해결책이 있었다. 이런 경우에 쓰라고 중간 단계의 profile이 있었던 것이다(gentoo 팀 나이스!).
# cd /etc
# rm make.profile
# ln -s /usr/portage/profiles/obsolete/x86 make.profile
# emerge portage
portage를 업데이트하고 다시 portage tree sync, 이어 최신 profile (2006.1)로 링크하고 다시 portage 업데이트를 했다.
# portage --sync
# cd /etc
# rm make.profile
# ln -s /usr/portage/profiles/default-linux/x86/2006.1 make.profile
# emerge -u portage
이어 대망의 emerge -uND world ! blocking 된 패키지 몇개가 있었지만 unmerge 몇번 하니 무난히 설치할 수 있었다. 결과는
glibc 2.3.4 -> glibc 2.5
gcc-3.x -> gcc-4.1
등등으로 업데이트되었다. redhat 같은 경우 glibc 버전을 올리려면 온갖 쇼를 해야 했지만 gentoo로는 너무도 깔끔하게 업데이트를 할 수 있는 것이다.
그런데 커널 컴파일하다가 잘못해서(make modules_install을 하는 것을 생략했다) 결국 데이터센터로 가야만 한다. ㅡ.ㅡ;;
# by | 2007/03/14 19:58 | 트랙백 | 핑백(1)
◀ 이전 페이지다음 페이지 ▶



















