util-linuxにnsenterがないのはなぜですか?


20

私はnsenterArch Linuxのメインシステムでコマンドを頻繁に使用しています。今、Ubuntuでアプリをテストする必要がありますがnsenter、util-linux にはありません。多分それは別のパッケージですか?

UPD。OK、util-linuxUbuntuのバージョンが2.23よりもずっと古いことを確認しました。Ubuntuで問題なく新しいバージョンのパッケージをインストールする方法を教えてください。


Dockerで使用したい場合は、こちらのガイドに従ってくださいgithub.com/jpetazzo/nsenter
Pithikos 14

@Sylvain 13.xyが削除された場合、14.04をタグとして追加する意味がわかりません。
ムル

@muruは、実際にnsenterは14.10で使用可能です(パッケージリストを参照してくださいutils-linux)。したがって、この質問に対する14.04タグ。
シルヴァンピノー

@SylvainPineauかもしれませんが、半年前の質問にタグを追加するのは理にかなっていますか?なぜ12.04ではありませんか?
ムル

@muru 12.04で、元の回答で提案された2.24のコンパイルが機能するかどうかを確認しませんでした。したがって、このQ / Aの範囲を14.04に制限することを好みました。それを最新に保ち、この溶液は14.10のように必要されていないことは明らかであるのポイント
シルヴァン・ピノー

回答:


19

更新

14.10の時点で、util-linuxnsenterコマンドを提供します。以下のソリューションは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ます。
ゼロスピール14年

1
代わりにtarballを試してください。必ず両方を持っていることを確認しpkg-configそしてautoconfあまりにもインストール
シルヴァン・ピノー

2
重要:sudo make installUbuntu 14.04 LTSでこのパッケージを使用するのは、正式に使用できるようになるまでしないでlibmountください。(これを行う場合はmount、可能であれば、マシンを再起動する前にパッケージを再インストールしてください。)
bright-star 14年

1
nsenterを/ usr / binに配置しても何も壊れませんが、通常は、aptパッケージからインストールされたものはそのままにして、/ usr / local / binに他のものをインストールします。ほとんどの場合、セットアップしたカスタムアイテムを簡単に確認できます。
mc0e

1
utils-linuxのタイプミスutil-linux?(答えを編集するのに十分な自信はありませんが、私が知る限り、そうです。)
DreadPirateShawn

11

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。これは、ホストを汚染することなく、あらゆる種類のものをバイナリとして構築するのに最適です。
アディティアMP

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.