私の目標は、できるだけ少ないステップを経て、システムにhelm
バイナリをインポートすることです。問題は、ファイルのサブディレクトリにバイナリが含まれていることです。helm-v2.5.0-linux-amd64.tar.gz
/usr/local/bin
.tar.gz
linux-amd64
だから私がするとき:
$ wget -P /tmp https://storage.googleapis.com/kubernetes-helm/helm-v2.5.0-linux-amd64.tar.gz
$ tar -xzvf /tmp/helm-v2.5.0-linux-amd64.tar.gz -C /usr/local/bin linux-amd64/helm
私が終わった/usr/local/bin/linux-amd64/helm
のは/usr/local/bin/linux-amd64/helm
。
パラメータが欠落しているか、いくつかのクリーンアップステップをtar
含める必要がありますか?mv
答え1
以下を使用する必要があります--strip-components=NUMBER
。
--strip-components=NUMBER
Strip NUMBER leading components from file names on extraction.
これは、コマンドが次のようになることを意味します。
tar -xzvf /tmp/helm-v2.5.0-linux-amd64.tar.gz -C /usr/local/bin --strip-components=1 linux-amd64/helm
答え2
別の方法は、wget
入力を直接パイプし、tar
変換パラメータを使用することです。
wget -O- https://storage.googleapis.com/kubernetes-helm/helm-v2.5.0-linux-amd64.tar.gz | tar --transform 's!linux-amd64!/usr/local/bin!' -Pxzf - linux-amd64/helm