사용자로 일부 우분투 서버에 ssh 액세스 권한이 있고 편의를 위해 일부 시스템 도구를 설치해야한다고 가정합니다 (mc, rtorrent, mcedit). 이 작은 프로그램의 관리자를 귀찮게하고 싶지 않습니다.
같은 것을 사용하지 않고 설치하는 방법이 sudo apt-get install
있습니까?
사용자로 일부 우분투 서버에 ssh 액세스 권한이 있고 편의를 위해 일부 시스템 도구를 설치해야한다고 가정합니다 (mc, rtorrent, mcedit). 이 작은 프로그램의 관리자를 귀찮게하고 싶지 않습니다.
같은 것을 사용하지 않고 설치하는 방법이 sudo apt-get install
있습니까?
답변:
컴파일하고 설치 ~/bin
하십시오 (그리고 그것을 포함 .bashrc
하도록 설정하십시오 PATH
). 라이브러리는 비슷한 방식으로 컴파일 및 설치 될 수 있으며 ~/lib
( LD_LIBRARY_PATH
그것을 가리 키도록 설정 ) 개발 헤더는 예를 들어 설치 될 수 있습니다 ~/includes
.
설치하려는 프로그램의 세부 사항과 이들이 의존하는 라이브러리에 따라 .deb 파일을 다운로드하고 ' dpkg-deb -x
'를 사용 하여 홈 디렉토리 아래에서 파일 을 추출 할 수 있습니다. 그런 다음 설정을 "재미"를 많이해야합니다 PATH
, LD_LIBRARY_PATH
그리고 다른 variables
. 설치하는 프로그램이나 앱이 복잡할수록 더 재미있을 것입니다. :)
물론 setuid
바이너리를 이런 식으로 설치할 수는 없습니다-설치하지만 (루트를 뿌리거나 setuid
비트를 설정할 권한이 없기 때문에 ) 그들은 당신이 소유 한 정상적인 바이너리 일뿐입니다. .
마찬가지로 특정으로 실행 UID
되거나 uid를 변경할 수있는 기능이 있거나 파일이 /etc
다소 있을 것으로 예상되는 데몬 및 시스템 서비스 ~/etc
는 전혀 작동하지 않을 수 있습니다.
대부분의 시스템 관리자는 무해한 프로그램 인 "대부분 무해한"프로그램을 고려 mc
하고 mcedit
있습니다.
그러나 특히 대역폭을 지불하거나 법적 책임을 져야하는 토렌트 클라이언트를 무해한 것으로 생각하는 사람은 거의 없습니다. 대부분의 sysadmins는 최종 사용자가 그러한 소프트웨어를 허가없이 설치하는 것을 완전히 좋아하지 않을 것입니다. "확실히 진행하십시오."라고 말하거나 그렇지 않을 수도 있습니다. 그러나 기계 소유자 / 관리자에게 문제를 일으킬 수있는 사항에 대해 문의해야합니다.
LD_LIBRARY_PATH
이 악한 해킹 이라고 들었습니다 . 이것도 여기에 적용됩니까, 아니면 오해 했습니까?
dpkg-deb -x
로컬 옵션에 두 번째 옵션을 시도했습니다 . 매력처럼 일했다. 나는 LD_LIBRARY_PATH
해킹 을 할 필요가 없었다 . 그래도 전역 설정에 영향을 미치지 않도록 동일한 명령 줄에서 수행해야합니다 (예 $ LD_LIBRARY_PATH=/home/usr1/zoom/opt/zoom:/home/usr1/zoom/opt/zoom/zoom ZoomLauncher
:).
소스에서 컴파일해야합니다. 그것은 단지 문제 일 것입니다
apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
바이너리는에 위치 ~/myapps/bin
합니다. 그래서, 추가 export PATH="$HOME/myapps/bin:$PATH"
사용자에게 .bashrc
파일과 다시로드 .bashrc
와 파일을 source ~/.bashrc
. 물론 이것은 gcc가 시스템에 설치되어 있다고 가정합니다.
나는 같은 문제에 직면했다. 여기에서 동일한 OS와 아키텍처의 Linux 서버가 있다고 가정하고 신속하게 수정 한 방법이 있습니다.
제어하는 시스템에 소프트웨어를 설치하십시오
실행 예제를 찾아서 which python
복사하십시오.~/
다음을 사용하여 라이브러리를 복사하십시오.
ldd "$(which python)" | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ~/
실행 파일과 라이브러리를 로컬 권한 만있는 다른 시스템으로 전송 한 후 다음을 실행하십시오.
mkdir ~/lib
export PATH="$PATH:~/lib"
export LD_LIBRARY_PATH=~/lib:/lib:/usr/lib
~/lib
라이브러리를 저장할 폴더 를 만들고 경로에 추가하고 라이브러리에 라이브러리를 보도록 LD에 지시하므로 실행 파일과 라이브러리를 추가하면 다른 곳에서 실행할 수 있습니다.
이것은 매우 해킹 일 수 있지만 매우 휴대 가능하고 빠르며 아직 그렇게 할 수없는 것을 찾지 못했습니다. 물론 소프트웨어는 낮은 포트에 바인딩하는 것과 같이 루트 액세스가 필요한 작업을 시도 할 수 없습니다 1024 이상