관리자가 아닌 사용자를위한 yum 설치


51

큰 컴퓨터 시스템에서 관리자가 아닌 사용자입니다. 시스템에 설치되지 않은 최신 패키지가 필요합니다. yum을 사용하여 설치하고 싶습니다. sudo, admin 또는 root 액세스 권한이없는 사용자로서 패키지 관리를 사용하여 홈 디렉토리에 패키지를 설치할 수 있습니까? 항상 소스에서 make를 사용할 수 있지만 yum을 사용할 수 있으면 인생이 더 쉬워집니다.


1
yum 바이너리가 suid root가 아닌 한 (그렇지 않은 경우) 그렇지 않습니다.
h3rrmiller

1
@ h3rrmiller, 그러나 $ HOME에 프로그램을 설치할 수 있고 sudo 액세스가 필요없는 패키지 관리자가 있습니까? OSX의 MacPorts가 그렇게 할 수 있다는 것을 알고 있습니다. Linux에 대한 이러한 옵션은 무엇입니까?
highBandWidth

답변:


8

대부분의 바이너리는 아래의 특정 위치에 설치되도록 컴파일됩니다 /.

젠투 접두사 및 루트 리스 GoboLinux 와 같은 루트가 아닌 패키지 관리자와 0install이 있습니다.

당신이 말한 것처럼 자신을 컴파일하면 그 문제를 완화하거나 chroot를 사용할 수 있습니다. 그러나 chroot를 사용하는 가장 큰 장애물은 전제 조건이며 커널 공유 객체에 대한 링크입니다.


10
Chroot는 옵션이 아닙니다. chroot의 루트 여야합니다.
Marco

38

를 사용하지 말고 yum원하는 rpm을 찾아서 다운로드하십시오. 루트가 아닌 경우 직접 설치할 수는 없지만 RPM 패키지는 실제로 멋진 .cpio 파일이므로 내용을 압축 해제 할 수 있습니다. 가장 쉬운 방법은 아마도 mc( "midnight commander") 파일 브라우저 (가장 큰 소프트웨어 중 하나)를 사용 .rpm하는 것입니다. 그러면 파일 내용을 탐색하고 파일을 바로 복사 할 수 있습니다.

Sans는 rpm2cpio.cpio로 변환 한 다음 cpio파일을 추출하여 올바른 위치에 넣을 수 있습니다. 이 두 가지 모두 이미 redhat 또는 fedora 시스템에 설치 될 것입니다. 다음은 "xsnow"를 설치하는 예입니다 (빈 디렉토리에서이 작업을 수행하려고 함).

»rpm2cpio xsnow-1.42-17.fc17.x86_64.rpm > xsnow.cpio

내 시스템에 적합한 .rpm 인 fc17 x86_64를 찾았습니다. 이것은 다른 구성 요소와 연결된 사전 컴파일 된 바이너리이기 때문에 중요합니다. 이제 .cpio를 추출하십시오.

»cpio -idv < xsnow.cpio 
./usr/bin/xsnow
./usr/share/doc/xsnow-1.42
./usr/share/doc/xsnow-1.42/README
./usr/share/man/man6/xsnow.6.gz
212 blocks
Press any key to continue...

이 디렉토리 트리를 탐색하면 종속성을 해결하는 데 도움이되는 메타 정보를 제외하고 필요한 모든 것이 있습니다. 이것은 다음을 사용하여 찾을 수 있습니다 rpm -q -p [package] --[query].

»rpm -q -p xsnow-1.42-17.fc17.x86_64.rpm --requires
warning: xsnow-1.42-17.fc17.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID d2382b83: NOKEY
libX11.so.6()(64bit)  
libXext.so.6()(64bit)  
libXpm.so.4()(64bit)  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

나는 이미이 모든 것을 가지고 있다고 확신한다. 이제 xsnow 실행 파일을 $ PATH에 저장하면 홈 디렉토리에 이미 bin이 포함됩니다.

»cp ./usr/bin/xsnow ~/bin

비올라! xsnowxsnow가 KDE와 잘 작동하지 않기 때문에 이제는 입력 하고 아무것도 볼 수 없습니다.

라이브러리를 설치해야 할 경우, 홈 디렉토리도 작성하고 다음을 추가해야합니다 ~/.bashrc.

export LD_LIBRARY_PATH=/home/you/lib

@siamii 글쎄, 당신은 더 나은 답변이 있습니까?
Marcin

5
자, 누군가가 cpio 파일을 만드는 도구를 만든 다음 ./usr/bin과 같은 루트가 아닌 폴더에 모든 것을 $ PREFIX / usr / bin 등으로 복사하고 종속성을 재귀 적으로 확인하고 설치하는 방법은 어떻습니까?
highBandWidth

2
2 년 반 후에 도움이 된 답변에 감사드립니다. 다음을 사용하여 한 줄로 수행 할 수 있습니다 : mkdir xsnow; cd xsnow; wget -O- 195.220.108.108 / linux / rpmfusion / nonfree / fedora / releases / 17 / | rpm2cpio-| cpio -idv
래리 엥 홀름

1
나는 이것을 내 사무실 컴퓨터에서 2 년 이상 사용해 왔으며 매번 매력처럼 작동합니다. 진심으로 감사드립니다. 대학의 IT가 유능한 것이기를 바랍니다.

이 작업을 수행하는 동안 가끔씩 '...'에 대한 심볼릭 링크를 실행할 수 없습니다 : 권한이 거부되었거나 cpio : .... : 열 수 없습니다 : 권한이 거부되었습니다.이 문제를 해결하는 방법이 있습니까? 이 파일들을 sudo없이 만들었지 만 어떤 이유로 sudo를 사용하여 제거해야합니다.
Phylliida
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.