이걸 시너지라고 불러야 할까요... 삽질맨과 gentoo

hayarobi의 이미지

시작은 이렇습니다.

오늘 싱크를 해 보니 gnome이 2.18로 업데이트가 되었더군요. 제가 light를 쓰기 때문에 정확히는 gnome-light죠. 그래서 가볍게 emerge -Dv world를 했는데, 중간에 패키지 이름은 기억이 잘 안 나는데 perl xml parser가 문제라서 튕겼습니다. 업데이트될 목록을 살펴보니 xml 파서로 추정되는 패키지 하나도 업데이트 예정이라 그것을 먼저 업데이트하고 다시 월드로 업데이트를 쳐서 업데이트를 마무리 지었습니다. 중간에 mime-types인가 하는 별로 안 중요한 패키지 하나가 gettext에서 걸리길리 --skipfirst신공으로 넘기긴 했죠.

그리고나서 오늘 또 다른 삽질거리로 오라클 서버를 설치하기 시작했습니다. 젠투 위키를 따라서 했는데 설치용 화면이 나와야하는 부분에서 x문제로 실패했다고 나오길래 루트계정에서 직접 안 하고 su로 루트터미널 얻어 한 것 때문에 x에 연결이 잘 안 되나 싶었죠. 그래서 root로 다시 로그온 하려고 로그오프를 하니 로그인 화면으로 안 돌아갑니다. gnome업데이트를 하고 x를 다시 띄워야 하나 해서 메인콘솔에서 xdm죽이고 다시 start를 했는데 실패... 역시 리붓을 해야하나 하고 리붓을 했습니다.

리붓하니 서비스 올라오는 도중 libexpat.so.0 파일을 못 찾겠다고 x가 실패합니다. 전에 줏어들은 기억으로 revdep-rebuild를 쳤습니다. 역시나 libexpat.so.0에서 깨진게 주루륵 나옵니다. 그런데 dependency 검사에서 =app-gnome/gnome-utils-2.16.12 패키지를 찾을 수 없다는 식의 메시지가 나오면서 빌드를 거부합니다. gnome이 2.18로 업데이트되었으니 저것도 2.18대 버젼으로 올라왔을테니 당연히 에러가 나겠지 생각하고 수동으로 업데이트 설치를 했습니다. (아직 문제를 깨닫지 못했죠)

하나를 설치하고 다시 revdep-rebuild를 하니 또 다른 패키지에서 저런 식의 에러를 뱉어냅니다. 그런데 그게 꽤 많습니다. (중간에 libexpat을 사용하는 다른 라이브러리 때문에 빌드 실패해 그 라이브러리를 다시 설치한 것은 덤입니다) 그제서야 문제점가 심각할 수도 있다는 생각이 들었습니다.

이런저런 방법을 찾아보다 예전 기억이 하나 살아났습니다. 원래 패키지 gnome 을 설치했다가 중간에 gnome-light로 갈아탔던 것을요. 위에서 못 찾겠다는 패키지들도 gnome에만 걸려있고 gnome-light에는 없던 것들이었습니다. 이 글을 쓰기 시작하면서 emerge -C gnome-light; emerge gnome을 때렸답니다.

그래서 오라클 삽질은 내일로 연기될 것 같습니다.

jachin의 이미지

초기 설치에 조금 신중을 기하고, 같은 정책을 고수하도록 하는 것이 최고 좋은 방법이죠.

고생하시겠네요. ^^;
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

지리즈의 이미지

그간 미루어 왔던 업그레이드도 할겸, 저도 새끼치기 식으로 Gentoo를 빌드하고 있습니다. 업무상 시스템을 반드시 유지해야 하기 때문에 보통 빌드에는 1주일정도 걸리더군요. 간단한 스크립트를 작성해 놓고 퇴근시에만 빌드하기 때문에 좀 오래 걸리는 것 같습니다. 하여튼 오늘 저도 똑같이 libexpat.so. 0때문에 오류가 발생하길래.. 아무생각없이 revdep-rebuild 했습니다.

emerge -DuN world 하면, 각각의 패키지 설치 마지막에 뜨는 주의문들을 못보고 놓치는 경우가 많기 때문에 삽질하는 경우가 많은 것 같습니다. 아마도 저 expat도 revdep-rebuild를 해주라는 경고가 있었을 겁니다.(jachin님 요부분에서 좋은 팁없나요?)

대부분은 revdep-rebuild로 왠만한 문제는 다 해결되지만, 가끔은 CHOST값에 따라서는 emerge -e world로만 해결되는 경우도 있더군요.

gentoo는 설치를 하는 횟수에 따라 비례해서 자신의 시스템의 성능 및 안정성도 증가하는 것 같습니다.
확실히 분명한 것은 그간 쌓이는 노하우라는 것을 무시할 수 없더라구요.

make.conf의 USE flag의 내용도 기하급수적으로 점차 늘어가다가, 요즘은 20개 이내로 줄고(그것도 주로 -flag들), /etc/portage/package.use 라인수도 줄었습니다.

오늘 emerge 걸어 놓고 퇴근하는 버스안에서 얼핏 생각이 들던 것이
Gentoo의 최대의 장점은 유연함이 아니라, 시스템의 심플함에 있는 것이 아닌가 하는 생각을 해보았습니다.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

jachin의 이미지

업데이트 할 때 무조건 world 로 하지 않고, xorg-x11 이나, kde 등의 특정 패키지단으로 먼저 업데이트합니다.

저 같은 경우는 system 부터 먼저 update 하는데, emerge -e system 으로 glibc 까지 싸악 업데이트 합니다. (미쳤지요...)

그리고 system을 컴파일 할 때, X 라이브러리까지 같이 컴파일하게 됩니다. 덕분에 gcc와 X 라이브러리간의 문제는 회피하게 되었고요...

요즘엔 system 으로 먼저 --emptytree 할 필요없이, 그냥 xorg-x11, qt, kde 순서로 업데이트 하시면 문제 없을 것 같습니다.

이번에 삽질한 내용을 정리해서 올려둬야겠군요...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

지리즈의 이미지

qt-3 볼드 패치를 별도 하시나요?

제 기억으로는 qt-3 에서 굴림같은 fakebold를 써야 하는 경우 패치없이는 볼드가 안나오더라구요.

그래서... qt-3에 한에서 이곳에서 별도로 볼드패치 받아서 처리하고 있습니다만...

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

지리즈의 이미지

이글을 찾아 내지 못해서 못 읽고 있었네요.

열흘 전쯤 portage가 없그레이드가 되면서, 각 패키지 설치시 뜨는 주의문을 마지막에 모두 모아서 다시 한번 출력되게 개선이 되었더군요.

호호..

시스템을 처음부터 새로 빌드하고 싶은 욕망이 생길 정도로 기쁘네요.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

사랑천사의 이미지

때때로 골아픕니다. 중간에 어떤 놈은 업데이트가 되어 있는데 다른 놈은 수종으로 해야 할 때 머리가 아픕니다. 특히 중간에 나오는 "경고문"들을 못 읽는 것에 대한 부분에 공감합니다. 잘 못 넘어 가면 작동 안 하고.. 왜 그러나 싶어 다시 그 "놈"만 emerge를 해 보면 뭔가 나타나는데 아 이거구나. 풋. 우습죠 저 자신이.
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
Blog: http://blog.lecl.net:8888/lanet/
Wiki(Read-Only): http://yeosong.lecl.net:8888/wiki/
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의

사람천사

blkstorm의 이미지

요 며칠새에 libexpat에 관련된 문제가 젠투 포럼 사이트에 올라온 것을 봤습니다.

libexpat이 업그레이드 되면서 ABI(??)가 바뀌어서 생긴 문제라고 하더군요.

지금 링크를 찾을수는 없지만...

revdep-rebuild -X

emerge -e world

로 해결하라고 하더군요. 과연 -e 옵션으로 몇시간이나 컴파일이 걸릴런지... -_-;;

추가 : ln -s /usr/lib/libexpat.so.1.5.2 /usr/lib/libexpat.so.0 로 임시 링크를 만들어두고 위의 명령어를 하면 되는것 같습니다.

링크 http://forums.gentoo.org/viewtopic-t-575384.html

dalgarak의 이미지

2006년 6월쯤에 ~arch으로 expat-2.0이 올라와서, ldd로 후비고 난 다음 손으로 빌드해서 해결했었습니다. 언젠가 expat-2 가 arch(ex: x86) 으로 내려가는 날 대혼란이 빚어질꺼라고 예상은 하고 있었지요.

http://etchi.cafe24.com/etchi/wiki.php/LunA/2006-06#14

일반적으로 ABI가 확 다르면 보통은 슬롯을 다르게 놓고 expat-1과 expat-2를 공존시키거나(bdb 처럼 말이죠), 같은 슬롯으로 두고 업데이트하도록 하되 기존의 libexpat.so.* 를 cfgpro 로 분류해서 unmerge 때 남겨두는 방법(openssl이 현재 이 방법을 씁니다.)을 사용하는데, expat은 신기하게 그렇게 하지를 않더군요.

지금같으면 equery depends expat 로 검사해서, dev-libs, x11-libs 분류로 된 라이브러리부터 컴파일해 나가는 방법도 있을테고.. revdep-rebuild --library libexpat.so.0 도 먹히지 않을까 싶기도 합니다. (일단 revdep-rebuild의 경우에는 아예 새로 작성된놈이 ~arch에 시범 적용중입니다. 이놈이 괜찮을지는 지켜봐야겠지요.)

에.. 보통은 ABI broken때 어떻게 해야 할지 경고문이 나올텐데, world를 때려버리면 이 메시지가 휙휙 넘어가지요. 현재 ~arch 최신인 portage 2.1.3.x 대에서는 이 메시지를 가지고 있다가 마지막 패키지까지 머징한 다음에 다시 다 뿌려줍니다.

------
http://lunapapa.egloos.com , me2day : lunapapa , IRC: LunA_J`etch@#gnome