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

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

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

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

3 ответа

Обновление :

С 14,10, util-linux обеспечивает эти nsenter команда. Решение ниже было протестировано с 14,04.

<час>

версия Debian/Ubuntu - как Вы сказали довольно старый теперь, даже в Надежном человеке.

существует открытый ошибка и до сих пор никакой прогресс, к сожалению.

Вы могли попытаться создать его из источника:

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 не доступен в версии util-linux человечности, можно установить просто этот файл в/usr/bin (или sbin):

sudo cp ./nsenter /usr/bin
0
ответ дан 2 July 2015 в 21:37

При использовании докера, можно установить 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
0
ответ дан 2 July 2015 в 21:37

Запуск от Докера 1.3 можно использовать должностное лицо Докера для ввода контейнера Докера:

docker exec -it CONTAINER_NAME /bin/bash

, как упомянуто в repo для https://github.com/jpetazzo/nsenter

0
ответ дан 2 July 2015 в 21:37
  • 1
    @Latyyfa посмотрите мое редактирование. Мое первое решение работало бы теоретически, но it' s не путь пакет был предназначен для привыкания. – Byte Commander♦ 19 September 2015 в 00:20

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

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