rpm 3.0.6 을 사용하면 rpm4 와 호환이 되는데..
위험을 감수할 필요는 없을듯 ;
: 제 경우는 ftp://ftp.rpm.org 에서
: rpm-4.0.2-6x.src.rpm
: db3-3.1.17-4.6x.src.rpm
: 을 받아서 rebuild 했습니다.
:
:
: : 안녕하세요.
: :
: : 질답란에 이와 관련된 무수히 많은 질문이 올라 오고 있고 저한테도 문의 메일
: : 이 많이 와서 여기다 올립니다.
: : 팁같지도 않은 팁 올려서 죄송합니다.
: :
: : 다음은 어느 분께 대한 저의 답변입니다.
: :
: : ------------------------------------------------------------------------
: : 안녕하세요.
: :
: : 그 에러는 설치하려는 rpm 패키지가 rpm 4로 패키징 되어 있기 때문에
: :
: : 님의 rpm 3 으로는 설치를 할 수 없다는 이야기 입니다.
: :
: : 해결 방법은 rpm 자체를 업그레이드 하셔야 합니다. rpm 4로요.
: :
: : 제가 관리하는 서버에서 그대로 다시 재현 하면서 설명을 드리죠.
: : (그리고 문제 해결 방법도요.)
: :
: : 1. 먼저 updates.redhat.com 에 접속하여 /6.2/en/os/i386 에서 rpm관련 패
: : 키지를 모두 받습니다. (mget rpm*)
: : 중요한 것은 rpm-4.0.2-6x.i386.rpm 죠.
: :
: : 2. 일단 rpm-4.0.2-6x.i386.rpm 를 업그레이드 시도(!) 합니다.
: : 당연히 의존성 에러를 내면서 실패하게 됩니다. 왜냐면 rpm 4부터는 버클리
: : DB 3를 사용하기 때문입니다.
: :
: : [root@insideu work]# rpm -Uvh rpm-4.0.2-6x.i386.rpm
: : error: failed dependencies:
: : libdb-3.1.so is needed by rpm-4.0.2-6x
: : libpopt.so.0 is needed by rpm-4.0.2-6x
: :
: : 3. 의존성에 걸리는 패키지들(제 것과는 다를 수 있습니다.)을 다시 1번의
: : ftp에서 다운 받습니다.
: : 위의 shared library 파일들이 속한 패키지는 rpmfind.net 이나 혹은 그냥
: : 감으로 알수 있습니다. 예를들어 libdb-3.1.so 는 db3 나 libdb3등의 파일
: : 명이 될 수 있겠죠. 도저히 모르겠으면 rpmfind.net 에서 찾아보세요.
: : ftp> ls db*
: : 200 PORT command successful.
: : 150 Opening ASCII mode data connection for directory listing.
: : -rw-rw-r-- 1 2220 235 1073382 Mar 16 2001 db3-3.1.17-4.6x.i386.rpm
: : -rw-rw-r-- 1 2220 235 5368423 Mar 16 2001 db3-devel-3.1.17-4.6x.i38
: : 6.rpm
: : -rw-rw-r-- 1 2220 235 749569 Mar 16 2001 db3-utils-3.1.17-4.6x.i38
: : 6.rpm
: : 226 Transfer complete.
: : ftp> ls popt*
: : 200 PORT command successful.
: : 150 Opening ASCII mode data connection for directory listing.
: : -rw-rw-r-- 1 2220 235 55222 Mar 21 2001 popt-1.6.2-6x.i386.rpm
: : 226 Transfer complete.
: : ftp> mget db3* popt*
: :
: : 4. 관련된 패키지를 받았으면 먼저 그것들을 설치합니다. 같이 딸려오는 devel
: : 이나 utils 같은 것은 당장은 필요없지만 나중에 필요할 지도 모르니 설치
: : 하는 것이 좋습니다.
: : [root@insideu work]# rpm -Uvh db3-3.1.17-4.6x.i386.rpm
: : db3 ##################################################
: : [root@insideu work]# rpm -Uvh popt-1.6.2-6x.i386.rpm
: : popt ##################################################
: :
: : 5. 의존성 문제를 다 해결 하였다면 다시 rpm 업그래이드를 시도 합니다.
: : [root@insideu work]# rpm -Uvh rpm-4.0.2-6x.i386.rpm
: : rpm ##################################################
: : cannot remove /usr/src/redhat/SPECS - directory not empty
: : cannot remove /usr/src/redhat/SOURCES - directory not empty
: : cannot remove /usr/src/redhat - directory not empty
: : cannot remove /usr/lib/rpm - directory not empty
: :
: : 에러는 무시하셔도 되는 것이고요. 설치가 잘 되었는지 확인해보세요.
: : [root@insideu work]# rpm --version
: : RPM version 4.0.2
: :
: : 6. 간혹 rpm 업후 에러가 날 수도 있습니다.
: : [root@db:~/work] rpm --version
: : error: Macro %__spec_install_post has empty body
: : error: Macro %__spec_install_post has empty body
: : RPM version 4.0.2
: :
: : 이런 에러가 나신다면
: :
: : /usr/lib/rpm/macros
: : /usr/lib/rpm/i686-linux/macros
: :
: : 이 두파일중
: :
: : /usr/lib/rpm/macros 에
: : %__spec_install_post
: : %{__arch_install_post}
: : %{__os_install_post}
: : %{nil}
: :
: : 부분을 찾아서
: :
: : %__spec_install_post
: : %{__arch_install_post}
: : %{__os_install_post}
: : %{nil}
: :
: : 이렇게 고치세요. (각 줄의 전에 공백이 들어가게)
: : /usr/lib/rpm/i686-linux/macros 도 마찬가지로 수정하시면 됩니다.
: :
: : ----------------------------------------------------------------------
: :
: : 요기까지만 하셔도 사용하시는데 크게 문제 될 것은 없고요. 만약 kylix 등
: : 을 설치하시려면 rpm 4.0.3 으로 업을 하셔야 하는데 이하는 그 부분에 대
: : 한 설명입니다.
: :
: : 7. 이렇게 rpm 4.0.2 로 업을 하셨으면 성공이고요. 이 상태에서 rpm 4.0.3
: : 으로 업그레이드를 하실 수도 있습니다. 정확하진 않지만 rpm 4.0.2 에서
: : 약간의 버그가 있는 듯 합니다. (에를 들어 kylix 설치시 에러 -10)
: : rpm 4.0.3 으로의 업그래이드를 위해서 rpm -U 를 이용하여 업그래이드를
: : 시도 하면 많은 문제가 있을 수 있습니다. (저의 시스템에서는 glibc를 업
: : 그래이드 해야 하더군요.) 따라서 차라리 소스를 다운 받으셔서 업그래이드
: : 를 하시는 것이 낳을 듯 싶습니다.
: :
: : ftp://speakeasy.rpmfind.net/linux/rpm.org/rpm/test-4.0.3/rpm-4.0.3-0.6.6x.src.rpm : :
: : 에서 rpm 4.0.3 소스를 받으셔서 rpm2cpio 로 풉니다.
: :
: : [root@insideu work]# rpm2cpio rpm-4.0.3-0.6.6x.src.rpm | cpio -i -d
: : 4277 blocks
: : [root@insideu work]# tarx rpm-4.0.3.tar.gz
: :
: : 그 후 통상적인 ./configure ; make ; make install 을 합니다.
: : configure 도중이나 make 시에 에러가 날 수도 있습니다. 특히 python rpm
: : module 부분에서는 반드시 Python 관련 패키지가 설치되어 있어야 합니다.
: : 그러나 이것은 case by case 이므로 알아서 잘 대처 하시길 바랍니다.
: :
: : --
: : 껌을 씹을 때는 조용히...
:
: --
: I'm ickia.