を使用してエンジンを構築しようとしてgem build myengine
いますが、次のエラーが発生し続けます。
ERROR: While executing gem ... (Gem::Package::TooLongFileName)
Gem::Package::TooLongFileName
myengine
名前が長すぎるとは思わないでしょう。ここで何が起こっているのでしょうか?
を使用してエンジンを構築しようとしてgem build myengine
いますが、次のエラーが発生し続けます。
ERROR: While executing gem ... (Gem::Package::TooLongFileName)
Gem::Package::TooLongFileName
myengine
名前が長すぎるとは思わないでしょう。ここで何が起こっているのでしょうか?
問題の原因となっている正確なファイルを見つけることで、この問題を解決しました。それは長い名前の移行ファイルでした。
興味のある方は、ソースコードのクラスのsplit_name
メソッドからエラーがスローされます。このエラーは、次の場合にスローされます:TarWriter
rubygems
これが役立つことを願っています。split_name
レビュー用に、以下のメソッドのソース コードを添付しました。
def split_name(name) # :nodoc:
raise Gem::Package::TooLongFileName if name.size > 256
if name.size <= 100 then
prefix = ""
else
parts = name.split(/\//)
newname = parts.pop
nxt = ""
loop do
nxt = parts.pop
break if newname.size + 1 + nxt.size > 100
newname = nxt + "/" + newname
end
prefix = (parts + [nxt]).join "/"
name = newname
if name.size > 100 or prefix.size > 155 then
raise Gem::Package::TooLongFileName
end
end
return name, prefix
end
私はrubygemsを1.8.25に更新することでこの問題を解決しました(gem update --system)
-編集-
project.gemspecファイルを確認してください:コメントアウト
s.files = ... or s.test_files = ...
プロジェクトに長すぎる名前のファイルがある場合
同じ問題があり、test/dummy/tmp フォルダーと .sass_cache フォルダーを削除して解決しました。長いファイル名が含まれているためです。