리눅스/Debian or Ubuntu

sources.list와 /etc/apt/sources.list.d/ 내 파일 설정

씨실과 날실 2020. 5. 30. 09:00


sources.list에 대하여

소스 목록 /etc/apt/sources.list 및 /etc/apt/sources.list.d/에 포함된 파일은 여러 곳의 활성화된 소스 저장소(리포지터리)를 지정하는 파일입니다.

형식은 하나의 줄에 한 곳의 소스 저장소를 지정하는 한줄 스타일과 여러 줄을 지정하는 deb822 스타일이 있습니다.

파일은 한 줄에 하나의 소스를 나열하거나 (한 줄 스타일), 한 스탠자(stanza)에 소스에 대한 하나 이상의 속성을 정의하는 여러 줄 형식(deb822 스타일)을 포함합니다. 가장 선호되는 소스가 가장 먼저 나열됩니다.

이 파일에 구성된 소스 정보를 기반으로 apt update, apt-get update 명령을 통해 저장소 내 패키지 정보를 업데이트하고 이렇게 업데이트된 패키지 정보를 기반으로 apt-get install, apt-get install 명령을 통해 패키지를 설치하거나 apt-get upgrade, apt-get upgrade를 통해 패키지를 업그레이드하게 됩니다.

sources.list 기본값

# deb cdrom:[Ubuntu 20.04 LTS _Focal Fossa_ - Release amd64 (20200423)]/ focal main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://kr.archive.ubuntu.com/ubuntu/ focal main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://kr.archive.ubuntu.com/ubuntu/ focal-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://kr.archive.ubuntu.com/ubuntu/ focal universe
# deb-src http://kr.archive.ubuntu.com/ubuntu/ focal universe
deb http://kr.archive.ubuntu.com/ubuntu/ focal-updates universe
# deb-src http://kr.archive.ubuntu.com/ubuntu/ focal-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://kr.archive.ubuntu.com/ubuntu/ focal multiverse
# deb-src http://kr.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://kr.archive.ubuntu.com/ubuntu/ focal-updates multiverse
# deb-src http://kr.archive.ubuntu.com/ubuntu/ focal-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://kr.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu focal-security multiverse

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

Ubuntu 20.04 설치할 때 장소를 한국으로 설정했을 경우 소스 서버가 카이스트 미러 서버로 자동 설정됩니다.


/etc/apt/sources.list.d/

/etc/apt/sources.list.d/ 디렉터리 안에 sources.list와 동일한 기능을 하는 추가적인 파일을 생성할 수 있습니다.

이때 파일 확장자는 .list나 .sources로 지정되어야 합니다.

파일 이름은 영문자 (a-z 및 A-Z), 숫자 (0-9), 밑줄 (_), 하이픈 (-) 및 마침표 (.) 문자만 사용할 수 있습니다.




형식

한줄 스타일

이 형식을 사용하려면 파일 확장자를 .list로 지정해야 합니다.

이 형식은 apt의 모든 버전에서 지원하는 전통적인 형식입니다.

       deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]

       deb-src [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]


deb http://kr.archive.ubuntu.com/ubuntu/ focal universe

deb-src http://kr.archive.ubuntu.com/ubuntu/ focal universe


deb http://us.archive.ubuntu.com/ubuntu focal main restricted

deb http://security.ubuntu.com/ubuntu focal-security main restricted

deb http://us.archive.ubuntu.com/ubuntu focal-updates main restricted


deb [arch=arm64,amd64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic main

# deb-src [arch=arm64,amd64,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu bionic main

소스를 지정하는 각 줄은 위 예시와 같이 소스의 아카이브 유형(deb 또는 deb-src)으로 시작합니다

빈 줄은 무시되며 한 줄의 # 문자는 해당 줄의 나머지 부분을 주석으로 표시합니다.


DEB822 스타일

이 형식을 사용하려면 파일 확장자를 .sources로 지정해야 합니다.

이 형식은 apt 버전 1.1 이후부터 지원하게 된 형식입니다.

        Types: deb deb-src
        URIs: uri
        Suites: suite
        Components: [component1] [component2] [...]
        option1: value1
        option2: value2


       Types: deb
       URIs: http://us.archive.ubuntu.com/ubuntu
       Suites: focal focal-updates
       Components: main restricted

       Types: deb
       URIs: http://security.ubuntu.com/ubuntu
       Suites: focal-security
       Components: main restricted


형식은 구성 소스 또는 데비안 소스 패키지의 데비안 / 제어 파일에서 apt가 다운로드 할 메타 데이터 파일과 같이 데비안 및 그 파생어에서 사용하는 다른 파일과 구문이 유사합니다.

개별 항목은 빈 줄로 구분됩니다. 추가 빈 줄은 무시되고 줄 맨 앞에 있는 # 문자는 해당 줄을 주석으로 표시합니다.

각 행을 주석 처리하여 항목을 사용하지 않을 수 있지만, 일반적으로 항목을 사용하지 않도록 "Enabled: no" 필드를 추가하여 동일한 효과를 낼 수 있습니다.

Enabled 필드를 제거하거나 yes로 설정하면 다시 활성화 할 수 있습니다. 옵션은 다른 모든 필드와 동일한 구문을 갖습니다.

필드 이름 바로 뒤에 콜론(:)이 붙고 그 뒤에 공백(스페이스)이 있은 다음 설정값이 있습니다.

특히 여러 값은 한 줄 형식과 같이 쉼표가 아니라 공백 (예 : 공백, 탭 및 줄 바꿈)으로 구분됩니다.

Architectures와 같은 다중 값 필드에는 기본값을 바꾸지 않고 수정하기 위해 Architectures-Add 및 Architectures-Remove를 사용할 수 있습니다.

이것은 버전 1.1 이후 apt 자체에서 지원하는 새로운 형식입니다.


각 인수별 설명

아카이브 유형

deb

deb 유형은 일반적으로 사용하는 사전 컴파일된 패키지인 바이너리 패키지인 .deb 파일 저장소를 사용하겠다는 의미입니다.

deb-src

deb-src 유형은 패키지의 원본 소스와 Debian control (.dsc) 파일 그리고 프로그램 패키징에 필요한 변경 사항이 포함 된 diff.gz 파일이 존재하는 저장소를 사용하겠다는 의미입니다.


소스 저장소 URL과 URI  사양

패키지를 가져 오려는 소스 저장소에 대한 URL / URI입니다.

http | https | file | cdrom | ftp | copy | rsh,ssh


URL 또는 URI는 데비안 계열 배포판의 기본 주소를 적어주어야 합니다.

만약 Suite까지의 정확한 경로를 지정할 경우 Component는 생략하고 슬래시(/)로 끝마쳐야 합니다.


Suite

Suite 유형은 두가지 방식으로 지정할 수 있습니다.

릴리스 기반

Bionic | Eoan | Focal


focal | focal-security | focal-updates | focal-backports | focal-security


개발 클래스

저장소가 제품 릴리스가 아니라 개발 단계에 따라 나누어지는 경우 사용하는 방식입니다.

stable | testing | unstable


Component

구성 패키지의 배포 유형에 따라 나누어집니다.

무료냐 무료가 아니냐

Free | Non-Free


독립적이냐 의존적이냐

main | contrib


데비안 자유 소프트웨어 지침을 준수하냐 안 하냐



그외 다양한 저장소 섹션

main | restricted | universe | multiverse.


옵션

특정 조건을 만족하는 패키지를 가져 오기 위해 옵션을 겁니다. 여기서는 자주 쓰이는 주요 옵션만 다루도록 하겠습니다.


아키텍처

[ arch=amd64,armel ]

Architectures: amd64 armel

아키텍처(arch)는 어떤 아키텍처 정보를 다운로드할지 정의하는 다중값 옵션입니다.

이 옵션이 설정되어 있지 않으면 기본값은 APT의 구성 옵션에서 APT::Architectures 항목에서 정의된 아키텍처들입니다.


 언어 지정(lang)

언어(lang)는 가져올 특정 언어 번역 패키지를 정의하는 다중값 옵션입니다.

이 옵션이 설정되어 있지 않으면 기본값은 APT의 구성 옵션에서 Acquire::Languages 항목에서 정의된 언어입니다.


타켓(target)

타겟(target)은 해당 소스에서 다운로드할 대상을 정의하는 다중값 옵션입니다.

이 옵션이 설정되어 있지 않으면 기본값은 APT의 구성 옵션에서 Acquire::IndexTargets 항목에서 정의된 타겟입니다.


인덱스 비교 (pdiffs)

PDiffs (pdiffs)는 APT가 새 인덱스를 완전히 다운로드하는 대신 PDiff를 사용하여 이전 인덱스를 업데이트할지 여부를 제어하는 설정값으로, 설정은  ​yes/no로 설정합니다.

저장소가 PDiff의 가용성을 알리지 않으면 이 옵션의 값은 무시됩니다.

Acquire::IndexTargets 범위에 정의된 특정 색인 파일과 동일한 이름을 가진 옵션값을 기본값으로 사용하며, 이 옵션이 설정되어 있지 않으면 기본값은 APT의 구성 옵션에서 Acquire::PDiffs 항목에서 정의된 값이며 기본적으로 yes로 설정되어 있습니다.


해시(by-hash)

이 옵션은 APT는 잘 알려진 안정적인 인덱스 파일 이름을 사용하는 대신 예상 파일의 해시섬으로 구성된 URI를 통해 인덱스를 가져올지의 여부를 설정하는 옵션입니다.

이 옵션은 yes, no 또는 force 값을 가질 수 있습니다.

이 기능을 사용하면 해시값 확인을 통해 잘못된 정보를 가져오는 것을 피할 수 있지만 이것을 사용하려면 해당 미러 서버가 이기능을 지원해야 합니다.

Acquire::IndexTargets 범위에 정의된 특정 색인 파일과 동일한 이름을 가진 옵션값을 기본값으로 사용하며, 이 옵션이 설정되어 있지 않으면 기본값은 APT의 구성 옵션에서 Acquire::By-Hash항목에서 정의된 값이며 기본적으로 yes로 설정되어 있습니다.


신뢰할 수 있는 소스(trusted)

신뢰할 수 있는 소스(trusted)는 소스가 신뢰할 수 있는 것으로 간주할지 또는 이 소스에서 패키지를 설치하기 전에 경고를 발생시킬지 설정하는 옵션입니다.

yes값은 인증 확인을 거치지 않더라도 APT에 항상 이 소스를 신뢰할 수있는 것으로 간주하도록 설정합니다. apt-secure (8)의 일부를 비활성화하므로  로컬 및 신뢰할 수 있는 소스 저장소에서만 사용해야합니다.

no 값은 반대로 인증 확인이 통과된 경우에도 소스를 신뢰할 수 없는 것으로 설정합니다.