Pergunta

Atualização: Confira esta pergunta: Gem Update no Windows - é quebrado?


No Windows, quando eu faço isso:

gem install sqlite3-ruby

Eu recebo o seguinte erro:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
        ERROR: Failed to build gem native extension.

c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --platform Win32
checking for fdatasync() in rt.lib... no
checking for sqlite3.h... no

nmake
'nmake' is not recognized as an internal or external command,
operable program or batch file.


Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out

A mesma coisa acontece com o hpricot gem.Lembro-me que estas gems instalados bem na < 1.0 gemas, mas agora eu estou no 1.2.0, as coisas têm ido screwy.

Eu também tentei isso:

gem install sqlite3-ruby --platform Win32

Escusado será dizer que este não funciona (mesmo erro)

Alguém sabe o que está acontecendo aqui, e como corrigir isso?


Atualização: Confira esta pergunta: Gem Update no Windows - é quebrado?

Foi útil?

Solução

Como Nathan sugere, este parece estar relacionado ao fato de que as versões mais recentes do sqlite3-ruby e hpricot gemas não parecem ter versões do Windows.Veja o que fazer quando confrontados com esta situação (note que o nome da gema é automaticamente com curinga, assim, você pode digitar apenas sql e obter uma lista de todas as gemas com início sql):

$ gem list --remote --all sqlite

*** REMOTE GEMS ***

sqlite (2.0.1, 2.0.0, 1.3.1, 1.3.0, 1.2.9.1, 1.2.0, 1.1.3, 1.1.2, 1.1.1, 1.1)
sqlite-ruby (2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2)
sqlite3-ruby (1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.6.0, 0.5.0)

Em seguida, você pode escolher a versão que você deseja instalar:

gem install sqlite3-ruby -v 1.2.3

Para instalar com êxito o hpricot, eu fiz isso:

gem install hpricot -v 0.6

Irritantemente, fazendo um gem update tenta atualizar as gemas, o seu mais recente, quebrados-no-Windows, versões.Quando a rotina de atualização encontrar um erro, valas você de todo o processo.Há um (hacky) a solução para este problema aqui.

Assim, é que este assunto é um bug em jóias?Deve gemas não detectar automaticamente a plataforma e instalar a versão mais recente compatível?

Outras dicas

Eu tive o mesmo problema no Ubuntu, isso resolveu o problema para mim:

http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html

É possível que a nova versão ainda não foi portado para Win32 ainda?Uma vez que este particular jóia tem ligações para o código compilado, o que exigiria uma plataforma específica gem.Se eu forçar a instalação da versão 1.2.3, em vez da atual 1.2.4, a plataforma versão específica para instalar, mas quando eu permitir gem para tentar instalar a versão atual, recebo o genérico 1.2.4 versão (no gemas pasta de biblioteca, falta-lhe o -x86-mswin32 sufixo que os outros sqlite3-ruby pastas têm em seus nomes.

Talvez alguém pode responder o quanto gem alças plataforma de gemas específicas.São separe as gemas carregado para cada plataforma e a gema de software seleciona um a puxar para baixo?

primeiro, a partir de sqlite.org(http://www.sqlite.org/download.html)
download ->
Binários Pré-Compilados: sqlite-dll-win32-x86-3071700.zip
e de Código Fonte: sqlite-autoconf-3071700.tar.gz
em seguida, extrair como:

-include
    --sqlite3.h
    --sqlite3ext.h
-lib
    --shell.c
    --sqlite3.c
    --sqlite3.def
    --sqlite3.dll

última instalar o gem como:

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=path\to\include  
 --with-sqlite3-lib=path\to\lib --no-ri --no-rdoc

Boa sorte!

Eu também teve esse problema.Vale a pena saber que a diferença entre 1.2.3 e 1.2.4 não é significativo.Aqui estão os 1.2.4.notas de lançamento:

Nome De Lançamento:1.2.4

Notas:Esta versão actualiza o gerado C arquivo para refletir a compatibilidade alterações que foram feitas para o GOLE de arquivo.Compilações binárias (por exemplo, O Windows) não são afetados, e não precisa de atualização.Em geral, você não vai precisar esta atualização, a menos que você esteja usando um versão do Ruby antes 1.8.6.(fonte: 1.2.4.notas de lançamento)

Espero que ajude outras pessoas!

Eu tive o mesmo problema no Windows e tenho installe MinGW http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download e o problema passou :-)

C:>gem instalar o hpricot Instalado com êxito hpricot-0.8.2-x86-mswin32 1 gema instalado A instalação do ri documentação para hpricot-0.8.2-x86-mswin32...Instalando o RDoc documentação para hpricot-0.8.2-x86-mswin32...

C:>gem install ruby-postgres Instalado com êxito ruby-postgres-0.7.1.2006.04.06-x86-mswin32 1 gema instalado A instalação do ri documentação para ruby-postgres-0.7.1.2006.04.06-x86-mswin32...Instalando o RDoc documentação para ruby-postgres-0.7.1.2006.04.06-x86-mswin32...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top