perl 5.8.8을 설치했는데, 이걸 되돌리고 싶은데요 ㅠ,.ㅠ
서버호스팅을 받아서 저와 후배가 root권한을 가지고 있는 서버가 있는데요, 이 서버에서 펄을 가지고 뭘 하는 사람이 주로 저라서, 뭔 모듈이 더 필요하다 하면 제가 root로 cpan을 실행시켜서 모듈을 설치하곤 합니다.
근데 cpan 에서 제공하는 명령어 중에 upgrade (모든 모듈을 최신 버전으로) 라는 게 있길래 실행해봤더니만, 몇몇 모듈은 "이 모듈 최신 버전은 펄5.8.8에 딸려 있는 거니까, 설치하고 싶으면 펄부터 업그레이드하라"고 나오더군요. (기존에는 5.8.5가 설치되어 있었습니다. /usr/lib/perl5 아래에는 5.8.0 부터 5.8.5까지 디렉토리가 있었고요)
사실 굳이 펄5.8.8로 넘어갈 필요는 없었는데, 최근에 모듈 몇 개가 문제를 일으키는 게 혹시 버전업이 되면 해결되려나 싶어서 어제 밤에 시키는데로
cpan> install 어쩌고저쩌고5.8.8어쩌고
해서 펄 자체를 업그레이드를 시도했습니다. (아 내가 왜 그랬을까...)
계속 이런 질문 저런 질문 나오는데 설명 쓱 읽어보고 거의 그냥 default 값으로 제시된 걸 선택했지요. 그랬더니만...
그 왜, 설치될 때 보면 아키텍처에 의존성이 있는 것들은 따로 아키텍처이름으로 된 디렉토리 아래에 설치가 되는데... 기존 서버에는
/usr/lib/perl5/5.8.5 /usr/lib/perl5/5.8.5/i386-linux-thread-multi/
이런 식으로 되어 있었는데, 제가 설치한 펄5.8.8에서는
/usr/lib/perl5/5.8.8 /usr/lib/perl5/5.8.8/i686-linux/
이렇게 아키텍처 이름이 "i686-linux"가 되어 버렸습니다. (설치과정에서 thread 쓰겠냐 할 때 n으로 했고, multi는 무슨 질문에 대한 답인지 모르겠네요.)
펄 스크립트에서 @INC 를 출력해보면 아래와 같이 나오는데
/usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl
예전에 제가 cpan을 써서 설치한 모듈 중에 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/ 에 설치한 것들이 죄다 쓸 수 없는 상태가 된 거죠. =.=;;;;;
확인된 건 없지만, 만일 이 서버에 세들어 살고 있는 사람들 중에 거기 있는 모듈을 쓰고 있는 홈페이지 같은 게 있다면 지금 다 작동불능상태일 듯 합니다. OTL
이 일을 어찌할까나 생각해봤는데,
1) 시스템의 @INC 에 강제로 i386-linux-thread-multi 디렉토리를 넣어준다 => 어디 가서 바꿔야 하는지도 모르겠고, 이미 perl 바이너리 자체가 다른 설정으로 컴파일되어 설치된 건데 이 상태에서 저 디렉토리의 모듈을 바로 쓰게 하는 건 좋은 생각 같지가 않더군요.
2) 이런 모듈들을 찾아서 전부 다시 설치해서 site_perl/5.8.8/i686-linux/ 에 깔리게 한다. => 차선책으로 생각하고 있습니다.
3) 5.8.8 깔았던 걸 일단 다 지워버리고 어제 저녁의 상태로 되돌린다. 그리고 5.8.8을 새로 설치하되, 정확히 i386-linux-thread-multi 라는 아키텍처명으로 설치되게 한다. => 이걸 하고 싶습니다.
근데 5.8.8을 제거하고 싶어도 이게 무슨 rpm으로 설치하거나 한 것도 아니고 cpan을 써서 한 거다보니... 어떻게 할 수 있을지를 모르겠습니다. /usr/lib/perl5 아래에 5.8.8 에 해당하는 디렉토리들을 다 지워버릴까 싶기도 했는데, 이미 /usr/bin/perl 을 비롯해서 바이너리들이 새로 깔린 마당에 그런 짓을 했다가 더 큰 문제가 생길지 몰라서 못 그러고 있고요.
이 난관을 어떻게 해결할 수 있을까요?
댓글 달기