Posted at

Capistranoを使ってデプロイするとtarのエラーになる tar: Ignoring unknown extended header keyword

More than 1 year has passed since last update.


環境


  • OS X El Capitan(デプロイクライアント)

  • Debian 8.5(デプロイ先)


概要

Capistranoを使ってデプロイしたところ、以下のエラーメッセージが出力された。

 ** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.dev'

** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.ino'
** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.nlink'
** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.dev'
** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.ino'
** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.nlink'
** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.dev'
** [out :: 10.2.201.60] tar: Ignoring unknown extended header keyword 'SCHILY.ino'

どうやらMacがBSDのtarを使ってデプロイ先がGNUのtarを使っているために、正しく解釈できなくなっているらしい。

参考: http://superuser.com/questions/318809/linux-os-x-tar-incompatibility-tarballs-created-on-os-x-give-errors-when-unt


解決策

MacにGNUのtarをインストールし、tarでGNUのtarを呼べるようにすればいい。

$ brew install gnu-tar

$ cd /usr/local/bin
# lsで確認するとgtarが作られている
$ ls
gtar -> ../Cellar/gnu-tar/1.29/bin/gtar
# gtarをtarとしてシムリンクを貼る
$ ln -s ../Cellar/gnu-tar/1.29/bin/gtar tar

シェルを再起動するなりすると、GNUのtarを参照するはず。

$ tar --version

tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.