본문으로 바로가기

패키지 매니저에 대한 설명은 생략하자.

데비안 계열(대표적으로 ubuntu)에서는 apt

레드햇 계열(Amazone Linux, centOS 등)에서는 yum

 

dpkg (Debian Package)

 

우분투가 데비안을 기반으로 만들어진 Linux이므로 패키지 설치에 기본적으로 dpkg를 사용할 수 있습니다.

확장자는 *.deb입니다. 문제는 패키지간의 의존성을 자동으로 찾아 설치해주는 것이 아니라 관련 패키지를 수동으로 따로 설치해줘야만 하는 문제가 있습니다.

 

예를 들어 jest가 mocha와 should를 의존성으로 가지고 있으면 mocha와 should를 먼저 설치한 후 jest를 설치해야 하는 것이죠. 이런 불편한 점 때문에 apt-get이 등장했습니다. dpkg는 상식으로만 알아둡시다.

 

설치

dpkg -i [패키지 이름].deb

 

삭제

dpkg -r [패키지 이름]

dpkg -P 패키지 이름 => 설정 파일까지 삭제

 

설치한 패키지 조회

dpkg -l [패키지 이름] => 설치된 패키지에 대한 정보

dpkg -L  [패키지 이름] => 패키지가 설치한 파일 목록

 

설치하지 않은 패키지의 정보 조회

dpkg --info  [패키지 이름].deb => 패키지 파일에 대한 정보를 보여줌. 설치하진 않음. 단순 정보 열람

 

 

 

apt 원격 저장소 확인 및 환경

the-illusionist.me/48?category=259115

 

우분투 apt 서버 변경하기

서버에 zsh를 설치하다 보니 Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 라는 메세지가 뜨며 zsh 설치 진행이 되지 않았습니다. apt-get update 를 실행한 후 진행해..

the-illusionist.me

 

 

apt(advance package tool)은 dpkg와 달리 원격 저장소에서 패키지를 받아 설치하며, 의존성 또한 자동으로 설치해줍니다.

저장소의 url은 /etc/apt/sources.list 파일에 있음.

 

대락적으로 설치가 진행되는 과정을 살펴보자면(npm이랑 비슷함)

- apt-get install [패키지 이름]을 통해 설치 명령어를 입력하면

- /etc/apt/source.list 파일을 열어 url을 확인하고 설치와 관련된 패키지 목록을 요청한다.

- 설치와 관련된 패키지 목록을 다운로드 한다.

- 그 후 이용자에게 해당 패키지를 정말로 설치할 것인지 묻고(Y/n) 패키지 파일을 다운로드해서 자동 설치한다.

 

그렇다면, 패키지를 저장하고 있는 원격 저장소가 있을터, 우분투 패키지 저장소는 main, universe, restricted, multiverse가 존재한다.

 

main은 우분투에서 공식적으로 지원하는 무료 SW 

universe는 우분투에서 지원하지 않는 무료 SW

restricted는 우분투에서 공식적으로 지원하는 유료 SW

multiverse는 우분투에서 지원하지 않는 유료 SW

 

무료면 main과 universe만 사용해야 한다.

 

위 4개의 저장소를 제공하는 우분투 미러 사이트는 다음에서 찾아보자launchpad.net/ubuntu/+cdmirrors

 

Mirrors : Ubuntu

Ubuntu also includes a wide variety of software through its network of software repositories. Once your system is installed you can simply call up a list of all the existing tools out there and choose any of them for immediate installation over the interne

launchpad.net

여기 있는 미러 사이트 중 ubuntu.cs.utah.edu/ubuntu/ 를 이용해보자.

launchpad.net/ubuntu/+mirror/socfacility에 mirror location info를 살펴보면 ftp, rsync 프로토콜을 지원하고 있지만 역시 기본은 http이므로 여기를 이용해보자.

 

ubuntu.cs.utah.edu/ubuntu/

 

Index of /ubuntu

 

ubuntu.cs.utah.edu

 

우선 /etc/pat/source.list 부분을 다음과 같이 수정한다.

xenial은 원본 파일을 설치하겠다는 의미이다. 

xenial-updates까지 적어주면 추가로 업데이트한 버전까지 설치된다.

제대로 저장소가 바뀌었는지 확인하기 위해 apt-get update를 통해 업데이트를 진행해주자. 기존 저장소인 mirror.kakao.com이 아니라 유타대학교의 저장소로 전환된 것을 확인할 수 있다. 

이제 우리는 유타 대학교 ubuntu 원격 저장소를 통해 패키지를 다운로드할 수 있게 된다.

 

 

apt 기본적인 사용법

 

설치

apt-get install [패키지 이름]

 

/etc/apt/sources.list에서 패키지 목록을 얻어옵니다.

sudo apt-get update

 

헷갈리지 말자.

패키지의 목록을 최신으로 바꾸는게 update

다운로드 받은 패키지를 더 높은 버전으로 바꾸는게 upgrade

sudo apt-get upgrade // 모든 패키지 업그레이드
sudo apt-get upgrade [특정 패키지] // 특정 패키지만 업그레이드

 

무엇을 다운로드 받을지 검색하고 싶다면 apt-cache를 이용해보자.

sudo apt-cache search 찾을 것

우리는 sudo apt-cache search htop을 입력해보자.

apt-cache

apt-cache show [패키지 이름] => 패키지의 정보 확인

 

apt-cache depends [패키지 이름] => 패키지의 의존성 확인

apt-cache rdepends [패키지 이름] => 패키지의 역의존성 확인

 

 

 

지우고 싶다면 아래 명령어를 입력하자

sudo apt-get remove htop
sudo apt-get autoremove // 의존관계에 있어 필요 없어진 패키지도 삭제. 꼭 해주자.

 

 

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체