리눅스/OpenSUSE

Zypper 명령 - 저장소(Repository) 관리 명령

씨실과 날실 2020. 7. 27. 09:00


리포지토리 관리 명령

Zypper는 YaST, RPM-MD(yum) 소프트웨어 리포지토리 및 .rpm 파일이 포함된 일반 디렉토리에서 작업 할 수 있습니다.

리포지토리는 주로 URI 또는 별칭을 사용하여 식별됩니다. 별명은 긴 URI 또는 저장소 이름의 약어입니다. 저장소의 이름은 저장소를 간략하게 설명해야하며 사용자에게 테이블과 메시지로 표시됩니다. 이름은 필요하지 않으며 알 수없는 경우 별명이 대신 표시됩니다. 별명은 필수이며 시스템의 저장소를 고유하게 식별합니다.

별명, 이름, URI 또는 zypper repos 목록의 번호는 다양한 zypper 명령 및 refresh, --repo 또는 --from과 같은 옵션의 인수로 저장소를 지정하는 데 사용할 수 있습니다.

위의 저장소 외에도 저장소에는 아래이 섹션에서 설명하는 명령을 사용하거나 저장소 정의 파일 (.repo 파일, FILES 섹션 참조)을 수동으로 편집하여 설정할 수있는 몇 가지 다른 속성이 있습니다.


리포지토리 추가

$ sudo zypper addrepo [options] URI alias
$ sudo zypper addrepo [options] FILE.repo

$ sudo zypper ar [options] URI alias
$ sudo zypper ar [options] FILE.repo


일반 옵션 :

-r, --repo file.repo
-c, --check
-n, --name name
-e, --enable
-d, --disable
-f, --refresh
-F, --no-refresh
-p, --priority positive-integer
-k, --keep-packages
-K, --no-keep-packages
-g, --gpgcheck
--gpgcheck-strict
--gpgcheck-allow-unsigned
--gpgcheck-allow-unsigned-repo
--gpgcheck-allow-unsigned-package
-G, --no-gpgcheck
--default-gpgcheck

URI로 새 저장소를 추가하고 해당 저장소의 별명을 지정하거나 .repo 파일로 구성한 저장소를 추가합니다..

새로 추가된 리포지토리는 기본적으로 자동 새로 고침이 비활성화되어 있습니다 (자동 리프레시가 활성화된 .repo에서 가져온 리포지토리 제외). 자동 새로 고침을 활성화하려면 addrepo -f 또는 modifyrepo 명령의 --refresh 옵션을 사용하십시오.

또한 이 명령은 새로 추가된 리포지토리를 자동으로 새로 고치지 않습니다. 리포지토리를 처음 사용할 때 새로 고치거나 * repo 명령으로 수정을 마친 후 refresh 명령을 사용할 수 있습니다.

Examples:

$ zypper ar -c -n 'Packman 11.1 repo' 〈 URL: http://packman.iu-bremen.de/suse/11.1 〉 packman

Add a HTTP repository, probe it, name it Packman 11.1 repo, and use packman as alias.

$ zypper ar 〈 URL: https://download.opensuse.org/repositories/zypp:/svn/openSUSE_Factory/zypp:svn.repo 〉

$ zypper ar myreposbackup.repo

Add repositories from a .repo file.


tudy@localhost:~> sudo zypper addrepo -f  http://ftp.kaist.ac.kr/opensuse/update/leap/15.2/oss/ kaist-update-oss
[sudo] root의 암호: 
'kaist-update-oss' 리포지토리 추가 중 ......................................................................................[완료]
'kaist-update-oss' 리포지토리가 추가되었습니다.

URI            : http://ftp.kaist.ac.kr/opensuse/update/leap/15.2/oss/
활성화됨       : 예
GPG 확인       : 예
자동 새로 고침 : 예
우선순위       : 99 (기본 우선순위)

저장소는 우선순위가 없습니다. 모든 저장소는 같은 우선순위를 공유합니다.
study@localhost:~> 

리포지토리 정보 확인

$ sudo zypper repos [options] [repo]...

$ sudo zypper lr [options] [repo]...


일반 옵션 :

-e, --export FILE.repo|-
-a, --alias
-n, --name
-u, --uri
-p, --priority
-r, --refresh
-d, --details
-E, --show-enabled-only
-U, --sort-by-uri
-P, --sort-by-priority
-A, --sort-by-alias
-N, --sort-by-name

정의된 모든 리포지토리를 나열하거나 인수로 지정된 리포지토리에 대한 자세한 정보를 표시합니다.

 시스템에 있는 각 리포지토리에 대해 다음 데이터를 인쇄 할 수 있습니다.

# (리포지토리 번호)

별칭 (고유 식별자)

이름

활성화 (리포지토리 활성화 여부)

GPG 확인 (저장소 메타 데이터 (r) 또는 다운로드된 rpm 패키지 (p)에 대한 GPG 확인 사용 여부)

새로 고침 (저장소에 대한 자동 새로 고침 사용 여부)

우선 순위

유형 (저장소 메타 데이터 유형 : rpm -md, yast2, plaindir)

표시되는 데이터는 아래 나열된 명령행 옵션 및 zypper.conf의 main.repoListColumns 설정에 따라 결정됩니다.

기본적으로, #Number, Alias, Name, Enabled, GPG Check and Refresh가 표시됩니다.

리포지토리 번호는 현재 리포지토리 집합에서 리포지토리의 고유 식별자입니다. 저장소를 추가, 제거 또는 변경하면 숫자가 변경될 수 있습니다. 리포지토리 처리 명령에 숫자를 사용할 때는 이 점을 명심하십시오.

반면 숫자 대신 별칭을 사용하면 항상 안전합니다.

특정 저장소에 대한 자세한 정보를 표시하려면 별명, 이름, 단순 zypper lr의 번호 또는 URI로 인수로 지정하십시오. 예 : fB zypper lr factory 또는 zypper lr 2.

Examples:

$ zypper repos -e myreposbackup.repo

Backup your repository setup:

$ zypper lr -pu

List repositories with their URIs and priorities:


study@localhost:~> zypper repos
저장소는 우선순위가 없습니다. 모든 저장소는 같은 우선순위를 공유합니다.

#  | 별칭                      | 이름                               | 활성화됨 | GPG 확인 | 새로 고침
---+---------------------------+------------------------------------+----------+----------+----------
 1 | kaist-update-oss          | kaist-update-oss                   | 예       | ( p) 예  | 예
 2 | openSUSE-Leap-15.2-1      | openSUSE-Leap-15.2-1               | 아니요   | ----     | ----
 3 | repo-debug                | Debug Repository                   | 아니요   | ----     | ----
 4 | repo-debug-non-oss        | Debug Repository (Non-OSS)         | 아니요   | ----     | ----
 5 | repo-debug-update         | Update Repository (Debug)          | 아니요   | ----     | ----
 6 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | 아니요   | ----     | ----
 7 | repo-non-oss              | Non-OSS Repository                 | 예       | (r ) 예  | 예
 8 | repo-oss                  | Main Repository                    | 예       | (r ) 예  | 예
 9 | repo-source               | Source Repository                  | 아니요   | ----     | ----
10 | repo-source-non-oss       | Source Repository (Non-OSS)        | 아니요   | ----     | ----
11 | repo-update               | 주 업데이트 저장소                 | 예       | (r ) 예  | 예
12 | repo-update-non-oss       | Update Repository (Non-Oss)        | 예       | (r ) 예  | 예
study@localhost:~> 



study@localhost:~> zypper repos -d
#  | 별칭                      | 이름                               | 활성화됨 | GPG 확인 | 새로 고침 | 우선순위 | 유형   | URI                                                                      | 서비스
---+---------------------------+------------------------------------+----------+----------+-----------+----------+--------+--------------------------------------------------------------------------+-------
 1 | kaist-update-oss          | kaist-update-oss                   | 예       | ( p) 예  | 예        |   99     | NONE   | http://ftp.kaist.ac.kr/opensuse/update/leap/15.2/oss/                    | 
 2 | openSUSE-Leap-15.2-1      | openSUSE-Leap-15.2-1               | 아니요   | ----     | ----      |   99     | rpm-md | cd:/?devices=/dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376                | 
 3 | repo-debug                | Debug Repository                   | 아니요   | ----     | ----      |   99     | NONE   | http://download.opensuse.org/debug/distribution/leap/15.2/repo/oss/      | 
 4 | repo-debug-non-oss        | Debug Repository (Non-OSS)         | 아니요   | ----     | ----      |   99     | NONE   | http://download.opensuse.org/debug/distribution/leap/15.2/repo/non-oss/  | 
 5 | repo-debug-update         | Update Repository (Debug)          | 아니요   | ----     | ----      |   99     | NONE   | http://download.opensuse.org/debug/update/leap/15.2/oss/                 | 
 6 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | 아니요   | ----     | ----      |   99     | NONE   | http://download.opensuse.org/debug/update/leap/15.2/non-oss/             | 
 7 | repo-non-oss              | Non-OSS Repository                 | 예       | (r ) 예  | 예        |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.2/repo/non-oss/        | 
 8 | repo-oss                  | Main Repository                    | 예       | (r ) 예  | 예        |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.2/repo/oss/            | 
 9 | repo-source               | Source Repository                  | 아니요   | ----     | ----      |   99     | NONE   | http://download.opensuse.org/source/distribution/leap/15.2/repo/oss/     | 
10 | repo-source-non-oss       | Source Repository (Non-OSS)        | 아니요   | ----     | ----      |   99     | NONE   | http://download.opensuse.org/source/distribution/leap/15.2/repo/non-oss/ | 
11 | repo-update               | 주 업데이트 저장소                 | 예       | (r ) 예  | 예        |   99     | rpm-md | http://download.opensuse.org/update/leap/15.2/oss                        | 
12 | repo-update-non-oss       | Update Repository (Non-Oss)        | 예       | (r ) 예  | 예        |   99     | rpm-md | http://download.opensuse.org/update/leap/15.2/non-oss/                   | 
study@localhost:~> 

리포지토리 새 별명 지정

$ sudo zypper renamerepo alias|name|#|URI new-alias

$ sudo zypper nr alias|name|#|URI new-alias



별명, 이름, 번호 또는 URI로 지정된 저장소에 새 별명을 지정합니다.


Examples:

$ zypper nr 8 myrepo

Rename repository number 8 to myrepo (useful if the repo has some dreadful alias which is not usable on the command line).


study@localhost:~> sudo zypper renamerepo kaist-update-oss repo-kaist_mirror-update-oss
[sudo] root의 암호: 
'kaist-update-oss' 리포지토리의 이름이 'repo-kaist_mirror-update-oss'(으)로 변경되었습니다.
study@localhost:~> sudo zypper repos
저장소는 우선순위가 없습니다. 모든 저장소는 같은 우선순위를 공유합니다.

#  | 별칭                         | 이름                               | 활성화됨 | GPG 확인 | 새로 고침
---+------------------------------+------------------------------------+----------+----------+----------
 1 | openSUSE-Leap-15.2-1         | openSUSE-Leap-15.2-1               | 아니요   | ----     | ----
 2 | repo-debug                   | Debug Repository                   | 아니요   | ----     | ----
 3 | repo-debug-non-oss           | Debug Repository (Non-OSS)         | 아니요   | ----     | ----
 4 | repo-debug-update            | Update Repository (Debug)          | 아니요   | ----     | ----
 5 | repo-debug-update-non-oss    | Update Repository (Debug, Non-OSS) | 아니요   | ----     | ----
 6 | repo-kaist_mirror-update-oss | repo-kaist_mirror-update-oss       | 예       | ( p) 예  | 예
 7 | repo-non-oss                 | Non-OSS Repository                 | 예       | (r ) 예  | 예
 8 | repo-oss                     | Main Repository                    | 예       | (r ) 예  | 예
 9 | repo-source                  | Source Repository                  | 아니요   | ----     | ----
10 | repo-source-non-oss          | Source Repository (Non-OSS)        | 아니요   | ----     | ----
11 | repo-update                  | 주 업데이트 저장소                 | 예       | (r ) 예  | 예
12 | repo-update-non-oss          | Update Repository (Non-Oss)        | 예       | (r ) 예  | 예
study@localhost:~> 

리포지토리 속성 수정

$ sudo zypper modifyrepo options alias|name|#|URI...
$ sudo zypper modifyrepo options --all|--remote|--local|--medium-type

$ sudo zypper mr options alias|name|#|URI...
$ sudo zypper mr options --all|--remote|--local|--medium-type


일반 옵션 :

-n, --name name
-e, --enable
-d, --disable
-f, --refresh (legacy: -r)
-F, --no-refresh (legacy: -R)
-p, --priority positive-integer
-k, --keep-packages
-K, --no-keep-packages
-g, --gpgcheck
--gpgcheck-strict
--gpgcheck-allow-unsigned
--gpgcheck-allow-unsigned-repo
--gpgcheck-allow-unsigned-package
-G, --no-gpgcheck
--default-gpgcheck
-a, --all
-l, --local
-t, --remote
-m, --medium-type type

지정된 저장소의 각종 속성을 수정합니다.

Examples:

$ zypper mr -kt

Enable keeping of packages for all remote repositories.

$ zypper mr -er updates

Enable repository updates and switch on autorefresh for the repo.

$ zypper mr -da

Disable all repositories.


study@localhost:~> sudo zypper modifyrepo -d -n 'KAIST openSUSE Mirror - update-oss' repo-kaist_mirror-update-oss
'repo-kaist_mirror-update-oss' 리포지토리가 비활성화되었습니다.
'repo-kaist_mirror-update-oss' 리포지토리의 이름이 'KAIST openSUSE Mirror - update-oss'(으)로 설정되었습니다.
study@localhost:~> zypper repos
저장소는 우선순위가 없습니다. 모든 저장소는 같은 우선순위를 공유합니다.

#  | 별칭                         | 이름                               | 활성화됨 | GPG 확인 | 새로 고침
---+------------------------------+------------------------------------+----------+----------+----------
 1 | openSUSE-Leap-15.2-1         | openSUSE-Leap-15.2-1               | 아니요   | ----     | ----
 2 | repo-debug                   | Debug Repository                   | 아니요   | ----     | ----
 3 | repo-debug-non-oss           | Debug Repository (Non-OSS)         | 아니요   | ----     | ----
 4 | repo-debug-update            | Update Repository (Debug)          | 아니요   | ----     | ----
 5 | repo-debug-update-non-oss    | Update Repository (Debug, Non-OSS) | 아니요   | ----     | ----
 6 | repo-kaist_mirror-update-oss | KAIST openSUSE Mirror - update-oss | 아니요   | ----     | ----
 7 | repo-non-oss                 | Non-OSS Repository                 | 예       | (r ) 예  | 예
 8 | repo-oss                     | Main Repository                    | 예       | (r ) 예  | 예
 9 | repo-source                  | Source Repository                  | 아니요   | ----     | ----
10 | repo-source-non-oss          | Source Repository (Non-OSS)        | 아니요   | ----     | ----
11 | repo-update                  | 주 업데이트 저장소                 | 예       | (r ) 예  | 예
12 | repo-update-non-oss          | Update Repository (Non-Oss)        | 예       | (r ) 예  | 예
study@localhost:~> 

리포지토리 정보 갱신(새로 고침)

$ sudo zypper refresh (ref) [alias|name|#|URI]...

$ sudo zypper ref [alias|name|#|URI]...


일반 옵션 :

-f, --force
-b, --force-build
-d, --force-download
-B, --build-only
-D, --download-only
-s, --services

별명, 이름, 번호 또는 URI로 지정된 저장소를 새로 고칩니다. 리포지토리를 지정하지 않으면 활성화 된 모든 리포지토리가 새로 고쳐집니다.


study@localhost:~> sudo zypper refresh repo-update
'주 업데이트 저장소' 리포지토리가 최신 상태입니다.                                                                                
지정된 리포지토리가 새로 고쳐졌습니다.
study@localhost:~> 

리포지토리의 로컬 캐시 정리

$ sudo zypper clean [options] [alias|name|#|URI]...

$ sudo zypper cc [options] [alias|name|#|URI]...


일반 옵션 :

-m, --metadata
-M, --raw-metadata
-a, --all

모든 알려진 또는 지정된 리포지토리의 로컬 캐시를 정리합니다. 기본적으로 다운로드 한 패키지의 캐시 만 정리됩니다.


study@localhost:~> sudo zypper clean repo-update
지정된 리포지토리가 정리되었습니다.
study@localhost:~> 

리포지토리 제거

$ sudo zypper removerepo [options] alias|name|#|URI...

$ sudo zypper rr [options] alias|name|#|URI...


일반 옵션 :

--loose-auth
--loose-query
-a, --all
-l, --local
-t, --remote
-m, --medium-type type

별명, 이름, 숫자, URI 등으로 지정된 저장소를 삭제합니다.


study@localhost:~> sudo zypper removerepo repo-kaist_mirror-update-oss
'KAIST openSUSE Mirror - update-oss' 리포지토리 제거 중 ....................................................................[완료]
'KAIST openSUSE Mirror - update-oss' 리포지토리가 제거되었습니다.
study@localhost:~> sudo zypper repos
저장소는 우선순위가 없습니다. 모든 저장소는 같은 우선순위를 공유합니다.

#  | 별칭                      | 이름                               | 활성화됨 | GPG 확인 | 새로 고침
---+---------------------------+------------------------------------+----------+----------+----------
 1 | openSUSE-Leap-15.2-1      | openSUSE-Leap-15.2-1               | 아니요   | ----     | ----
 2 | repo-debug                | Debug Repository                   | 아니요   | ----     | ----
 3 | repo-debug-non-oss        | Debug Repository (Non-OSS)         | 아니요   | ----     | ----
 4 | repo-debug-update         | Update Repository (Debug)          | 아니요   | ----     | ----
 5 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | 아니요   | ----     | ----
 6 | repo-non-oss              | Non-OSS Repository                 | 예       | (r ) 예  | 예
 7 | repo-oss                  | Main Repository                    | 예       | (r ) 예  | 예
 8 | repo-source               | Source Repository                  | 아니요   | ----     | ----
 9 | repo-source-non-oss       | Source Repository (Non-OSS)        | 아니요   | ----     | ----
10 | repo-update               | 주 업데이트 저장소                 | 예       | (r ) 예  | 예
11 | repo-update-non-oss       | Update Repository (Non-Oss)        | 예       | (r ) 예  | 예
study@localhost:~>