From: Charles Roper Date: 2008-09-26T15:57:05+09:00 Subject: Re: Gem update on Windows is broken? John T. wrote: > Eric Hodel wrote: >> There is no pre-built sqlite3-ruby for any platform. >> >> http://rubyforge.org/frs/?group_id=254&release_id=25302 > > Yes, and has been posted about previously (without any replies), not > having a pre-built sqlite3-ruby causes "gem update" to fail on Windows > systems, preventing other gems to be updated. Yes, this is correct. Previous versions of sqlite3-ruby had win32 versions (e.g. sqlite3-ruby-1.2.3-mswin32.gem) and these installed fine. If I issue the following command, the sqlite3-ruby gem installs just fine: $ gem install sqlite3-ruby --version 1.2.3 Successfully installed sqlite3-ruby-1.2.3-x86-mswin32 1 gem installed Installing ri documentation for sqlite3-ruby-1.2.3-x86-mswin32... Installing RDoc documentation for sqlite3-ruby-1.2.3-x86-mswin32... The problem then comes when I run gem update: gems fails to recognise that the lastest sqlite3-ruby gem does not have a win32 version. It tries to install the latest, incompatible, version, and fails. The whole gem update process then stops, thus making a complete update of all gems impossible. I should also point out that this issue isn't specific to the sqlite3-ruby gem; the hpricot gem also triggers this problem. > Is there a way to tell gem update to either skip that one gem , or > continue updating the rest of the gems?? Until there's a win32 built > version of sqlite3-ruby, this will be causing problems. Yes, I would suggest a few solutions: * Add some logic to gem update that looks for the platform and tests to see if the lastest version of a given gem is compatible with that platform. If it isn't, drop back a version until a compatible version is found. * When a gem fails to update, don't kill the whole update; just skip the gem that wouldn't update. * Allow for an option to be supplied to gem update that skips supplied gems. E.g., gem update --skip sqlite3-ruby hpricot Charles -- Posted via http://www.ruby-forum.com/.