요즘 프로젝트로 인해 MongoDB를 다룰일이 잦은데,
설치할때마다 GPG Error 를 만나게 된다.
해결하는 방법이 어렵지는 않으나, 매번 검색하기도 귀찮고..
10번정도 다뤄본것 같으니, 외워질때도 된것 같아 블로그에 기록을 남겨본다.
개인적으로 별도로 소스를 컴파일 해서 사용하기보단, mongodb 에서 제공하는 Debian 패키지를 사용하는 것을 선호한다. 이유는… 편해서..;;;
http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages
이 문서를 한번 훑어본뒤,
/etc/apt/source.list 파일에
…
deb http://downloads.mongodb.org/distros/debian 5.0 10gen
을 추가하고,
apt-get update 를 실행시키면 GPG Error 를 만나게 될 것이다.
그럴때면..
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv [KEY_VALUE]
[KEY_VALUE] 에는 에러메시지에 기록된 KEY 값을 적어주면 될것이다.
그리고선, apt-get update 후,
apt-get install mongodb-stable 명령으로 설치가 가능할 것이다.
CentOS 의 nokogiri 오동작 문제.
다른 회사와 협업을 하면서, 웹 서버를 세팅할 일이 생겼다.
OS는 내가 제일 싫어하는 CentOS..;; (Fedora 는 그래도 패키지 업데이트라도 빠르지..)
우격다짐(?)으로 rvm, rails 환경을 설치하고..
rails application 에서 필요한 library 설치까지 완료!! (물론.. bundler 가 알아서..ㅋㅋ)
그런데..
트위터 사용자 번호(user_id)를 크롤하는 코드가 자꾸만 nil 을 반환하는 것이다.
코드상의 문제인줄 알았으나..
알고보니 centos 의 libxml2, libxslt 라이브러리의 문제였던 것이다.
즉, nokogiri 로 url 를 파싱하려 하면,
HTML 문서 전체를 못가져 오고, Head 의 일부만 가져오는 문제였던 것이다.
참고: http://nokogiri.org/tutorials/installing_nokogiri.html
먼저 패키지로 설치된 libxml2-devel, libxslt-devl 을 제거한다.
그리고, libxml2, libxslt 순서로 컴파일을 한다. ㅡ.ㅡ
–prefix 옵션을 /usr 로 줘야, include, lib 패스에 추가해주는 노가다를 줄일수 있다.
libxslt 가 libxml2 를 의존하기 때문에 libxml2 를 먼저 컴파일해야 한다.
설치가 잘 되었다면..
nokogiri 를 다시 설치해주자. (아니면, bundle install)
이젠, 정상적으로 동작할 것이다.
교훈은.. R.T.F.M!! ㅋㅋ