J'utilise fréquemment la commande nsenter
pour mes besoins dans mon système principal sous Arch Linux. Je dois maintenant travailler sur Ubuntu pour tester mes applications, mais il n'y a pas nsenter
dans util-linux. Peut-être que c'est un paquet séparé?
UPD. Ok, j’ai vérifié que la version de util-linux
dans Ubuntu est toujours bien plus ancienne que la 2.23. Comment puis-je installer la nouvelle version du paquet sans aucun problème après Ubuntu?
Mise à jour :
À compter de 14h10, le util-linux
fournit la commande nsenter
name__. La solution ci-dessous a été testée avec 14.04.
La version de Debian/Ubuntu est comme vous le dites assez ancienne maintenant, même dans Trusty.
Il y a un bug ouvert et jusqu'à présent, aucun progrès malheureusement.
Vous pouvez essayer de le construire à partir du source:
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.1.tar.gz -qO - | tar -xz -C ~/Downloads
Assurez-vous d'installer les dépendances de construction suivantes:
Sudo apt-get install libncurses5-dev libslang2-dev gettext zlib1g-dev libselinux1-dev debhelper lsb-release pkg-config po-debconf autoconf automake autopoint libtool
Et exécutez simplement dans le répertoire source (~/Downloads/util-linux-2.24.1
):
./autogen.sh
./configure && make
Ne PASSudo make install
ce paquet sur Ubuntu 14.04 LTS jusqu'à ce qu'il soit officiellement prêt à être utilisé, car il nécessite définitivement une version indisponible de libmount
name__, interrompant votre démarrage. . (Si vous procédez ainsi, réinstallez le package mount
avant de redémarrer votre ordinateur, si vous le pouvez.)
Crédits: Trevor Alexander pour son commentaire .
Enfin, vous aurez:
sylvain@sylvain-ThinkPad-T430s:~/Downloads/util-linux-2.24.1$ ./nsenter -V
nsenter from util-linux 2.24.1
Remarque : nsenter n'étant pas disponible dans la version d'ubuntu util-linux, vous pouvez uniquement installer ce fichier dans/usr/bin (ou sbin):
Sudo cp ./nsenter /usr/bin
Si vous utilisez docker, vous pouvez installer nsenter dans un conteneur, puis copier la commande nsenter sur l'hôte.
De mon fond: 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
À partir de Docker 1.3, vous pouvez utiliser Docker exec pour entrer dans un conteneur Docker:
docker exec -it CONTAINER_NAME /bin/bash
comme mentionné dans le repo pour https://github.com/jpetazzo/nsenter