우분투를 쓰는데, 외부와 인터넷 연결이 단절된 컴퓨터에 업데이트를 시켜줘야 할 일이 생겼다. 젠장. 외부와 연결되는 통로는 마스터 노드가 있는데, 이걸 통해서 인터넷을 공유하면 안되고 그냥 업데이트만 시켜줘야 한다. 그래서 나온게 apt-cacher이다. apt-cacher는 우분투 업데이트 서버를 미러링하지 않고 서버의 역할만 하며, 클라이언트에서 요청을 받은 패키지들만 받아서 전달해주는 역할을 한다. 미러링하려고 했더니 우분투 서버가 60GB가 넘어서 포기했다.

다음과 같이 apt-cacher를 설치한다.
sudo apt-get install apt-cacher


아파치 웹서버가 설치되어 있지 않다면 그것도 설치한다.
sudo apt-get install apache2


그리고
sudo vi /etc/default/apt-cacher

이 파일의 설정을 바꿔준다. 여기서 autostart를 0으로 하면 부팅할 때 시작을 안하고, 1로 하면 부팅할 때 자동으로 시작한다. 대부분의 경우 자동으로 시작해야 하는데, 내 경우에는 자동 시작을 끄고 필요할 때만 쓰는 것이라 0으로 해야 했다.

이제 apt-cacher를 재시작 해주면 된다.
sudo /etc/init.d/apt-cacher restart


아니면, 위에서 자동실행을 1로 했다면 껐다 켜도 된다. 이것으로 서버 세팅은 끝.

서버의 IP를 192.168.1.1이라고 하자. 그럼 apt-cacher의 기본 포트는 3142번이다. 3142가 맘에 들지 않는다면 위에서 apt-cacher 파일의 설정을 바꾸는 부분에서 포트를 바꿔주면 된다.

이제 클라이언트 세팅을 하자. 우분투 소프트웨어 업데이트 프로그램에 들어가든가 아니면
sudo vi /etc/apt/sources.list

위와 같은 명령어로 소스 목록을 직접 고치거나 하면 된다.
거기에 보면
deb http://kr.archive.ubuntu.com/ubuntu main lucid

이렇게 생긴 줄이 있는데 그중에 kr.archive.ubuntu.com 같이 생긴 서버 주소를 전부
192.168.1.1:3142 로 고쳐주면 된다. 서버 주소는 방금 직접 세팅한 서버의 주소이므로 굳이 192.168.1.1이 아니라 적당한 주소를 넣어주면 된다.
vi초보를 위한 팁을 알려주자면, "찾아 바꾸기" 기능을 쓰면 편하다.
콜론(:)모드에서
1,$s/kr.archive.ubuntu.com/192.168.1.1:3142

라는 명령을 쓰면 싹 바뀐다.

이제 apt-get update를 해주면 다 된다. 참고로, 데비안도 된다.

참조 : http://www.debuntu.org/how-to-set-up-a-repository-cache-with-apt-cacher
by snowall 2010.12.17 10:31
  • eizt 2012.06.22 16:33 ADDR EDIT/DEL REPLY

    감사합니다..

    지금 클러스터를 사용하는데, 지금 몇개 파일들을 뿌려서 사용하다가 특정 노드에서 작동안해서 환경이 같은데 - 이것저것 문제인가해서 점검해보려고해도 .. ㅠㅠ 패키지가 없으니까 컴파일해서 깔수도 없고 ㅋㅋ 감사합니다 .