zypper, 로컬 ~/bin 디렉토리에 패키지를 설치하는 방법

zypper, 로컬 ~/bin 디렉토리에 패키지를 설치하는 방법

~/bin내 디렉토리에 설치 패키지를 사용하는 방법은 무엇입니까 zypper? 먼저 패키지를 루트로 다운로드한 다음 루트가 아닌 사용자로 설치하려고 시도했지만 종속성 문제가 발생했습니다.

# zypper in --download-only wireshark
...
$ zypper -R /home/ec2-user/bin in /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLE11-SDK-SP3-Updates/rpm/x86_64/wireshark-1.10.11-0.2.1.x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libadns.so.1()(64bit) needed by wireshark-1.10.11-0.2.1.x86_64
 Solution 1: do not install wireshark-1.10.11-0.2.1.x86_64
 Solution 2: break wireshark-1.10.11-0.2.1.x86_64 by ignoring some of its dependencies

--prefix와 유사한 zypper 옵션이 있습니까? 그건 그렇고, 나는 분석 기능만을 원합니다 tshark. 감사해요.

답변1

짧은 대답은 당신이 모른다는 것입니다. 매뉴얼 페이지, 도움말 섹션 또는 웹사이트를 읽은 후에도 아직 방법을 찾지 못했습니다.

너 뭐야할 수 있는당신이 해야 할 일은 rpm을 다운로드하여 다른 디렉토리에 설치하는 것뿐입니다.

다음을 통해 이 작업을 수행할 수 있습니다.

zypper in --download-only wireshark
rpm --prefix=/home/ec2-user/ -ivh /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLE11-SDK-SP3-Updates/rpm/x86_64/wireshark-1.10.11-0.2.1.x86_64.rpm

이유는 묻지 마세요. zypper 자체 내부 데이터베이스 및 배포판 업그레이드 처리와 관련이 있는 것 같습니다.

답변2

참고 도서,zypper옵션이 있습니다 --root:

-R, --루트
       다른 루트 디렉터리에서 실행하세요. 이 옵션은 영향을 미칩니다.
       repos.d 디렉터리 및 메타데이터 캐시의 위치
       디렉토리에 추가하고 --root 옵션을 사용하여 rpm을 실행하게 합니다.
       패키지의 실제 설치 또는 제거를 수행합니다. 알아채다
       ZYpp 잠금은 여전히 ​​원래 시스템에서 생성됩니다.
       임시 파일로. 문서 섹션도 참조하세요.

--root옵션을 사용하여 구현 됩니다 rpm. ~에 따르면저것매뉴얼 페이지:

- 루트 디렉토리

    모든 작업에 DIRECTORY를 기반으로 하는 시스템을 사용하세요. 알아채다
    이는 데이터베이스가 DIRECTORY 아래에서 읽혀지거나 수정됨을 의미합니다.
    %pre 또는 %post 스크립트릿은 chroot(2) 다음에 실행됩니다.
    목차.

즉, --rootRPM 데이터베이스의 위치를 ​​변경해도 패키지가 설치된 위치에는 영향을 미치지 않습니다.

zypper패키지 재배치에 대한 문서화된 지원이 없으므로 다운로드하는 것이 좋습니다 . 설명서로 돌아가기:

-d, --다운로드만
       나중에 설치하기 위해서만 패키지를 다운로드하세요.

그리고

/var/cache/zypp/패키지
       저장소에 대해 keeppackages 속성이 설정된 경우(수정 참조)
       fyrepo 명령), 설치 중에 다운로드된 모든 RPM 파일
       여기에 저장됩니다. 또한 이러한 항목을 정리하려면 clean 명령을 참조하세요.
       캐시 디렉토리.

일부패키지는 --prefix재배치 가능하게 만드는 옵션을 지원합니다. 이는 규칙보다 더 많은 예외입니다. 대부분의 가방은아니요재배치될 수 있습니다. 이것이 그들 중 하나라면 당신은 사용할 수 있습니다rpm2cpio원하는 디렉터리에 파일을 추출합니다.

추가 자료:

답변3

zypper에는 요청한 내용에 --root <dir>해당하는 옵션이 있습니다. --prefix그래도 고려해 보세요SailorCire의 답변

관련 정보