我经常nsenter
在Arch Linux下的主系统中出于我的目的使用命令。现在,我必须在Ubuntu上进行工作,以在其上测试我的应用程序,但是nsenter
util-linux中没有。也许是一个单独的包裹?
UPD。好的,我检查util-linux
了Ubuntu 中的版本是否仍远低于2.23。如何在Ubuntu上安装新版本的软件包而不会出现任何问题?
我经常nsenter
在Arch Linux下的主系统中出于我的目的使用命令。现在,我必须在Ubuntu上进行工作,以在其上测试我的应用程序,但是nsenter
util-linux中没有。也许是一个单独的包裹?
UPD。好的,我检查util-linux
了Ubuntu 中的版本是否仍远低于2.23。如何在Ubuntu上安装新版本的软件包而不会出现任何问题?
Answers:
更新:
从14.10开始,会util-linux
提供nsenter
命令。以下解决方案已通过14.04测试。
正如您所说,Debian / Ubuntu版本已经很老了,即使在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
难道不是 sudo make install
这个软件包在Ubuntu 14.04 LTS,直到它正式投入使用,因为它绝对需要的可用版本libmount
,打破你的启动。(如果这样做,请尽可能重新安装mount
软件包,然后再重新引导计算机。)
鸣谢:Trevor Alexander的评论。
最终,您将获得:
sylvain@sylvain-ThinkPad-T430s:~/Downloads/util-linux-2.24.1$ ./nsenter -V
nsenter from util-linux 2.24.1
注意:由于nsenter在ubuntu util-linux版本中不可用,因此您可以仅在/ 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