답변:
재배치 가능한 패키지를 제안하는 많은 답변이 있습니다. 재배치 옵션은 관리자가 대상을 선택하는 것 (예 : 대상을 / usr / local 대신 / opt로 설정)이며 실제로는 사용자 권한이 아닙니다.
이 방법을 사용하여 일부 권한 문제를 해결할 수도 있지만, MAJOR 문제는 rpm 조작을 수행 할 때 root : root가있는 /var/lib/rpm/__db.* 데이터베이스를 수정한다는 것입니다. JPerkSter가 "짧은 대답 = 아니오"라고 말했습니다. 특정 요구를 허용하도록 sudo를 설정하는 것이 가장 좋습니다.
RPM 사양에는 'relocatable'이라는 옵션이 있습니다. 재배치 기능을 켠 상태에서 rpm을 빌드 한 경우 '--prefix'옵션을 사용하여 사용자 지정 디렉토리에 설치할 수 있습니다. 따라서 두 가지 조건이 충족되는 한 수퍼 유저 액세스없이 로컬로 rpm을 설치할 수 있습니다.
그러나 일반적으로 RPM을 설치하려면 수퍼 유저 액세스 권한이 필요합니다. 재배치 가능한 옵션이 존재하지만,이를 지원하도록 만들어진 패키지는 거의 본 적이 없습니다.
일부 패키지는 재배치 가능하므로 루트 없이도 제대로 작동 할 수 있습니다. 설치시 접두사를 지정하십시오. rpm -i my.rpm --prefix = / my / home / folder
패키지를 재배치 할 수없는 경우 여전히 RPM에서 파일을 추출하여 실행 해보십시오. 예를 들어 다음을 사용하여 RPM 파일을 추출 할 수 있습니다.
파일을 ~ / 폴더에 복사하고 추가 종속성 라이브러리를 추가하고 최선을 다하십시오. 보장되지는 않지만 이러한 방식으로 작동 할 수없는 일부 패키지가 제공 될 수 있습니다.
다른 dbpath를 사용하여 다른 디렉토리에 강제로 설치할 수 있습니다. 또한 스크립트를 체크 아웃하지 않고 직접 스크립트를 실행해서는 안됩니다.
그러면 현재 디렉토리 아래에 rpm이 배치되고 스크립트를 추출하여 필요한 경우 편집하고 실행할 수 있습니다.
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
예,하지만 원하지 않을 수 있습니다. 루트 액세스 권한이없는 컴퓨팅 클러스터에서 소프트웨어를 유지 관리하기 위해 사용자 지정 퍼펫 매니페스트 및 rpm 패키지를 사용했습니다. 이론적으로 그것은 간단합니다
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
그러나 이것이 EL4, EL5 및 EL6에서 작동하는 방식에는 문제가 있으므로 각 단계마다 다른 단계 및 옵션 세트가 필요합니다. 더 이상 유용한 정보가 없습니다. 자주 발생하는 RPM 데이터베이스 문제 (NFS로 인해)와 같은 단점 때문에 rpm을 사용하여 후회하게되었습니다.
rpm
sudo / root 액세스 없이는 명령을 실행할 수 없습니다 .