~/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) 다음에 실행됩니다. 목차.
즉, --root
RPM 데이터베이스의 위치를 변경해도 패키지가 설치된 위치에는 영향을 미치지 않습니다.
zypper
패키지 재배치에 대한 문서화된 지원이 없으므로 다운로드하는 것이 좋습니다 . 설명서로 돌아가기:
-d, --다운로드만 나중에 설치하기 위해서만 패키지를 다운로드하세요.
그리고
/var/cache/zypp/패키지 저장소에 대해 keeppackages 속성이 설정된 경우(수정 참조) fyrepo 명령), 설치 중에 다운로드된 모든 RPM 파일 여기에 저장됩니다. 또한 이러한 항목을 정리하려면 clean 명령을 참조하세요. 캐시 디렉토리.
일부패키지는 --prefix
재배치 가능하게 만드는 옵션을 지원합니다. 이는 규칙보다 더 많은 예외입니다. 대부분의 가방은아니요재배치될 수 있습니다. 이것이 그들 중 하나라면 당신은 사용할 수 있습니다rpm2cpio
원하는 디렉터리에 파일을 추출합니다.
추가 자료:
답변3
zypper에는 요청한 내용에 --root <dir>
해당하는 옵션이 있습니다. --prefix
그래도 고려해 보세요SailorCire의 답변