답변:
를 사용하여 사용자 디렉토리에 rpm을 설치하는 방법이 rpm
있지만 간단하지는 않습니다. 와 방법이 있다고 믿지 않습니다 yum
.
내 표준 관행은 소스 local
에서 집 의 디렉토리 로 컴파일되었습니다.
$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include
/usr/local
예를 들어,에서 루트 가 있을 때 와 같이 소스를 다운로드합니다 ~/local/git
.
컴파일 할 때 접두어를 local
디렉토리로 설정했습니다.
$ configure --prefix=/home/user_name/local
$ make
$ make install
그런 다음에 ~/local/bin
$ PATH에 추가 합니다 .bash_profile
.
물론 소스에서 설치하는 데 따르는 어려움은 자동 종속성 해결을 얻지 못한다는 것입니다. 종속성을 설치해야하는 경우 위와 같이 컴파일하고 설치하십시오. 그런 다음 컴파일 할 때 git
컴파일 플래그를 업데이트하여 종속성 라이브러리의 올바른 위치를 찾고 파일을 포함시켜야합니다.
./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'
.rpm 파일은 실제로 일종의 cpio
아카이브 형식으로 , 단순한 형식과 비슷합니다 tar
. 이 rpm2cpio
유틸리티는 시스템에 설치되어 있으며 사용 권한이 필요하지 않습니다. 그것은 표준 출력에 기록하므로 다음과 같이 변환하십시오.
rpm2cpio whatever.rpm > whatever.cpio
거기의 man cpio
당신이 자신을 볼 수 있습니다,하지만 당신은 지금 모드 "로 복사"에 CPIO에 아카이브를 공급한다 싶지 :
cat whatever.cpio | cpio -i
파일이 적절한 위치 (빈 등)에 들어가도록 디렉토리 트리로 구성되어있을 가능성이 높습니다. 그것들이 pwd에 존재하지 않으면 오류가 발생하지만 아카이브의 파일을 나열합니다 ( -t
/ --list
스위치로 같은 것을 얻을 수 있음 ). 디렉토리를 자동으로 작성하려면을 사용하십시오 -d
. rpm을 풀 수있는 빠른 방법 :
rpm2cpio whatever.rpm | cpio -i -d
이것을 사용하여 $ HOME에 설치할 수 있습니다. /etc
많은 문제는 컴파일 할 때 어떤 목적 으로든 설치 위치가 하드 코딩되어 있기 때문에 프로그램이 에서 등 을 찾을 것으로 예상하는 경우 유일한 문제입니다 .
소스에서 빌드하는 것이 더 나은 옵션 일 수 있습니다 (올바른 위치를 제공 할 수 있기 때문에). 어떤 경우에도이 작업을 수행 할 수 있으면 빠르고 간단합니다.
또한 자정 사령관 파일 브라우저 ( mc
) 및 아마도 다른 파일 브라우저를 사용하면 rpm 또는 cpio (또는 압축 tar 또는 zip) 계층 구조를 탐색하고 아카이브가 압축 해제 된 것처럼 개별 파일을 복사 할 수 있습니다 ( 아카이브 파일을 찾아 보는 임시 파일 시스템).
이것은 대안이며 (yum을 사용하지 않음) 권한은 엉뚱하지만 chown
나중에 대상 사용자에게 할 수 있습니다 :-또한 히트 또는 누락입니다 :-(
#-## Download all dependency for the RPM --
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash
#-## Install all downloaded to an alternate root
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*
그런 다음 경로에 적절한 위치를 추가하십시오.