2013-10-28 26 views
0

我已經設置了一個「buildfile」,它應該使用非Maven repo的依賴關係。要下載我使用以下命令:Ruby/Buildr-unpack tar.gz2

LIB_VERSION = "1.9.2" 
LIB_EXT = "tar.bz2" 
LIB_URL = "https://lib.com/lib-#{LIB_VERSION}.#{LIB_EXT}" 
LIB = artifact("ĺib:lib:#{LIB_EXT}:widget:#{LIB_VERSION}") 
download(LIB => LIB_URL) 

什麼工作得很好,但因爲實際的依賴是在tar.gz2我需要解壓的,因此,我寫道:

test.with(LIB) 
test.enhance do |task| 
    Unzip.new( _('dest/lib') => LIB.to_s).include('*').extract 
end 

但是這給了我:

Zip::ZipError : Zip end of central directory signature not found 

我是一個64 bit Linux機器上使用ruby 1.9.3,我怎麼能解決這個問題?

n.b .:我試圖使用this(安裝失敗)和其他幾種解壓方式,但都失敗了。我怎樣才能讓拆包發生?

+1

'解壓縮'是'ZIP'檔案。這聽起來像你需要一些可以處理gzip(或bzip;你提到兩個)的tar檔案。我不知道那會是什麼,但希望這會指出你在正確的方向。 –

+0

所以我的問題應該是:哪個ruby-lib可以解壓縮bz2? – philipp

回答

1

明白了。我怎麼能忘記螞蟻的力量...

test.with(LIB) 
test.enhance do |task| 
    ant('uncompress') do |a| 
     a.bunzip2(:src => LIB.to_s, :dest => _('dest/lib.tar')) 
     a.untar(:src => _('dest/lib.tar'), :dest => _('dest/lib')) 
    end 
end