Ubuntu Linux에 packages들을 offline에서 설치하기


apt-get install로 패키지들을 설치할 경우 해당 패키지는 

일단 /var/cache/apt/archives/에 다운로드 되서 설치가 된다.

이때 다운로드 될 때 특정 패키지와 의존성(dependency)있는 패키지들까지 같이 다운로드 되어서 설치가된다.

따라서 우리가 인터넷이 되지 않는 장비나 shell script를 이용해서 일괄적으로 여러 장비들에 필요한 패키지들을 설치해야 할 경우 등에 이 방법을 사용하면 된다.


우선 VirtualBox와 같은 가상 머신에 실제 장비와 같은 환경의 Linux 버전과 가능하다면 같은 architecture, 같은 커널의 bit와 동일한 환경을 만든다.

이 상태에서 apt-get install을 이용하여 필요한 모든 패키지들을 설치를 한다.


그 후 /var/cache/apt/archives에 있는 패키지들을 tar -cvf xxx.tar /var/cache/apt/archives/와 같이 압출을 한다.

이렇게 압축된 파일을 offline상의 디바이스에 복사해서 옮긴다(당연히 압축은 푼다).


압축을 푼 디렉토리에 가서 다음의 명령으로 모든 패키지들을 일괄적으로 설치를 한다.


# dpkg --force-all -i *.deb


위 명령은 의존성을 무시하고 강제로 특정 패키지를 설치하는 형태인데 이렇게 해도 괜찮은 이유가 압축을 푼 모든 *.deb 패키지들이 모든 의존성 패키지들을 다 담고 있는 것이기 때문에 다 설치가 되면 모든 의존성까지 다 해결된 상태로 설치가 될것이기 때문이다.

여러 임베디드 장비에 설치해야 할 경우등에 응용하면 될 것이다.




+ Recent posts