2011년 9월 6일 화요일

우분투 ubuntu - 패키지 버전별 설치하기

약간의 노가다와 함께,
하지만 그리 어렵지 않은 방법이다.
 php 같이 버전별 함수가 변경이 되거나,
타 리눅스와의 호환성 같은 문제로
패키지별 버전을 일치시킬 필요가 있다.

우분투에서 제공하는 apt-get 의 명령어를 사용하면
패키지 관리가 편리하지만, 무조건 최신 버전을 설치하기 때문에,
자신이 원하고자 하는 버전을 맞춰서 사용하기에는 약간의 운용이 필요하다.

당연히 root 권한으로 실행한다.
# ls -al /etc/apt/preferences.d/
다음 디렉토리는 비어 있다.
이제 이 곳에 자신이 원하는 패키지 버전별 정보를 찾아서 버전 동기화를 시켜줘야한다.

우분투 11.04 natty 에서 제공하는 php 버전은 5.3.5
하지만 다른 리눅스에서 제공하는 php 버전과 맞추기 위해, php 를 강제로 다운 시키는 방법이다.

일단 자신이 원하는 php 버전이 우분투 어느 버전에 있는지를 일단 찾아야 한다.
http://packages.ubuntu.com/
다음 사이트에 가서, 자신의 php 버전이 있는 우분투 코드네임을 일일이 찾아야 한다.
natty 에서 제공하는 php 버전은 5.3.5
maverick 에서 제공하는 php 버전은 5.3.3

vi 편집기를 열어서 다음과 같은 내용을 추가한 후 저장한다.
# vi /etc/apt/preferences.d/php
Package: php5
Pin: release n=maverick
Pin-Priority: -10

그리고 위에서 언급한 maverick 버전의 패키지를 다운 받기 위해 저장소를 변경해줘야 한다.
# cp /etc/apt/source.list /etc/apt/source.list.bak
# vi /etc/apt/source.list

현재 설치된 우분투 버전이 natty 로 되어 있어서 source.list 에서도 natty 로 되어 있기에,
백업을 한 후, natty 를 maverick 으로 모두 변경, 치환한다.
그리고, apt-get 으로 패키지를 재설치 한다.

# apt-get clean
# apt-get update
# apt-get install php5

source.list 에서 코드네임을 강제로 변경해주었기 때문에,
php 가 5.3.3 으로 설치가 된다.

추가 내용
/etc/apt/source.list 에서 코드네임 변경을 하면,
설치한 패키지 상위 버전이 업그레이드될 수도 있다.
이 때는 다음과 같이 설정을 해준다.

# echo "[package name] hold" | dpkg --set-selections
ex) # echo "samba hold" | dpkg --set-selections

일종의 해당 패키지에 대한 브레이크 라 할 수 있다

# apt-get upgrade
를 실행을 해도, hold 설정을 해둔 패키지는 업데이트 실행이 되지 않는다.

패키지를 업데이트 하려면
hold -> install 로 변경한다.
# echo 'package name' install | dpkg --set-selections

참고 사이트
https://help.ubuntu.com/community/PinningHowto
https://help.ubuntu.com/community/AptGet/Howto
http://manpages.ubuntu.com/manpages/lucid/man5/apt_preferences.5.html
http://packages.ubuntu.com/


댓글 없음:

댓글 쓰기