이 컴퓨터에 대한 루트 액세스 권한 이 없습니다 .
우분투 패키지를 다운로드하여 루트가 아닌 패키지로 설치할 수 있는 방법이 있는지 알고 싶습니다 .
아마도 내 ~/bin
또는 ~/usr/share
그런 식으로? 작동할까요?
이 컴퓨터에 대한 루트 액세스 권한 이 없습니다 .
우분투 패키지를 다운로드하여 루트가 아닌 패키지로 설치할 수 있는 방법이 있는지 알고 싶습니다 .
아마도 내 ~/bin
또는 ~/usr/share
그런 식으로? 작동할까요?
답변:
Apt는 직접 지원하지 않지만이를 수행 할 수있는 방법이 있습니다.
하나는 schroot
루트가 아닌 chroot를 만드는 데 사용 하는 것입니다. 이것은 다소 복잡한 프로세스 이지만 많은 개발자가 코드 컴파일을 위해 chroot 환경을 설정함에 따라 커뮤니티의 도움을받을 수 있어야합니다.
내가 아는 두 번째 방법은 .deb 패키지에서 설치하는 것입니다. 웹 사이트에서 다운로드하거나 Ubuntu 리포지토리에있는 경우 다운로드 할 수 있습니다.
apt-get download package
package
패키지 이름으로 교체
deb 파일이 있으면 dpkg
명령 행에서 직접 호출하십시오 . 다음 예제는 package.deb를 홈 디렉토리에 설치합니다.
dpkg -i package.deb --force-not-root --root=$HOME
이와 같이 dpkg를 사용하는 단점은 오류 메시지가 암호화 될 가능성이 있다는 것입니다. dpkg는 종속성을 자동으로 해결하거나 예상되는 디렉토리 구조를 만들지 않습니다.
마지막 apt-get source
으로이 명령을 사용 하여 패키지 소스를 가져 와서 로컬로 설치하도록 구성 할 수 있습니다. 일반적으로 이것은 다음과 같습니다.
apt-get source package
cd package
./configure --prefix=$HOME
make
make install
이 접근 방식의 단점은이 접근 방식이 전혀 작동 할 수있는 개발 환경이 필요하다는 것입니다. 그리고 모든 종속성을 해결하기 위해 수십 개의 패키지를 컴파일 할 수 있습니다.
편집하다:
으로 dpkg -i
(의견을 참조) 작동하지 않습니다,이 대안을 제안한다 :
dpkg -x package.deb dir
dir에 .deb 패키지를 추출합니다. 그런 다음 바이너리가있는 PATH를 내보낼 수 있습니다. 바이너리의 모든 종속성이 설치되어있는 한 정상적으로 실행되어야합니다.
sudo apt-get build-dep package
를 빌드 하는 데 필요한 모든 것을 설치하는 데 사용할 수 있습니다 (로 소스를 가져온 후 apt-get source
).
--force-not-root --root=$HOME
또는 그 변형이 작동하지 않습니다. 데비안 바이너리 패키지는 홈 디렉토리에 설치되도록 설계되지 않았습니다. 아니면 다른 방법으로 말하면됩니다. "다음 예는 package.deb을 홈 디렉토리에 설치합니다." 아뇨.
--force-not-root --root=/your/custom/path
jedit 을 설치한다고 가정합니다 . 먼저 패키지를 찾아서 다운로드해야합니다. 방금 일부 미러에서 deb 파일을 가져 와서 콘솔 / 터미널을 엽니 다.
mkdir /tmp/jedit && cd /tmp/jedit
-새로운 디레토리를 tmp
만들고 변경합니다.wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb
-패키지 다운로드ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb
또는 입력하기 쉬움 ar x *.deb
-파일 내용을 추출합니다.tar xvzf data.tar.gz
-파일 data.tar.gz
에는 소프트웨어를 실행하는 데 필요한 모든 것이 있습니다.usr/bin/jedit
에디터를 엽니 다파일을 홈 디렉토리의 특정 지점으로 이동하여 거기서 실행할 수 있습니다.
JuJu 라는 프로그램을 작성 했는데 기본적으로 $ HOME / .juju 디렉토리 안에 아주 작은 리눅스 배포판 (패키지 관리자 만 포함)을 허용합니다.
proot를 통해 홈 디렉토리 내에 사용자 정의 시스템을 액세스 할 수 있으므로 루트 권한없이 모든 패키지를 설치할 수 있습니다. 모든 주요 Linux 배포판에서 제대로 실행되지만 유일하게 제한되는 것은 JuJu가 권장되는 최소 버전 2.6.32로 Linux 커널에서 실행될 수 있다는 것입니다.
예를 들어, JuJu를 설치하여 jedit를 설치 한 후 :
$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit