루트 액세스없이 rpm을 사용할 수 있습니까?
답변
패키지 의 내용 에 따라 rpm 의 내용 을 간단히 추출 하여 홈 디렉토리가있는 곳에서 사용할 수 있습니다. 재배치 가능으로 표시되지 않은 경우에도 마찬가지입니다. 패키지의 바이너리에 하드 코딩 된 경로가 있거나 응용 프로그램에 루트 액세스가 필요한 경우 가능하지 않을 수 있습니다.
답변
재배치 가능한 패키지를 제안하는 많은 답변이 있습니다. 재배치 옵션은 관리자가 대상을 선택하는 것 (예 : 대상을 / usr / local 대신 / opt로 설정)이며 실제로는 사용자 권한이 아닙니다.
이 방법을 사용하여 일부 권한 문제를 해결할 수도 있지만, MAJOR 문제는 rpm 조작을 수행 할 때 root : root가있는 /var/lib/rpm/__db.* 데이터베이스를 수정한다는 것입니다. JPerkSter가 “짧은 대답 = 아니오”라고 말했습니다. 특정 요구를 허용하도록 sudo를 설정하는 것이 가장 좋습니다.
답변
재배치 가능한 빌드와 관련하여 위의 모든 사항을 고려하여 여기에 나열된 지침을 따르 십시오 .
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
답변
RPM 사양에는 ‘relocatable’이라는 옵션이 있습니다. 재배치 기능을 켠 상태에서 rpm을 빌드 한 경우 ‘–prefix’옵션을 사용하여 사용자 지정 디렉토리에 설치할 수 있습니다. 따라서 두 가지 조건이 충족되는 한 수퍼 유저 액세스없이 로컬로 rpm을 설치할 수 있습니다.
- 패키지는 원래 재배치 가능하도록 제작되었습니다
- ‘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을 사용하여 후회하게되었습니다.