it-swarm-ko.tech

루트 액세스없이 패키지를 설치하려면 어떻게해야합니까?

이 컴퓨터에 루트 액세스 권한 없음이 있습니다.

우분투 패키지를 다운로드하여 루트가 아닌 것으로 설치할 수 있습니까? 방법이 있는지 알고 싶습니다.

아마도 내 ~/bin 또는 ~/usr/share 또는 이와 유사한 것입니까? 작동할까요?

122
Weboide

Apt는 직접 지원하지 않지만이를 수행 할 수있는 방법이 있습니다.

하나는 schroot을 사용하여 루트가 아닌 chroot를 만드는 것입니다. 이것은 다소 involved process 이지만 많은 개발자가 코드 컴파일을 위해 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를 내보낼 수 있습니다. 바이너리의 모든 종속성이 설치되어있는 한 정상적으로 실행되어야합니다.

106
jbowtie

jedit 을 설치한다고 가정합니다. 먼저 패키지를 찾아서 다운로드해야합니다. 방금 일부 미러의 deb 파일 을 가져 와서 콘솔/터미널을 엽니 다.

  1. mkdir /tmp/jedit && cd /tmp/jedit-tmp에서 새 디렉토리를 만들어서 변경합니다.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb-패키지 다운로드
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb 또는 입력하기 쉬운 ar x *.deb-파일 내용을 추출합니다.
  4. tar xvzf data.tar.gz-파일 data.tar.gz에는 소프트웨어를 실행하는 데 필요한 모든 것이 있습니다
  5. usr/bin/jedit 편집기를 엽니 다
  6. 완료 :-)

파일을 홈 디렉토리의 특정 지점으로 이동하여 거기서 실행할 수 있습니다.

16
qbi

JuJ 라는 프로그램을 작성했는데 기본적으로 $ HOME/.juju 디렉토리 안에 아주 작은 리눅스 배포판 (패키지 관리자 만 포함)을 허용합니다.

Proot를 통해 홈 디렉토리 내에 사용자 정의 시스템을 액세스 할 수 있으므로 루트 권한없이 모든 패키지를 설치할 수 있습니다. 모든 주요 Linux 배포판에서 제대로 실행되지만 유일하게 제한되는 것은 JuJu가 권장되는 최소 버전 2.6.32로 Linux 커널에서 실행될 수 있다는 것입니다.

예를 들어, JuJu를 설치 한 후 jedit를 설치 한 경우 :

$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit
9
user967489