패키지
소프트웨어 관리
우분투에서의 패키지
- 리눅스에서 소프트웨어는 소스 코드 형식 및 바로 설치가 가능한 패키지 또는 압축된 형태로 배포
- 소스 코드는 직접 컴파일을 해서 사용
- 패키지는 자동 설치
- 압축된 형태는 압축을 풀어서 사용
- 패키지 형태로 배포가 될 때 압축을 해서 배포를 하는데 리눅스에서 주로 사용하는건 RPM과 deb 두가지 형식, 우분투가 deb 사용, redhat 계열이 RPM 사용
- 이 부분에서 CentOS(Rocky)와 Ubuntu가 명령어가 달라지게 됨
- 우분투에서는 snap이라는 형식이 추가
특징
- 파이너리 파일로 구성되서 컴파일을 할 필요 없음
- 패키지 파일이 관련 디렉터리에 자동으로 설치
- 패키지를 삭제하면 관련된 파일을 일괄적으로 삭제
- 기존 패키지를 삭제하지 않고 업그레이드 가능
- 패키지 설치 상태 검증
- 의존성 관련 패키지를 자동으로 설치: 의존성을 알 필요가 없음
패키지의 카테고리
- main: 우분투에서 공식적으로 지원되는 버전으로 자유롭게 배포 가능
- restricted: 우분투에서 지원은 하지만 완전한 자유 라이선스 소프트웨어는 아님
- universe: 일반적으로 사용하는 것인데 자유 라이선스 여부를 알 수 없음, 기술 지원 여부도 보장하지 않음
- multiverse: 자유 라이선스 소프트웨어 이 외의 것을 포함
패키지 이름
- 패키지이름_버전_데비안리비전우분투리비전넘버_아키텍쳐.deb
패키지 저장소
- 패키지와 패키지에 대한 정보를 저장하고 있는 서버
- 페키지 저장소에는 패키지의 기능 추가나 보안 패치 등 지속적인 업그레이드를 수행하고 사용자는 이 저장소에 접속해서 최신 버전을 다운로드 받아서 사용
- 패키지 저장소에 대한 정보는 /etc/apt/sources.list 에 작성되있음
- 이 파일 수정하면 저장소를 추가하거나 삭제 가능
- 특별한 경우에는 이 파일에 private 저장소를 추가해서 사용하기도 함
패키지 관련 명령
APT 명령
- apt-cache 명령
- APT 캐시(데이터베이스)에서 정보를 검색해서 출력
- apt-cache [옵션] 서브명령
- 옵션은 f(검색 결과로 패키지에 대한 전체 기록을 출력)와 h(간단한 도움말 출력)
- apt-get 명령
- 패키지 저장소를 업데이트하고 패키지를 설치하거나 제거
- 형식
- apt-get [옵션] 서브명령 [패키지이름]
- apt-get update 명령은 처음 리눅스를 설치했을 때 그리고 새로운 버전의 패키지를 설치하고자 할 때 수행
- apt-get upgrade 명령은 현재 컴퓨터에 설치된 패키지를 업그레이드. 리눅스를 오래전 설치해서 사용하면 새로운 버전의 패키지 배포된 경우 업그레이드할 때 사용
- apt-get install 명령은 다운로드 받아서 설치까지 진행하는 명령
- 설치를 할 때 설치 여부를 묻는 대화상자가 나오게 됨
- y 옵션 추가하면 설치 여부 묻는 대화상자 나오지 않음
- 여러개의 패키지 한꺼번에 설치하는 것이 가능
sudo apt-get install -y a b c d
- 설치만 하고 업그레이드를 하지 않고자 할 때는 맨 뒤에 –no-upgrade 추가
- 새로 설치는 하지 않고 업그레이드만 하고자 할 때는 –only-upgrade
- apt-get remove 명령은 패키지 제거
- 패키지 삭제는 하지만 설정 파일은 남겨둠
- 설정파일까지 지울 때는 –purge 옵션을 이용
- apt-get autoremove 명령은 불필요한 패키지를 정리
- 시스템이 설치될 때 자동으로 설치했으나 불필요한 패키지들이 있을 수 있음
- apt-get clean 명령은 검색했거나 내려받은 패키지 파일을 삭제
- apt-get download 패키지이름 : 패키지 다운로드만 받는 것도 가능
- apt-get source 패키지이름 : 소스코드를 다운로드
dpkg 명령
- Fedora(CentOS, Rockey) 버전에는 yum이나 dnf, rpm(rpm->yum->dnf)이라는 명령어로 패키지 관리
- apt-get명령은 yum, dnf에 해당하는 패키지 관리 명령어
- dpkg는 rpm에 해당하는 명령
- 설치만 하는 경우 apt-get명령으로 충분한데 시스템의 특정 파일이 어느 패키지에 속했는지를 확인하는 것처럼 세부적인 기능을 사용하고자 할 때 활용
- 형식:
dpkg [옵션] 패키지이름 또는 파일이름
aptitude 명령
- apt-get 과 유사한 명령어로 패키지를 관리해주는 명령어
스냅 패키지
- 우분투가 새로 도입한 패키지 형식
- 샌드박스 형태의 패키지
- 패키지를 만들 때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함시키는 방식
- 스마트폰 애플리케이션이 이 방식 이용
- 장점: 개발자가 다른 패키지나 라이브러리 외의 의존성 신경 안써도됨, 기존 시스템과 완전히 격리되 보안 강화
- 단점: 패키지 용량이 커짐
- 명령:
snap [옵션] 명령 [패키지이름]
- 옵션은 h로 도움말 출력
wget 명령
- 리눅스에서 패키지 형태가 아닌 압축 파일 형태로 제공되는 애플리케이션도 존재
- 이런 경우 wget 명령으로 다운로드 받아서 사용
파일 압축 및 해제
파일 아카이브
- tar(tape archive): 여러 파일이나 디렉터리를 묶어서 하나로 만드는 명령 또는 작업
- 명령 형식
tar 기능 [옵션] [아카이브파일] [파일명]
- 기능: 옵션과 사용 방법은 동일하나 -를 붙이지 않음
- 옵션
- 압축을 할 때 cvf를 이용하고 압축 해제를 할 때는 xvf를 주로 이용