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

  • 2
    いいね
  • 0
    コメント

環境

  • 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.