रत्नों में अमान्य दिनांक प्रारूप विनिर्देश


111

मुझे निम्न त्रुटि हो रही है जब मैं विंडोज़ में रत्नों का उपयोग करने की कोशिश करता हूं, और मैंने इस स्टैकओवरफ़्लो पोस्ट और अपडेटेड रूगमेम्स और रेल को भी संदर्भित किया । लेकिन समस्या का कुछ भी हल नहीं हो सका।

निम्नलिखित पूर्ण त्रुटि है,

    D: \> मणि env
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/tilt-1.3.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-25 00:00:00
.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/execjs-1.2.4.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-03 00:00:
00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/temple-0.3.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-26 00:00:
00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/ Guard-0.6.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-09-01 00: 00: 0
0.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/ guard-livereload-0.3.1.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-09
-01 00: 00: 00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/rack-cache-1.0.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-27 00
: 00: 00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/tilt-1.3.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-25 00:00:00
.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/execjs-1.2.4.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-03 00:00:
00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/temple-0.3.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-26 00:00:
00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/ Guard-0.6.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-09-01 00: 00: 0
0.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/ guard-livereload-0.3.1.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-09
-01 00: 00: 00.000000000Z "
[D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications में अमान्य रत्न
/rack-cache-1.0.3.gemspec]: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-08-27 00
: 00: 00.000000000Z "
RubyGems पर्यावरण:
  - रुग्मी संस्करण: 1.7.2
  - आरयूबी संस्करण: १..7.Y (२०११-०६-३० ३६५) [i386-mingw32]
  - स्थापना निर्देश: D: / रेल्स स्टाॅलर / आरयूबी 1.8.7/lib/ruby/gems/1.8
  - आरयूबी एक्ज़ीक्यूटेबल: डी: / रेल्स इनस्टॉलर / आरयूबी 1.8.7/bin/ruby.exe
  - विशिष्ट निर्देश: D: /RailsInstaller/Ruby1.8.7/bin
  - रुग्णालय योजनाएँ:
    - माणिक
    - x86-mingw32
  - GEM PATHS:
     - डी: / रेल्स इनस्टालर / रूबी १.l.ib/ लिब / आरबी / जीम्स / १.R
     - सी: / दस्तावेज़ और सेटिंग्स / jeygokul / .gem / रूबी / 1.8
  - मणि संवहन:
     - - update_sources => सच है
     - - क्रिया => सत्य
     - - मानदंड => असत्य
     - - पश्चगामी => असत्य
     - - बल्क_थ्रेशोल्ड => 1000
  - दूरस्थ स्रोत:
     - http://rubygems.org/

जवाबों:


45

मैंने इस मुद्दे को अपनी RubyGems को 1.8.10 पर अपग्रेड करके ठीक किया है

gem update --system

संपादित करें: आप भी कोशिश कर सकते हैं (जैसा कि ZeissS द्वारा सुझाया गया है)

gem install rubygems-update
update_rubygems

16
मेरे पास 1.8.10 है और अभी भी यह हो रहा है
DGM

3
उन चेतावनियों को पैदा करने वाले रत्नों के लिए "मणि प्रिस्टाइन [मणिनाम]" चलाने का प्रयास करें।
माइकल

2
यह मेरे लिए या तो काम नहीं करता था - क्योंकि "मणि अपडेट - सिस्टम" कमांड ने ठीक उसी समस्या का कारण बना और "मणि प्रिस्टाइन" ने कुछ नहीं किया। मैं @ Romain_Tribes के समाधान का पालन करें और पहले हाथ से gemspec फ़ाइलों को हटाने के लिए किया था फिर से चल रहा है एक रत्न अद्यतन
टैरिन पूर्व

4
यह उबंटू पर बहुत अच्छा विकल्प नहीं है, खासकर आकस्मिक रूबी उपयोगकर्ताओं के लिए।
फिलिप पहलन

2
नीचे GaborKomaromi का उत्तर (या टिप्पणियों में से एक ..) काम करता है। यह एक नहीं है।
गोटोफ्रिट्ज

132

अंतिम समाधान यह है:

अपनी रूबी डायरेक्टरी में "स्पेक" फाइल्स खोजें: * C: \ Ruby187 \ lib \ ruby ​​\ जवाहरात \ 1.8 स्पेसिफिकेशन *

यदि किसी रत्न फ़ाइल में कुछ इस तरह है: s.date =% q {2011-10-13 00: 00: 00.000000000Z } तो 00: 00: 00.000000000Z भाग को हटाएँ: s.date =% q {2011-10- 13}

उन रत्नों की फाइलों को सहेजने के बाद, समस्या हल हो गई है।


2
इसने मेरे लिए काम किया (रूबी 1.8.7 / win7), अन्य समाधान नहीं किए
फेलिक्स अल्काला

3
रूबी 1.8.7, मणि 1.7.2 के साथ ubuntu पर एक आकर्षण की तरह काम किया। धन्यवाद!
दान

9
यह विनिर्देशन फ़ाइल से स्ट्रिंग को हटा देगा: "ढूंढें। -टाइप करें। xargs perl -pi -e 's / 00: 00: 00 \ _000000000Z //'"
रेनर आशीर्वाद

17
/var/lib/gems/1.8/specifications -name * .gemspec -type f खोजें उबंटू में xargs perl -pi -e: 00: 00: 00 \ .000000000Z // '
kubek2k

4
sed -i 's/ 00:00:00.000000000Z//g' path_to_gemspecs
पेड्रो रोलो

46

इनमें से किसी भी समाधान ने मेरे लिए काम नहीं किया। इसे ठीक करने के लिए, मैंने उल्लिखित निर्देशिका की सभी सामग्री (कुछ / पथ / से / विनिर्देश /) को हटा दिया, फिर मैंने उन रत्नों को स्थापित किया जिनकी मुझे आवश्यकता है (वास्तव में, बुंडलर फिर बंडल इंस्टॉल)।


यह सरल, त्वरित और प्रभावी है। दूसरों से पहले यह कोशिश करो।
टिम स्कोलिक डिक

1
केवल समाधान जो मेरे लिए भी काम आया। लेकिन निश्चित नहीं है कि यह सही है।
सुरेन

इसने मेरे लिए काम किया। यह मणि udpate --system चला रहा था जो मुझे इस समस्या से मिला!
डेव इसाक

12

चलाने के अलावा, gem update --systemमैंने gem install <gem with bad gemspec>प्रत्येक आइटम पर उपयोग किया था, जो रत्न के रूप में खराब था। इसने मेरी मशीन की त्रुटियों को साफ किया।


5
आप "मणि प्रिस्टाइन [जेमनाम]" के साथ फिर से इंस्टॉल कर सकते हैं या रत्नों को फिर से डाउनलोड किए बिना रत्नों को फिर से डाउनलोड करने के लिए "मणि प्रिस्टाइन --all" कर सकते हैं।
माइकल

10

जैसा कि माइकल ने टिप्पणी में कहा था:

gem pristine --all

6

Ubuntu 11.10 पर GEM स्थापित करने का प्रयास करते समय एक ही समस्या थी।

Invalid gemspec in [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: invalid date format in specification: "2011-12-28 00:00:00.000000000Z"

उपरोक्त विकल्प मेरे काम नहीं आए। gem envनिम्नलिखित की सूचना दी:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.7.2
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]

इसलिए मैंने माना कि यह समस्या इस तथ्य के कारण थी कि मुझे रूबीजीम्स के नए संस्करण की आवश्यकता थी।

gem update --systemनिम्नलिखित चेतावनी जारी करना :

ERROR:  gem update --system is disabled on Debian, because it will overwrite the content of the rubygems Debian package, and might break your Debian system in subtle ways. The Debian-supported way to update rubygems is through apt-get, using Debian official repositories.
If you really know what you are doing, you can still update rubygems by setting the REALLY_GEM_UPDATE_SYSTEM environment variable, but please remember that this is completely unsupported by Debian.

हालाँकि मैं अंततः rubygemsजारी करके 1.8.15 पर अद्यतन करने में सक्षम था :

sudo gem install rubygems-update && update_rubygems

सब कुछ उसके बाद काम किया, सौभाग्य! :)


उबंटू पर मेरे लिए, इसके sudo apt-get purge rubygemsबाद sudo apt-get install rubygemsऔर फिर सभी रत्नों को स्थापित करना शुरू कर दिया। अजीब है, लेकिन कम से कम यह काम किया: पी (ऊपर मेरे लिए काम नहीं किया)
जेफ ट्रैटनर

3

[/Var/lib/gems/1.8/specifications/chronic-0.6.4.gemspec] में अमान्य रत्न: विनिर्देश में अमान्य दिनांक प्रारूप: "2011-09-09 00: 00: 00.000000000Z"

इस तरह की समस्या का सरल समाधान फ़ाइल को नेविगेट करना है .. जैसे।

चरण 1. cd /var/lib/gems/1.8/specifications
चरण 2. उर पसंद के संपादक में फ़ाइल (क्रोनिक-0.6.4.gemspec) खोलें ... (gedit क्रोनिक-0.6.4
. gemspec) चरण 3। s.date =% q {2011-10-13 00: 00: 00.000000000Z} को s.date =% q {2011-201-13} में बदलें

चियर्स :)


2

10.10 में अपग्रेड होने के बाद मुझे अपने ubuntu पर बस यही समस्या थी। उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। मुझे http://rubygems.org/pages/download से update_rubygems स्क्रिप्ट इंस्टॉल करनी थी और इसे एक बार चलाना था। Afterwords सब कुछ काम किया।


2

मैंने इस समस्या को 'अमान्य दिनांक स्वरूपित विनिर्देशन' द्वारा ठीक कर दिया है, डी में संगत लाइन को बदलकर: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications/tilt-1.3.3.gemspec s.date = डालकर S.date के बजाय Time.now = "2011-08-25 00: 00: 00.000000000Z" वही अन्य फ़ाइलों का भी उपयोग किया जा सकता है।


2

मेरे पास एक-एक करके ठीक करने के लिए बहुत सारे रत्न हैं, और दोनों को आज़माएं update_rubygemsऔर फिर gem pristine --allभी किस्मत नहीं

इसलिए मैं rvm clear gemsetगलत रत्नों के साथ सभी रत्नों को निकालने के लिए उपयोग करता हूं। bundle installसभी रत्नों, और वियोला को पुनर्स्थापित करने के लिए निष्पादित करें!


Unrecognized command line argument: 'clear' ( see: 'rvm usage' )
जोनाथन

1
rvm gemset empty your_gemset_name_or_global
taiansu


1

gem update --systemतब तक चलाकर हल किया gem update


मेरे लिए काम किया है, मैं सिर्फ मणि अद्यतन - प्रणाली के बाद उस त्रुटि को मिला है, उनमें से ज्यादातर मणि अद्यतन के बाद चले गए। दूसरों के लिए मैंने जवाहरात फ़ाइल को हटा दिया।
23

1

इन उत्तरों में दिए गए विभिन्न समाधान मेरे लिए काम नहीं करते। जो काम किया था वह आपत्तिजनक मणि के विशिष्ट संस्करणों को फिर से स्थापित कर रहा था। आपके मामले में ऐसा लगेगा:

gem install tilt   -v 1.3.3
gem install execjs -v 1.2.4
gem install temple -v 0.3.3
gem install guard  -v 0.6.3
gem install guard-livereload -v 0.3.1
gem install rack-cache -v 1.0.3

मुझे लगता है कि रत्न रिपॉजिटरी करते समय हमेशा (कभी भी) बाहर नहीं जा सकता है gem pristine xxx yyy zzzया gem pristine --allनहीं gem install xxx -v v.r.m

वैसे भी, रत्नों के आपत्तिजनक संस्करणों को फिर से स्थापित करना मेरे लिए काम कर गया, हालाँकि यह थकाऊ था ...



1

"मणि स्थापित रूबीमेम्स-अपडेट", "अपडेट_रुबिजम", फिर "मणि प्रिस्टाइन --all" वह संयोजन है जो पहले से सूचीबद्ध किसी के भी काम करने के बाद मेरे लिए समस्या हल हो गई।


0

मेरे मामले में, संदर्भित रत्न संस्करण भी स्थापित नहीं किए गए थे। मेरे पास वे रत्न थे, लेकिन वे संस्करण नहीं थे, जो रत्नों की त्रुटि का कारण बन रहे थे। इसलिए, मैंने अभी /path/to/specifications/offending-XYZZ.gemspec फ़ाइलों में से प्रत्येक को हटा दिया है।


0

यह वास्तव में एक उत्तर नहीं है, लेकिन अगर किसी को अधिक खुदाई करने का मन करता है, तो मुझे यह रत्न युक्ति यहाँ मिली: http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html (तिथि = तिथि तक नीचे स्क्रॉल करें) (और क्लिक करें) स्रोत दिखाने के लिए):

@date = case date
when String then
  if %r\A(\d{4})-(\d{2})-(\d{2})\Z/ =~ date then
    Time.utc($1.to_i, $2.to_i, $3.to_i)
  else
    raise(Gem::InvalidSpecificationException,
          "invalid date format in specification: #{date.inspect}")
  end
when Time, Date then
  Time.utc(date.year, date.month, date.day)
else
  TODAY
end

इसलिए मुझे लगता है कि यह कोड है जो उस रत्न को पार्स करता है, और यह सिर्फ उस तारीख प्रारूप की तरह दिखता है जो उन फ़ाइलों में हैं जो त्रुटियां दिखाते हैं जो इसके अनुरूप नहीं हैं।

जैसा मैंने किया था, उन उपर्युक्त रत्नों को मैन्युअल रूप से ठीक करना था जैसा कि ऊपर सुझाया गया है (तारीखों को "yyyy-mm-dd" में बदलना), यह मेरे लिए काम करता है।

सभी रूबीम चश्मा मैं था कि इस समस्या को भी एक लाइन थी

s.rubygems_version =% q {1.3.5}

तो मैं अनुमान लगा रहा हूं कि ये सिर्फ पुराने रत्न हैं? और वैसे भी उन% q {...} के साथ क्या है?


0

यदि आपको उबंटू 11.04 पर यह त्रुटि आई तो मेरा समाधान निम्न कमांड लाइन था:

$ sudo apt-get install ruby1.9.1

ऐसा करने के बाद आपको डेट एरर नहीं मिलेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.