nsenter
아치 리눅스의 메인 시스템에서 목적을 위해 자주 명령을 사용 합니다. 이제 우분투에서 내 앱을 테스트해야하지만 nsenter
util-linux 에는 없습니다 . 별도의 패키지일까요?
UPD. 좋아, 나는 util-linux
우분투 버전 이 여전히 2.23보다 훨씬 오래된 것을 확인했다 . 우분투에서 문제없이 새로운 버전의 패키지를 어떻게 설치할 수 있습니까?
nsenter
아치 리눅스의 메인 시스템에서 목적을 위해 자주 명령을 사용 합니다. 이제 우분투에서 내 앱을 테스트해야하지만 nsenter
util-linux 에는 없습니다 . 별도의 패키지일까요?
UPD. 좋아, 나는 util-linux
우분투 버전 이 여전히 2.23보다 훨씬 오래된 것을 확인했다 . 우분투에서 문제없이 새로운 버전의 패키지를 어떻게 설치할 수 있습니까?
답변:
업데이트 :
14.10부터는 명령을 util-linux
제공합니다 nsenter
. 아래 솔루션은 14.04에서 테스트되었습니다.
데비안 / 우분투 버전은 Trusty에서도 아주 오래된 버전입니다.
열린 버그가 있으며 지금까지 불행히도 진행 상황이 없습니다.
소스에서 빌드하려고 시도 할 수 있습니다.
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.1.tar.gz -qO - | tar -xz -C ~/Downloads
다음 빌드 종속성을 설치하십시오.
sudo apt-get install libncurses5-dev libslang2-dev gettext zlib1g-dev libselinux1-dev debhelper lsb-release pkg-config po-debconf autoconf automake autopoint libtool
그리고 소스 디렉토리 ( ~/Downloads/util-linux-2.24.1
) 에서 실행하십시오 .
./autogen.sh
./configure && make
공식적으로 사용할 준비가 될 때까지 Ubuntu 14.04 LTS에서이 패키지를 사용 하지 마십시오. sudo make install
반드시 사용할 수없는 버전이 필요하므로 libmount
부팅이 중단됩니다. (이렇게하면 가능 mount
하다면 컴퓨터를 재부팅하기 전에 패키지를 다시 설치하십시오 .)
크레딧 : Trevor Alexander 는 그의 의견에 대해 .
마지막으로 다음을 얻을 수 있습니다.
sylvain@sylvain-ThinkPad-T430s:~/Downloads/util-linux-2.24.1$ ./nsenter -V
nsenter from util-linux 2.24.1
참고 : usentu util-linux 버전에서는 nsenter를 사용할 수 없으므로 / usr / bin (또는 sbin)에이 파일 만 설치할 수 있습니다.
sudo cp ./nsenter /usr/bin
./configure
파일이 없기 때문에 오류가 발생했습니다 . 파일 Could not locate the pkg-config autoconf macros.
을 사용하려고하면 얻고 configure.ac
있습니다.
sudo make install
이 패키지는 공식적으로 사용할 준비가 될 때까지 Ubuntu 14.04 LTS에서이 패키지를 사용 하지 마십시오. 반드시 사용할 수없는 버전이 필요하므로 libmount
부팅이 중단됩니다. (이렇게하면 가능 mount
하다면 컴퓨터를 재부팅하기 전에 패키지를 다시 설치하십시오 .)
utils-linux
의 오타 util-linux
? (답변을 충분히 편집 할 수는 없지만 확신 할 수있는
docker를 사용하는 경우 컨테이너에 nsenter를 설치 한 다음 nsenter 명령을 호스트에 복사 할 수 있습니다.
내 요지에서 : https://gist.github.com/mbn18/0d6ff5cb217c36419661
# Ubuntu 14.04 don't have nsenter - the straight forward way required me to install build tools and etc.
# I preferred to keep the system clean and install nsenter in a container and then copy the command to the host
# Note - its also possible to run nsenter from a container (didn't tried) https://github.com/jpetazzo/nsenter
# start a container
docker run --name nsenter -it ubuntu:14.04 bash
## in the docker
apt-get update
apt-get install git build-essential libncurses5-dev libslang2-dev gettext zlib1g-dev libselinux1-dev debhelper lsb-release pkg-config po-debconf autoconf automake autopoint libtool
git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git util-linux
cd util-linux/
./autogen.sh
./configure --without-python --disable-all-programs --enable-nsenter
make
## from different shell - on the host
docker cp nsenter:/util-linux/nsenter /usr/local/bin/
docker cp nsenter:/util-linux/bash-completion/nsenter /etc/bash_completion.d/nsenter
build-essential
에서 다른 라이브러리 를 설치하지 않아도된다는 것을 의미합니다 apt-get
. 그렇다면 실제로 매우 흥미 롭습니다 docker cp
. 이것은 호스트를 오염시키지 않고 모든 종류의 것들을 바이너리로 만드는 데 좋습니다.
Docker 1.3부터 Docker exec를 사용하여 Docker 컨테이너에 들어갈 수 있습니다.
docker exec -it CONTAINER_NAME /bin/bash
https://github.com/jpetazzo/nsenter 의 리포지토리에서 언급 한 바와 같이