차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
suse_zypper_사용법 [2021/03/31 02:24] koovsuse_zypper_사용법 [2025/03/07 01:43] (현재) – [특정 기능 검색] koov
줄 30: 줄 30:
 </code> </code>
 </WRAP> </WRAP>
-위의 예에서 ''--non-interactive'' 이 옵션은 명령이 아무 것도 묻지 않고 실행된다는 것을 의미합니다(기본 답변을 자동으로 적용). +위의 예에서 ''%%--non-interactive%%'' 이 옵션은 명령이 아무 것도 묻지 않고 실행된다는 것을 의미합니다(기본 답변을 자동으로 적용). 
  
 ==== 명령 별 옵션 ==== ==== 명령 별 옵션 ====
줄 40: 줄 40:
 </WRAP> </WRAP>
  
-위의 예에서는 ''--auto-agree-with-licenses'' 라이선스를 확인하라는 요청을 받지 않고 시스템에 필요한 모든 패치를 적용하는 데 사용됩니다. 대신 라이선스가 자동으로 허용됩니다. +위의 예에서는 ''%%--auto-agree-with-licenses%%'' 라이선스를 확인하라는 요청을 받지 않고 시스템에 필요한 모든 패치를 적용하는 데 사용됩니다. 대신 라이선스가 자동으로 허용됩니다. 
  
 ==== 인수 ==== ==== 인수 ====
줄 64: 줄 64:
 </WRAP> </WRAP>
  
-이 ''--from'' 옵션은 지정된 리포지토리에서 패키지를 요청하는 동안 모든 리포지토리를 사용하도록 설정(종속성을 해결하기 위한)을 유지합니다. ''--repo'' 옵션은 ''--from''의 별칭이며 둘 중 하나를 사용할 수 있습니다. +이 ''%%--from%%'' 옵션은 지정된 리포지토리에서 패키지를 요청하는 동안 모든 리포지토리를 사용하도록 설정(종속성을 해결하기 위한)을 유지합니다. ''%%--repo%%'' 옵션은 ''%%--from%%''의 별칭이며 둘 중 하나를 사용할 수 있습니다. 
  
 대부분의 ''Zypper'' 명령은 지정된 명령을 시뮬레이션하는 ''dry-run'' 옵션이 있습니다. 테스트 목적으로 사용할 수 있습니다.  대부분의 ''Zypper'' 명령은 지정된 명령을 시뮬레이션하는 ''dry-run'' 옵션이 있습니다. 테스트 목적으로 사용할 수 있습니다. 
줄 73: 줄 73:
 </WRAP> </WRAP>
  
-''Zypper''는 글로벌 옵션 ''--userdata STRING''을 지원합니다. 이 옵션으로 문자열을 지정할 수 있으며, 이 옵션은 ''Zypper''의 로그 파일 및 플러그인(예: Btrfs 플러그인)에 기록됩니다. 로그 파일에서 트랜잭션을 표시하고 식별하는 데 사용할 수 있습니다. +''Zypper''는 글로벌 옵션 ''%%--userdata STRING%%''을 지원합니다. 이 옵션으로 문자열을 지정할 수 있으며, 이 옵션은 ''Zypper''의 로그 파일 및 플러그인(예: Btrfs 플러그인)에 기록됩니다. 로그 파일에서 트랜잭션을 표시하고 식별하는 데 사용할 수 있습니다. 
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
줄 138: 줄 138:
 </WRAP> </WRAP>
  
-정확한 패키지 이름 및 버전 번호로+=== 정확한 패키지 이름 및 버전 번호로 ===
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
줄 145: 줄 145:
 </WRAP> </WRAP>
  
-리포지토리 별칭 및 패키지 이름으로+=== 리포지토리 별칭 및 패키지 이름으로 === 
 <WRAP prewrap> <WRAP prewrap>
 <code bash> <code bash>
줄 151: 줄 152:
 </code> </code>
 </WRAP> </WRAP>
 +
 +=== 와일드 카드를 사용하여 패키지 이름으로 ===
 +이름이 특정 문자열로 시작하거나 끝나는 모든 패키지를 선택할 수 있습니다. 특히 패키지를 제거할 때 와일드 카드를 주의하여 사용하십시오. 다음 명령은 ''Moz''로 시작된 모든 패키지를 설치합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install 'Moz*'
 +</code>
 +</WRAP>
 +
 +<WRAP center round tip 60%>
 +''-debuginfo''의 모든 패키지 제거
 +문제를 디버깅할 때 프로세스 실행에 대한 자세한 정보를 제공하는 많은 패키지를 일시적으로 설치해야 하는 경우가 있습니다. 디버깅 세션이 끝나고 환경을 정리해야 하는 후 다음을 실행합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper remove '*-debuginfo'
 +</code>
 +</WRAP>
 +</WRAP>
 +
 +=== 기능별 ===
 +예를 들어 이름을 모르게 패키지를 설치하려면 기능이 편리합니다. 다음 명령은 ''MozillaFirefox''패키지를 설치합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install firefox
 +</code>
 +</WRAP>
 +
 +=== 기능, 하드웨어 아키텍처 또는 버전별 ===
 +기능과 함께 하드웨어 아키텍처 및 버전을 지정할 수 있습니다.
 +
 +  * 원하는 하드웨어 아키텍처의 이름은 전체 중지 후 기능에 추가됩니다. 예를 들어 ''AMD64/Intel64'' 아키텍처(Zypper에서 지정한 아키텍처 ''x86_64'')를 지정하려면 다음을 사용합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install 'firefox.x86_64'
 +</code>
 +</WRAP>
 +
 +  * 버전은 문자열의 끝에 추가되어야 하며 연산자가 선행해야 합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install 'firefox>=74.2'
 +</code>
 +</WRAP>
 +
 +  * 하드웨어 아키텍처 및 버전 요구 사항을 결합할 수도 있습니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install 'firefox.x86_64>=74.2'
 +</code>
 +</WRAP>
 +
 +
 +=== RPM 파일로 가는 길별 ===
 +패키지에 대한 로컬 경로 또는 원격 경로를 지정할 수도 있습니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install /tmp/install/MozillaFirefox.rpm
 +sudo zypper install http://download.example.com/MozillaFirefox.rpm
 +</code>
 +</WRAP>
 +
 +==== 패키지 설치 및 제거 결합 ====
 +
 +패키지를 동시에 설치하고 제거하려면 수정자를 사용합니다. ''+/-'' 기호를 사용하여 ''emacs''를 설치함과 동시에 ''vim'' 을 제거하려면 아래와 같이 사용한다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install emacs -vim
 +</code>
 +</WRAP>
 +
 +''emacs''를 제거하고 동시에 ''vim''을 설치
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper remove emacs +vim
 +</code>
 +</WRAP>
 +
 +패키지 이름이 ''-''로 시작하는 경우 ''-''기호가 명령 옵션으로 해석되는 것을 방지하려면 ''%%--%%'' 뒤에 인수를 사용하십시요
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install -emacs +vim       # Wrong
 +sudo zypper install vim -emacs        # Correct
 +sudo zypper install -- -emacs +vim    # Correct
 +sudo zypper remove emacs +vim         # Correct
 +</code>
 +</WRAP>
 +
 +==== 제거된 패키지의 종속성 정리 ====
 +특정 패키지와 함께 지정된 패키지를 제거한 후 불필요한 패키지를 자동으로 제거하려면 다음 ''%%--clean-deps%%'' 옵션을 사용합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper rm --clean-deps PACKAGE_NAME
 +</code>
 +</WRAP>
 +
 +==== 스크립트에서 자이퍼 사용 ====
 +기본적으로 ''Zypper''는 선택한 패키지를 설치하거나 제거하기 전에 또는 문제가 발생할 때 확인을 요청합니다. ''%%--non-interactive%%''옵션을 사용하여 이 동작을 재정의할 수 있습니다. 이 옵션은 다음에서 볼 수 있듯이 실제 ''install'' ''remove'' ''patch''명령(및)전에 제공되어야 합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper --non-interactive install PACKAGE_NAME
 +</code>
 +</WRAP>
 +이 옵션을 사용하면 스크립트 및 크론 작업에 ''Zypper''를 사용할 수 있습니다.
 +
 +==== 소스 패키지 설치 또는 다운로드 ====
 +
 +패키지의 해당 소스 패키지를 설치하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +zypper source-install PACKAGE_NAME
 +</code>
 +</WRAP>
 +
 +''root''권한으로 실행될 때 소스 패키지를 설치하는 기본 위치는 ''/usr/src/packages/'' 이고 일반 사용자의 경우 ''~/rpmbuild''로 실행됩니다. 이러한 값은 로컬 ''rpm'' 설정파일에서 변경할 수 있습니다. 
 +
 +이 명령은 지정된 패키지의 빌드 종속성을 설치합니다. 이 것을 원하지 않는 경우 ''-D'' 스위치를 추가합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper source-install -D PACKAGE_NAME
 +</code>
 +</WRAP>
 +
 +빌드 종속성만 설치하려면 ''-d''사용합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper source-install -d PACKAGE_NAME
 +</code>
 +</WRAP>
 +물론 리포지토리 목록에서 소스 패키지가 활성화된 저장소가 있는 경우에만 작동합니다(기본적으로 추가되지만 활성화되지 않음).
 +
 +리포지토리에서 사용할 수 있는 모든 소스 패키지 목록을 가져올 수 있습니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper search -t srcpackage
 +</code>
 +</WRAP>
 +
 +설치된 모든 패키지에 대한 소스 패키지를 로컬 디렉토리에 다운로드할 수도 있습니다. 소스 패키지를 다운로드하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +zypper source-download
 +</code>
 +</WRAP>
 +기본 다운로드 디렉토리는 ''/var/cache/zypper/source-download''. ''%%--directory%%''옵션을 사용하여 변경할 수 있습니다. 아무것도 다운로드하거나 삭제하지 않고 누락되었거나 불필요한 패키지만 표시하려면 ''%%--status%%''옵션을 사용합니다. 불필요한 소스 패키지를 삭제하려면 ''%%--delete%%''옵션을 사용합니다. 삭제를 사용하지 않도록 설정하려면 ''%%--no-delete%%''옵션을 사용합니다. 
 +
 +==== 비활성화된 리포지토리에서 패키지 설치 ====
 +일반적으로 활성화된 리포지토리에서만 패키지를 설치하거나 새로 고칠 수 있습니다. 이 ''%%--plus-content TAG%%'' 옵션을 사용하면 리포지토리를 새로 고치고 현재 Zypper 세션 중에 일시적으로 활성화하고 완료한 후 비활성화할 리포지토리를 지정하는 데 도움이 됩니다. 
 +
 +예를 들어 ''-debuginfo'' 나 ''-debugsource'' 추가 패키지를 제공할 수 있는 리포지토리를 사용하도록 설정하려면 ''%%--plus-content debug
 +%%''를 사용합니다. 이 옵션은 여러 번 지정할 수 있습니다. 
 +이러한 ''디버깅'' 리포지토리를 일시적으로 활성화하여 특정 ''-debuginfo'' 패키지를 설치하려면 다음 옵션을 다음과 같이 사용하십시오. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper --plus-content debug \
 +   install "debuginfo(build-id)=eb844a5c20c70a59fc693cd1061f851fb7d046f4"
 +</code>
 +</WRAP>
 +
 +''build-id''문자열은 디버그정보 패키지가 누락된 경우 ''gdb''에 의해 보고됩니다. 
 +
 +<WRAP center round info 60%>
 +비활성화된 설치 미디어
 +openSUSE Leap 설치 미디어는 여전히 구성되지만 성공적인 설치 후에도 비활성화됩니다. 이 ''%%--plus-content%%''옵션을 사용하여 온라인 리포지토리 대신 설치 미디어에서 패키지를 설치할 수 있습니다. ''zypper''를 호출하기 전에 컴퓨터 드라이브에 DVD를 삽입하여 미디어를 사용할 수 있는지 확인합니다.
 +</WRAP>
 +
 +==== 유틸리티 ====
 +모든 종속성이 여전히 충족되는지 확인하고 누락된 종속성을 복구하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +zypper verify
 +</code>
 +</WRAP>
 +
 +이행해야 하는 종속성 외에도 일부 패키지 **추천** 다른 패키지. 이러한 권장 패키지는 실제로 사용할 수 있고 설치가능한 경우에만 설치됩니다. 권장 패키지를 설치한 후 권장 패키지를 사용할 수 있는 경우(추가 패키지 또는 하드웨어를 추가하여) 다음 명령을 사용합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper install-new-recommends
 +</code>
 +</WRAP>
 +
 +이 명령은 웹 캠 또는 Wi-Fi 장치를 연결한 후 매우 유용합니다. 사용 가능한 경우 장치 및 관련 소프트웨어에 대한 드라이버를 설치합니다. 드라이버 및 관련 소프트웨어는 특정 하드웨어 종속성이 충족되는 경우에만 설치할 수 있습니다.
 +
 +===== Zypper로 소프트웨어 업데이트 =====
 +Zypper를 사용하여 소프트웨어를 업데이트하는 방법에는 **패치를 설치**하거나 **새 버전의 패키지를 설치**하거나 **전체 배포판을 업데이트**하여 업데이트하는 세 가지 방법이 있습니다. 전체배포판을 업데이트 하려면 ''zypper dist-upgrade''를 이용합니다.
 +
 +==== 필요한 모든 패치 설치 ====
 +시스템에 적용되는 공식적으로 릴리스된 모든 패치를 설치하려면 다음을 실행하십시오.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch
 +</code>
 +</WRAP>
 +컴퓨터에서 구성된 리포지토리에서 사용할 수 있는 모든 패치는 설치와 관련성이 있는지 확인합니다. 관련성이 있고(''optional'' 또는 ''feature''로 분류되지 않은 경우) 즉시 설치됩니다. 
 +설치할 패치에 시스템 재부팅이 필요한 변경 사항이 포함된 경우 이전에 경고를 받게 됩니다.
 +
 +일반 ''zypper patch'' 명령은 타사 리포지토리의 패치를 적용하지 않습니다. 타사 리포지토리도 업데이트하려면 다음과 같이 ''with-update''명령 옵션을 사용합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch --with-update
 +</code>
 +</WRAP>
 +
 +선택적 패치도 설치하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch --with-optional
 +</code>
 +</WRAP>
 +
 +특정 ''Bugzilla'' 문제와 관련된 모든 패치를 설치하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch --bugzilla=NUMBER
 +</code>
 +</WRAP>
 +
 +특정 CVE 데이터베이스 항목과 관련된 모든 패치를 설치하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch --cve=NUMBER
 +</code>
 +</WRAP>
 +
 +예를 들어 CVE 번호 ''CVE-2010-2713'' 가 있는 보안 패치를 설치하려면 다음을 실행합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch --cve=CVE-2010-2713
 +</code>
 +</WRAP>
 +
 +Zypper 및 패키지 관리 자체에 영향을 주는 패치만 설치하려면 다음을 사용하십시오.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper patch --updatestack-only
 +</code>
 +</WRAP>
 +
 +''updatestack-only'' 명령 옵션을 사용하면 다른 리포지토리를 업데이트하는 다른 명령 옵션이 삭제됩니다.
 +
 +==== 목록 패치 ====
 +패치를 사용할 수 있는지 여부를 알아내기 위해 Zypper는 다음 정보를 볼 수 있습니다.
 +
 +=== 필요한 패치 수 ===
 +필요한 패치(시스템에 적용되지만 아직 설치되지 않은 패치)를 나열하려면 다음을 ''patch-check'' 사용하십시오. 
 +<WRAP prewrap>
 +<code bash>
 +zypper patch-check
 +Loading repository data...
 +Reading installed packages...
 +5 patches needed (1 security patch)
 +</code>
 +</WRAP>
 +
 +이 명령은 Zypper 및 패키지 관리 자체에 영향을 주는 패치만 나열하는 ''%%--updatestack-only%%''옵션과 결합할 수 있습니다. 
 +
 +=== 필요한 패치 목록 ===
 +필요한 패치(시스템에 적용되지만 아직 설치되지 않은 패치)를 나열하려면 다음을 ''list-patches'' 사용하십시오. 
 +<WRAP prewrap>
 +<code bash>
 +zypper list-patches
 +Repository | Name              | Category | Severity | Interactive | Status | S>
 +-----------+-------------------+----------+----------+-------------+--------+-->
 +Update     | openSUSE-2019-828 | security | moderate | ---         | needed | S>
 +
 +Found 1 applicable patch:
 +1 patch needed (1 security patch)
 +</code>
 +</WRAP>
 +''Since'' 컬럼 정보는 ''Zypper 1.14.36''이상 버전에서만 표시됩니다.
 +
 +=== 모든 패치 목록 ===
 +''openSUSE Leap''의 사용할 수 있는 모든 패치를 나열하려면 이미 설치되어 있는지 또는 설치에 적용하든 관계없이 ''zypper patches'' 명령을 사용합니다. 
 +
 +특정 문제와 관련된 패치를 나열하고 설치할 수도 있습니다. 특정 패치를 나열하려면 다음 ''zypper list-patches'' 옵션을 사용하여 명령을 사용합니다. 
 +
 +=== 버그질라 이슈 ===
 +Bugzilla 문제와 관련된 필요한 모든 패치를 나열하려면 ''%%--bugzilla%%'' 옵션을 사용합니다. 
 +
 +특정 버그에 대한 패치를 나열하려면 ''%%--bugzilla=NUMBER%%'' 버그 번호를 지정할 수도 있습니다. 여러 Bugzilla 문제와 관련된 패치를 검색하려면 버그 번호 사이에 쉼표를 추가합니다. 
 +<WRAP prewrap>
 +<code bash>
 +zypper list-patches --bugzilla=972197,956917
 +</code>
 +</WRAP>
 +
 +=== CVE 번호로 ===
 +CVE 데이터베이스(공통 취약점 및 노출)의 항목과 관련된 필요한 모든 패치를 나열하려면 ''%%--cve%%''옵션을 사용합니다. 
 +
 +특정 CVE 데이터베이스 항목에 대한 패치를 나열하려면 CVE 번호를 지정할 수도 있습니다 ''%%--cve=NUMBER%%''. 여러 CVE 데이터베이스 항목과 관련된 패치를 검색하려면 다음과 같이 CVE 번호 사이에 쉼표를 추가합니다. 
 +<WRAP prewrap>
 +<code bash>
 +zypper list-patches --bugzilla=CVE-2016-2315,CVE-2016-2324
 +</code>
 +</WRAP>
 +
 +필요한지 여부에 관계없이 모든 패치를 나열하려면 ''%%--all%%''옵션을 추가로 사용합니다. 예를 들어 CVE 번호가 할당된 모든 패치를 나열하려면 다음을 사용하십시오. 
 +<WRAP prewrap>
 +<code bash>
 +zypper list-patches --all --cve
 +Issue | No.           | Patch             | Category    | Severity  | Status
 +------+---------------+-------------------+-------------+-----------+----------
 +cve   | CVE-2019-0287 | SUSE-SLE-Module.. | recommended | moderate  | needed
 +cve   | CVE-2019-3566 | SUSE-SLE-SERVER.. | recommended | moderate  | not needed
 +[...]
 +</code>
 +</WRAP>
 +
 +==== 새 패키지 버전 설치 ====
 +리포지토리에 새 패키지만 포함되어 있지만 패치를 제공하지 않는 경우 ''zypper patch'' 아무효과도 표시되지 않습니다. 설치된 모든 패키지를 최신 버전(시스템 무결성 유지 관리)으로 업데이트하려면 다음을 사용하십시오. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper update
 +</code>
 +</WRAP>
 +
 +개별 패키지를 업데이트하려면 업데이트 또는 설치 명령으로 패키지를 지정합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper update PACKAGE_NAME
 +sudo zypper install PACKAGE_NAME
 +</code>
 +</WRAP>
 +
 +명령을 통해 모든 새 설치 가능한 패키지 목록을 가져올 수 있습니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper list-updates
 +</code>
 +</WRAP>
 +
 +이 명령은 다음 기준과 일치하는 패키지만 나열합니다.
 +  * 이미 설치된 패키지와 같은 공급업체가 동일합니다.
 +  * 이미 설치된 패키지와 동일한 우선 순위를 가진 리포지토리에서 제공되며,
 +  * 설치가능한 경우(모든 종속성이 충족됩니다).
 +
 +설치 여부에 관계없이 사용 가능한 새 패키지를 가져올 수 있습니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper list-updates --all
 +</code>
 +</WRAP>
 +
 +새 패키지를 설치할 수 없는 이유를 알아두려면 위에서 설명한 대로 ''zypper install'' 또는 ''zypper update'' 명령을 사용합니다. 
 +
 +==== 고아 패키지 식별 ====
 +Zypper에서 리포지토리를 제거하거나 시스템을 업그레이드할 때 일부 패키지가 ''고아(Orphan)''상태 인 경우가 있다. 이러한 고아 패키지는 더 이상 활성 저장소에 속하지 않습니다. 다음 명령은 다음과 같은 목록을 제공합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper packages --orphaned
 +</code>
 +</WRAP>
 +
 +이 목록을 사용하면 패키지가 여전히 필요한지 또는 안전하게 제거할 수 있는지 여부를 결정할 수 있습니다.
 +
 +===== 삭제된 파일을 사용하여 프로세스 및 서비스 식별 =====
 +패키지를 패치, 업데이트 또는 제거할 때 업데이트 또는 제거에 의해 삭제된 파일을 계속 사용하는 프로세스가 시스템에 실행 중인 경우가 있습니다. ''zypper ps''는 삭제된 파일을 사용하여 프로세스를 나열하는 데 사용합니다. 프로세스가 알려진 서비스에 속하는 경우 서비스 이름이 나열되어 서비스를 쉽게 다시 시작할 수 있습니다. 기본적으로 ''zypper ps''는 테이블로 표시됩니다. 
 +<WRAP prewrap>
 +<code bash>
 +zypper ps
 +PID   | PPID | UID | User  | Command      | Service      | Files
 +------+------+-----+-------+--------------+--------------+-------------------
 +814   | 1    | 481 | avahi | avahi-daemon | avahi-daemon | /lib64/ld-2.19.s->
 +      |      |                        |              | /lib64/libdl-2.1->
 +      |      |                        |              | /lib64/libpthrea->
 +      |      |                        |              | /lib64/libc-2.19->
 +[...]
 +</code>
 +</WRAP>
 +
 +  * ''PID'': 프로세스의 ID
 +  * ''PPID'': 부모 프로세스의 ID
 +  * ''UID'': 프로세스를 실행하는 사용자의 ID
 +  * ''Login'': 프로세스를 실행하는 사용자의 로그인 이름
 +  * ''Command'': 프로세스를 실행하는 데 사용되는 명령
 +  * ''Service'': 서비스 이름(명령이 시스템 서비스와 연결된 경우에만)
 +  * ''Files'': 삭제된 파일 목록
 +
 +''zypper ps''의 출력 형식은 다음과 같이 제어할 수 있습니다. 
 +
 +=== zypper ps -s ===
 +삭제된 파일이 표시되지 않는 짧은 테이블을 만듭니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper ps -s
 +PID   | PPID | UID  | User    | Command      | Service
 +------+------+------+---------+--------------+--------------
 +814   | 1    | 481  | avahi   | avahi-daemon | avahi-daemon
 +817   | 1    | 0    | root    | irqbalance   | irqbalance
 +1567  | 1    | 0    | root    | sshd         | sshd
 +1761  | 1    | 0    | root    | master       | postfix
 +1764  | 1761 | 51   | postfix | pickup       | postfix
 +1765  | 1761 | 51   | postfix | qmgr         | postfix
 +2031  | 2027 | 1000 | tux     | bash         |
 +</code>
 +</WRAP>
 +
 +=== zypper ps -ss ===
 +시스템 서비스와 연결된 프로세스만 표시합니다.
 +<WRAP prewrap>
 +<code bash>
 +PID   | PPID | UID  | User    | Command      | Service
 +------+------+------+---------+--------------+--------------
 +814   | 1    | 481  | avahi   | avahi-daemon | avahi-daemon
 +817   | 1    | 0    | root    | irqbalance   | irqbalance
 +1567  | 1    | 0    | root    | sshd         | sshd
 +1761  | 1    | 0    | root    | master       | postfix
 +1764  | 1761 | 51   | postfix | pickup       | postfix
 +1765  | 1761 | 51   | postfix | qmgr         | postfix
 +</code>
 +</WRAP>
 +
 +=== zypper ps -sss ===
 +삭제된 파일만 사용하여 시스템 서비스를 표시합니다.
 +<WRAP prewrap>
 +<code bash>
 +avahi-daemon
 +irqbalance
 +postfix
 +sshd
 +</code>
 +</WRAP>
 +
 +=== zypper ps --print "systemctl status %s" ===
 +
 +다시 시작해야 할 수 있는 서비스에 대한 상태 정보를 검색하는 명령을 표시합니다.
 +<WRAP prewrap>
 +<code bash>
 +systemctl status avahi-daemon
 +systemctl status irqbalance
 +systemctl status postfix
 +systemctl status sshd
 +</code>
 +</WRAP>
 +
 +서비스 취급에 대한 자세한 내용은 제 10 장, 데몬systemd.
 +
 +===== Zypper로 리포지토리 관리 =====
 +
 +Zypper의 모든 설치 또는 패치 명령은 알려진 리포지토리 목록에 의존합니다. 시스템에 알려진 모든 리포지토리를 나열하려면 명령을 사용합니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper repos
 +</code>
 +</WRAP>
 +
 +결과는 다음 출력과 유사하게 보입니다.
 +
 +예 2.1: 자이퍼-알려진 저장소 목록
 +<WRAP prewrap>
 +<code bash>
 +zypper repos
 +#  | Alias                 | Name             | Enabled | GPG Check | Refresh
 +---+-----------------------+------------------+---------+-----------+--------
 + 1 | Leap-15.1-Main        | Main (OSS)       | Yes     | (r ) Yes  | Yes
 + 2 | Leap-15.1-Update      | Update (OSS)     | Yes     | (r ) Yes  | Yes
 + 3 | Leap-15.1-NOSS        | Main (NON-OSS)   | Yes     | (r ) Yes  | Yes
 + 4 | Leap-15.1-Update-NOSS | Update (NON-OSS) | Yes     | (r ) Yes  | Yes
 +[...]
 +</code>
 +</WRAP>
 +
 +다양한 명령에 리포지토리를 지정할 때 ''zypper repos'' 명령 출력에서 별칭, URI 또는 리포지토리 번호를 사용할 수 있습니다. 리포지토리 별칭은 리포지토리 처리 명령에 사용할 저장소 이름의 짧은 버전입니다. 리포지토리 목록을 수정한 후 리포지토리 번호가 변경될 수 있습니다. 별칭은 그 자체로 변경되지 않습니다. 
 +
 +기본적으로 URI 또는 리포지토리의 우선 순위와 같은 세부 정보가 표시되지 않습니다. 다음 명령을 사용하여 모든 세부 정보를 나열합니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper repos -d
 +</code>
 +</WRAP>
 +
 +==== 리포지토리 추가 ====
 +리포지토리를 추가하려면
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper addrepo URI ALIAS
 +</code>
 +</WRAP>
 +
 +URI는 인터넷 리포지토리, 네트워크 리소스, 디렉토리 또는 CD 또는 DVD일 수 있습니다. ''ALIAS''는 리포지토리의 약자 및 고유 식별자입니다. 고유해야 하는 유일한 예외를 제외하고 자유롭게 선택할 수 있습니다. 이미 사용 중인 별칭을 지정하면 Zypper가 경고를 발행합니다.
 +
 +==== 리포지토리 갱신 ====
 +''zypper''로 구성된 리포지토리에서 패키지의 변경 내용을 가져올 수 있습니다. 변경 내용을 가져오려면 다음을 실행합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper refresh
 +</code>
 +</WRAP>
 +
 +<WRAP center round info 60%>
 +''zypper'' 기본 동작 
 +기본적으로 일부 명령은 자동으로 ''refresh'' 수행되므로 명령을 명시적으로 실행할 필요가 없습니다. 
 +</WRAP>
 +
 +이 ''refresh'' 명령을 사용하면 ''%%--plus-content%%'' 옵션을 사용하여 비활성화된 리포지토리에서도 변경 내용을 볼 수 있습니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper --plus-content refresh
 +</code>
 +</WRAP>
 +
 +이 옵션은 리포지토리의 변경 내용을 가져오지만 비활성화된 리포지토리를 동일한 상태로 유지합니다.
 +
 +==== 리포지토리 제거 ====
 +목록에서 리포지토리를 제거하려면 삭제할 저장소별칭 또는 리포지토리 수와 함께 ''zypper remove'' 명령을 사용합니다. 예를 들어 ''Leap-42.3-NOSS'' 리포지토리를 제거하려면 다음 명령 중 하나를 사용합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper removerepo 4
 +sudo zypper removerepo "Leap-42.3-NOSS"
 +</code>
 +</WRAP>
 +
 +==== 리포지토리 수정 ====
 +''zypper modifyrepo''로 리포지토리를 사용하거나 비활성화합니다. 이 명령을 사용하면 리포지토리의 속성(예: 새로 고침 동작, 이름 또는 우선 순위)을 변경할 수도 있습니다. 다음 명령을 사용하면 명명된 리포지토리가 활성화되고 자동 새로 고침을 켜고 우선 순위를 20으로 설정합니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper modifyrepo -er -p 20 'updates'
 +</code>
 +</WRAP>
 +
 +리포지토리 수정은 단일 리포지토리에 국한되지 않으며 그룹에서도 작동할 수 있습니다.
 +
 +  * ''-a'': 모든 리포지토리
 +  * ''-l'': 로컬 리포지토리
 +  * ''-t'': 원격 저장소
 +  * ''-m TYPE'': 특정 유형의 리포지토리(위치 형식 다음 중 하나가 될 수 있습니다 : ''http'', ''https'', ''ftp'', ''cd'', ''dvd'', ''dir'', ''file'', ''cifs'', ''smb'', ''nfs'', ''hd'', ''iso'')
 +리포지토리 별칭의 이름을 바꾸려면 ''renamerepo''명령을 사용합니다. 다음 예제에서 ''Mozilla Firefox'' 를 ''firefox''로 별칭을 변경합니다. 
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper renamerepo 'Mozilla Firefox' firefox
 +</code>
 +</WRAP>
 +
 +===== Zypper로 리포지토리 및 패키지 쿼리 =====
 +Zypper는 리포지토리 또는 패키지를 쿼리하는 다양한 방법을 제공합니다. 사용 가능한 모든 제품, 패턴, 패키지 또는 패치 목록을 얻으려면 다음 명령을 사용합니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper products
 +zypper patterns
 +zypper packages
 +zypper patches
 +</code>
 +</WRAP>
 +
 +특정 패키지에 대한 모든 리포지토리를 쿼리하려면 ''search''를 사용합니다. 특정 패키지에 대한 정보를 얻으려면 ''info''명령을 사용합니다. 
 +
 +==== 소프트웨어 검색 ====
 +''zypper search''명령은 패키지 이름 또는 패키지 요약 및 설명에서 선택적으로 작동합니다. ''/''로 둘러싸인 문자열은 정규표현식으로 해석됩니다. 기본적으로 검색은 대/소문자를 무시합니다. 
 +
 +패키지 이름에 ''fire''가 포함된 간단한 검색 
 +<WRAP prewrap>
 +<code bash>
 +zypper search "fire"
 +</code>
 +</WRAP>
 +
 +정확한 패키지명 ''MozillaFirefox''에 대한 간단한 검색 
 +<WRAP prewrap>
 +<code bash>
 +zypper search --match-exact "MozillaFirefox"
 +</code>
 +</WRAP>
 +
 +또한 패키지 설명 및 요약검색
 +<WRAP prewrap>
 +<code bash>
 +zypper search -d fire
 +</code>
 +</WRAP>
 +
 +아직 설치되지 않은 패키지만 출력
 +<WRAP prewrap>
 +<code bash>
 +zypper search -u fire
 +</code>
 +</WRAP>
 +
 +''fir''뒤에 ''e''를 포함하지 않는 패키지 검색
 +<WRAP prewrap>
 +<code bash>
 +zypper se "/fir[^e]/"
 +</code>
 +</WRAP>
 +
 +==== 특정 기능 검색 ====
 +특수 기능을 제공하는 패키지를 검색하려면 ''what-provides''명령을 사용합니다. 예를 들어 ''Perl'' 모듈의 ''SVN::Core'' 을 제공하는 패키지를 알고 싶다면 다음 명령을 사용합니다. 
 +<WRAP prewrap>
 +<code bash>
 +zypper what-provides 'perl(SVN::Core)'
 +</code>
 +</WRAP>
 +''what-provides PACKAGE_NAME''은 ''rpm -q --whatprovides PACKAGE_NAME'' 과 유사합니다. 하지만 RPM은 RPM 데이터베이스(설치된 모든 패키지의 데이터베이스)만 쿼리할 수 있습니다. 반면, Zypper는 설치된 리포지토리뿐만 아니라 모든 리포지토리의 기능 공급자에 대해 알려줍니다.
 +
 +15 이후 버전부터는 아래와 같이 변경되었습니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper search --provides --match-exact <file>
 +또는 단순히
 +zypper search --provides <file>
 +</code>
 +</WRAP>
 +
 +
 +==== 패키지 정보 표시 ====
 +단일 패키지를 쿼리하려면 정확한 패키지 이름을 인수로 ''info'' 옵션을 사용합니다. 이 명령은 패키지에 대한 자세한 정보가 표시됩니다. 패키지 이름이 리포지토리의 패키지 이름과 일치하지 않는 경우 명령은 패키지가 아닌 일치항목에 대한 자세한 정보를 출력합니다. 특정 형식(''-t''옵션을 사용하여)을 요청하고 형식이 존재하지 않는 경우 명령은 사용 가능한 다른 일치 항목을 출력하지만 자세한 정보는 없습니다.
 +
 +소스 패키지를 지정하면 명령에 소스 패키지에서 빌드된 이진 패키지가 표시됩니다. 이진 패키지를 지정하면 명령은 이진 패키지를 빌드하는 데 사용되는 소스 패키지를 출력합니다.
 +
 +또한 패키지 설치시에 어떤것들이 필요/권장되는 것이 있는지 표시하려면 ''%%--requires%%'' 와 ''%%--recommends%%'' 옵션을 사용합니다.
 +<WRAP prewrap>
 +<code bash>
 +zypper info --requires MozillaFirefox
 +</code>
 +</WRAP>
 +
 +===== Zypper 구성 =====
 +이제 Zypper에는 구성 파일이 함께 제공되므로 Zypper의 동작(시스템 전체 또는 사용자 별)을 영구적으로 변경할 수 있습니다. 시스템 전체 설정은 ''/etc/zypp/zypper.conf''. 사용자별 설정은 ''~/.zypper.conf''.
 +''~/.zypper.conf''파일이 존재하지 않는 경우 ''/etc/zypp/zypper.conf''파일을 템플릿으로 사용가능합니다. 해당 파일을 ''~/.zypper.conf''로 복사하여 설정하면 됩니다.
 +사용 가능한 옵션에 대한 도움말을 보려면 파일의 주석을 참조하십시오. 
 +
 +===== 문제 해결 =====
 +구성된 리포지토리에서 패키지에 액세스하는 데 문제가 있는 경우(예: 리포지토리 중 하나에 있는 것을 알고 있더라도 Zypper는 특정 패키지를 찾을 수 없음) 리포지토리를 새로 고치는 것이 도움이 될 수 있습니다.
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper refresh
 +</code>
 +</WRAP>
 +
 +도움이 되지 않으면
 +<WRAP prewrap>
 +<code bash>
 +sudo zypper refresh -fdb
 +</code>
 +</WRAP>
 +이렇게 하면 원시 메타데이터를 강제로 다운로드하는 것을 포함하여 데이터베이스를 완전히 새로 고치고 다시 빌드합니다.
 +
 +===== Btrfs 파일 시스템에 지퍼 롤백 기능 =====
 +Btrfs 파일 시스템이 루트 파티션에 사용되고 **snapper**가 설치되어있는 경우 Zypper는 파일 시스템을 변경하면 자동으로 **snapper**를 호출하여 적절한 파일 시스템 스냅샷을 만듭니다. 이러한 스냅숏은 Zypper의 변경 내용을 되돌리는 데 사용할 수 있습니다.
 +
 +
  
  • suse_zypper_사용법.1617157480.txt.gz
  • 마지막으로 수정됨: 2021/03/31 02:24
  • 저자 koov