Ketika saya menyertakan gem yang saya buat, terima kasih kepada Bundler (versi 1.0.12), di dalam Gemfile dan kemudian saya mencoba untuk membundel atau meraup begitu saja:
$ rake
Saya mendapat pesan kesalahan ini:
Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
Saya menggunakan Mac OS X (10.6.4) terakhir, dengan:
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.4.0]
dan:
$ gem -v
Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
1.7.2
Saya benar-benar tidak mengerti bagaimana mengatasi masalah ini. Terima kasih atas ide apapun.
rubygems
bundler
ruby-1.9
ruby-1.9.2
Zag zag ..
sumber
sumber
Jawaban:
Berikut cara saya memperbaiki kesalahan "format tanggal tidak valid dalam spesifikasi":
1.) Buka folder spesifikasi yang terletak di:
/usr/local/lib/ruby/gems/1.8/specifications/
2.) Temukan spesifikasi yang menyebabkan masalah.
3.) Ubah
s.date = %q{2011-05-21 00:00:00.000000000Z}
kes.date = %q{2011-05-21}
Itu MENANG bagi saya! Semoga berhasil
sumber
Berikut adalah perintah untuk memperbaikinya untuk semua permata Anda:
Itu mengkonversi
s.date = %q{2011-05-21 00:00:00.000000000Z}
kes.date = %q{2011-05-21}
dan harus memperbaiki masalah Anda.sumber
git init . && git commit -am "backup
Mohon perhatikan komentar dari Damian Nowak. Perintah-perintah ini mungkin mengacaukan rubygems Anda!
Di Ubuntu 11.10, yang berikut ini memecahkan kesalahan ini:
Berikut ini mungkin bekerja pada beberapa sistem tetapi tidak pada berbasis Debian:
sumber
Anda dapat meningkatkan
gem
. Untuk mengatasinya, Anda dapat mengeditgemspec
file secara langsung - dariuntuk
Atau tingkatkan juga rel Anda
Ini akan memperbaiki masalah.
sumber
specifications
direktori ini adalahspecifications
jalur direktori saya -/home/sayuj/.rvm/gems/ruby-1.9.2-p180/specifications/
Jangan tentukan waktu ... hanya tanggalnya.
2011-04-21
harus bekerja dengan baik.sumber
git ls-files
("\ n ") s.test_files = .splitgit ls-files -- {test,spec,features}/*
(" \ n ") s.require_paths = [" lib "] endPunya masalah yang sama. Sepertinya bug di rubygems. Inilah komit yang memperbaikinya: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7
Anda perlu memperbarui rubygems dan bundler ke versi terbaru. Jika Anda masih mengalami masalah setelah itu, maka Anda mungkin perlu menghapus dan menginstal ulang permata apa pun yang memberi Anda masalah.
sumber
Ini lebih merupakan komentar untuk jawaban ben hall, tapi sepertinya saya belum memiliki hak istimewa itu
pembaruan permata tampaknya tidak berfungsi, saya pikir itu bahkan tidak dapat memuat permata karena format tanggal yang buruk. mengubah tanggal secara manual terlalu membuat frustrasi untuk pergi satu per satu, jadi grep:
Dan untuk sed:
Dan risiko Anda sendiri !! Saya masih pemula, tetapi berhasil untuk saya;)
sumber
Di server slicehost saya, folder spesifikasi terletak di tempat yang berbeda. Inilah jalannya:
/usr/lib/ruby/gems/1.8/specifications
Kesalahan yang diberikan harus memberikan jalur ke folder spesifikasi.
sumber
Pendekatan senapan: Copot pemasangan semua permata dan jalankan kembali bundler.
gem list --no-version | xargs gem uninstall -aIx
rm -i `rvm gemdir`/specifications/*.gemspec
gem update --system
gem install bundler
bundle install
sumber
.rvmrc
file, berhati-hatilah menjalankan baris 2 karena gemdir dapat menghasilkan output tambahan.(Hingga perbaikan bug masuk ke rilis Ruby yang stabil) Saya menyelesaikannya dengan menginstal ulang versi yang sama dari permata yang menghasilkan peringatan menggunakan --version switch dari perintah gem.
sumber
Seperti yang dikatakan Ben Hall, Anda harus memperbaiki file gemspec yang dapat berubah untuk sistem ke sistem. Untuk mengetahui file apa lihat file apa yang diceritakan dalam laporan kesalahan, contoh:
Dalam contoh ini, Anda harus mengedit file "/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec" dan mengubah "2011-12-28 00: 00: 00.000000000Z" untuk "2011-12-28" dalam opsi s.date.
sumber
Apakah masalah ini masih ada sekarang. Memperbarui Rubygems menyelesaikannya dengan baik:
sumber
Ini lingkungan saya:
Saya akhirnya berhasil menemukan penyebab / cara untuk mencegah kesalahan ini di sistem saya. Saya baru saja kembali ke mentimun dan rel mentimun versi 1.0.2. Menggunakan versi terbaru melakukan ini ...
sumber
Bahkan jika Anda menginstal versi terbaru dari sebuah permata dengan format tanggal yang valid, pastikan untuk melakukannya
gem cleanup GEMNAME
setelahnya, karenagem
masih akan mengeluh tentang spesifikasi untuk perpustakaan yang lebih lama.sumber
Menginstal ulang permata Anda dapat menjadi solusi di banyak status mesin yang sedikit berbeda ini.
Dalam kasus saya:
Dalam kasus saya, solusi lain yang lebih kreatif gagal.
Masalah saya muncul
Invalid gemspec
saat mencoba menggunakan cocoapods. Saya berlarigem install cocoapods
lagi dan semuanya cerah.sumber