Почему нет nsenter в util-linux?

Я часто использую команду nsenter для своих целей в своей основной системе в Arch Linux. Теперь мне нужно работать над Ubuntu, чтобы тестировать мои приложения на нем, но в утилите-linux нет nsenter. Может быть, это отдельный пакет?

UPD. Хорошо, я проверил, что версия util-linux в Ubuntu все еще намного старше 2.23. Как установить новую версию пакета без каких-либо проблем на Ubuntu?

1
задан 2 July 2015 в 21:37

2 ответа

Если вы используете докер, вы можете установить nsenter в контейнер, а затем скопировать команду nsenter на хост.

Из моего списка: https://gist.github.com/mbn18/0d6ff5cb217c36419661 1]

# 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
11
ответ дан 24 May 2018 в 10:25
  • 1
    Под "поддержанием чистой системы хоста" вы хотите избавиться от необходимости устанавливать build-essential и другие библиотеки в команде apt-get выше, правильно? На самом деле это очень интересно, если да, не знаю о docker cp. Это отлично подходит для создания любых вещей в виде двоичных файлов, не загрязняя хост. – Aditya M P 31 December 2015 в 09:55

Начиная с Docker 1.3 вы можете использовать Docker exec для входа в контейнер Docker:

docker exec -it CONTAINER_NAME /bin/bash

, как указано в репо для https://github.com/jpetazzo/nsenter

0
ответ дан 24 May 2018 в 10:25

Другие вопросы по тегам:

Похожие вопросы: