¿Por qué no hay nsenter en util-linux?

20

Uso frecuentemente el comando nsenter para mis propósitos en mi sistema principal en Arch Linux. Ahora tengo que trabajar en Ubuntu para probar mis aplicaciones, pero no hay nsenter en util-linux. Tal vez es un paquete separado?

UPD. Ok, revisé que la versión de util-linux en Ubuntu todavía es mucho más antigua que la 2.23. ¿Cómo puedo instalar una nueva versión del paquete sin ningún problema posterior en Ubuntu?

    
pregunta zerospiel 25.03.2014 - 16:02

3 respuestas

18

Actualización :

A partir del 14.10, el util-linux proporciona el comando nsenter . La siguiente solución ha sido probada con 14.04.

La versión de Debian / Ubuntu es como dijiste bastante antigua ahora, incluso en Trusty.

Hay un error abierto y, hasta el momento, no hay avances lamentables.

Podrías intentar construirlo desde la fuente:

wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.1.tar.gz -qO - | tar -xz -C ~/Downloads

Asegúrese de instalar las siguientes dependencias de compilación:

sudo apt-get install libncurses5-dev libslang2-dev gettext zlib1g-dev libselinux1-dev debhelper lsb-release pkg-config po-debconf autoconf automake autopoint libtool

Y solo ejecuta en el directorio de origen ( ~/Downloads/util-linux-2.24.1 ):

./autogen.sh

./configure && make

IMPORTANTE

Haga NO sudo make install este paquete en Ubuntu 14.04 LTS hasta que esté oficialmente listo para su uso, ya que definitivamente exige una versión no disponible de libmount , interrumpiendo su arranque. (Si lo hace, vuelva a instalar el paquete mount antes de reiniciar su máquina, si puede).

Créditos: Trevor Alexander por su comentario .

Finalmente obtendrá:

sylvain@sylvain-ThinkPad-T430s:~/Downloads/util-linux-2.24.1$ ./nsenter -V
nsenter from util-linux 2.24.1

Nota : como nsenter no está disponible en la versión ubuntu de util-linux, puede instalar solo este archivo en / usr / bin (o sbin):

sudo cp ./nsenter /usr/bin
    
respondido por el Sylvain Pineau 25.03.2014 - 16:44
11

Si usa la ventana acoplable, puede instalar nsenter en un contenedor y luego copiar el comando nsenter en el host.

Desde mi punto de vista: enlace

# 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
    
respondido por el michaelbn 25.08.2014 - 12:53
0

A partir de Docker 1.3 puede usar Docker exec para ingresar un contenedor Docker:

docker exec -it CONTAINER_NAME /bin/bash

como se menciona en el repositorio de enlace

    
respondido por el Scott Stensland 02.02.2016 - 17:59

Lea otras preguntas en las etiquetas