[server] 루트없는 rpm

루트 액세스없이 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을 설치할 수 있습니다.

  1. 패키지는 원래 재배치 가능하도록 제작되었습니다
  2. ‘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을 사용하여 후회하게되었습니다.