This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gem command broken on Cygwin 64 with Ruby 2.0.0p481


On Fri, Sep 5, 2014 at 9:54 AM, Robert Klemme
<shortcutter@googlemail.com> wrote:
> Hi folks,
>
> did someone of you experience this as well?
>
> $ uname -a
> CYGWIN_NT-6.1 arnie 1.7.32(0.274/5/3) 2014-08-13 23:06 x86_64 Cygwin
> $ ruby --version
> ruby 2.0.0p481 (2014-05-08) [x86_64-cygwin]
> $ gem --version
> 2.4.1
> $ gem list -l
>
> *** LOCAL GEMS ***
>
> io-console (0.4.2)
> json (1.8.1)
> minitest (4.7.5)
> psych (2.0.5)
> rake (10.3.2)
> rdoc (4.1.1)
> $ gem update
> Updating installed gems
> ERROR:  While executing gem ... (ArgumentError)
>     invalid byte sequence in UTF-8
> $ locale
> LANG=en_US.UTF-8
> LC_CTYPE="en_US.UTF-8"
> LC_NUMERIC="en_US.UTF-8"
> LC_TIME="en_US.UTF-8"
> LC_COLLATE="en_US.UTF-8"
> LC_MONETARY="en_US.UTF-8"
> LC_MESSAGES="en_US.UTF-8"
> LC_ALL=
> $ LANG=C gem update
> Updating installed gems
> ERROR:  While executing gem ... (ArgumentError)
>     invalid byte sequence in US-ASCII
>
> Apparently when reading a file the environment's encoding information
> is applied. I'm just not sure whether this is an issue with gem
> command or a Cygwin adjustment to that.
>
> Bonus points for a solution. :-)

Some feedback on the ruby-talk mailing list prompted me to experiment
a bit more. Apparently I found a solution which I post here for your
reference.

Setting the encoding to "BINARY" in the environment works:

$ LANG=C.BINARY gem update
Updating installed gems
Updating minitest
Fetching: minitest-5.4.1.gem (100%)
Successfully installed minitest-5.4.1
Parsing documentation for minitest-5.4.1
Installing ri documentation for minitest-5.4.1
Installing darkfish documentation for minitest-5.4.1
Done installing documentation for minitest after 3 seconds
Parsing documentation for minitest-5.4.1
Done installing documentation for minitest after 0 seconds
Gems updated: minitest

You can even get fancy and retain the language:

$ LANG="${LANG%%.*}.BINARY" gem update

Kind regards

robert

-- 
[guy, jim].each {|him| remember.him do |as, often| as.you_can - without end}
http://blog.rubybestpractices.com/

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]