문제

업데이트: 다음 후속 질문을 확인하세요. Windows의 Gem 업데이트 - 손상되었나요?


Windows에서 다음을 수행할 때:

gem install sqlite3-ruby

다음 오류가 발생합니다.

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

hpricot 보석에서도 같은 일이 발생합니다.이 gem은 < 1.0 gem에서는 잘 설치되었던 것으로 기억하는데, 지금은 1.2.0이므로 상황이 이상해졌습니다.

나는 또한 이것을 시도했습니다 :

gem install sqlite3-ruby --platform Win32

말할 필요도 없이 이것도 작동하지 않습니다(같은 오류).

여기서 무슨 일이 일어나고 있고 어떻게 해결하는지 아는 사람이 있나요?


업데이트: 다음 후속 질문을 확인하세요. Windows의 Gem 업데이트 - 손상되었나요?

도움이 되었습니까?

해결책

Nathan이 제안한 것처럼 이는 최신 버전의 sqlite3-ruby 및 hpricot gem에 Windows 버전이 없는 것으로 보인다는 사실과 관련이 있는 것으로 보입니다.이러한 상황에 직면했을 때 해야 할 일은 다음과 같습니다(참고로 gem의 이름은 자동으로 와일드카드로 지정되므로 그냥 입력해도 됩니다). SQL 다음으로 시작하는 모든 보석 목록을 가져옵니다. 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)

그런 다음 설치하려는 버전을 선택할 수 있습니다.

gem install sqlite3-ruby -v 1.2.3

hpricot를 성공적으로 설치하기 위해 다음을 수행했습니다.

gem install hpricot -v 0.6

귀찮게도 gem update gem을 Windows에서 손상된 최신 버전으로 업데이트하려고 합니다.업데이트 루틴에 오류가 발생하면 전체 프로세스에서 제외됩니다.이 문제에 대한 (해키적인) 해결책이 있습니다 여기.

그렇다면 이 문제는 보석의 버그인가요?gem이 자동으로 플랫폼을 감지하고 최신 호환 버전을 설치하면 안 되나요?

다른 팁

우분투에서도 같은 문제가 있었는데, 이로 인해 문제가 해결되었습니다.

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

최신 버전이 아직 Win32로 포팅되지 않았을 가능성이 있습니까?이 특정 gem에는 컴파일된 코드에 대한 바인딩이 있으므로 플랫폼별 gem이 필요합니다.현재 1.2.4가 아닌 버전 1.2.3을 강제 설치하면 플랫폼별 버전이 설치되지만 gem이 현재 버전을 설치하도록 허용하면 일반 1.2.4 버전이 설치됩니다(보석에서). library 폴더에는 다른 sqlite3-ruby 폴더의 이름에 있는 -x86-mswin32 접미사가 없습니다.

아마도 다른 사람이 gem이 플랫폼별 gem을 처리하는 방법에 답할 수 있을 것입니다.각 플랫폼마다 별도의 gem이 업로드되고 gem 소프트웨어가 어떤 것을 내려놓을지 선택합니까?

먼저 sqlite.org에서(http://www.sqlite.org/download.html)
다운로드 ->
미리 컴파일된 바이너리: sqlite-dll-win32-x86-3071700.zip
소스 코드: sqlite-autoconf-3071700.tar.gz
그런 다음 다음과 같이 추출하십시오.

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

마지막 설치 보석은 다음과 같습니다:

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

행운을 빌어요!

나는 또한이 문제에 부딪쳤다.1.2.3과 1.2.4의 차이가 중요하지 않다는 것을 아는 것은 가치가 있습니다.1.2.4는 다음과 같습니다.릴리즈 노트:

릴리스 이름:1.2.4

노트:이 릴리스는 생성 된 C 파일 만 업데이트하여 SWIG 파일에 대한 호환성 변경 사항을 반영합니다.이진 빌드 (예 : Windows)는 영향을받지 않으며 업데이트가 필요하지 않습니다.일반적으로 1.8.6 이전에 Ruby 버전을 사용하지 않는 한이 업데이트가 필요하지 않습니다.(원천: 1.2.4.릴리즈 노트)

다른 사람들에게 도움이 되기를 바랍니다!

Windows에서도 같은 문제가 있었고 MinGW를 설치했습니다.http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/download그리고 문제는 사라졌습니다 :-)

C :> GEM 설치 HPRICOT 성공적으로 HPRICOT-0.8.2-X86-MSWIN32 1 GEM 설치 HPRICOT-0.8.2-X86-MSWIN32 용 RI 문서 설치 ...hpricot-0.8.2-x86-mswin32용 RDoc 설명서 설치 중...

C :> GEM 설치 Ruby-Postgres를 성공적으로 설치하여 Ruby-Postgres-0.7.1.2006.04.06-x86-MSWIN32 1 GEM 설치 Ruby-Postgres-0.7.1.2006.04.06-x86-MSWIN32 용 RI 문서 설치.ruby-postgres-0.7.1.2006.04.06-x86-mswin32에 대한 RDoc 문서 설치 중...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top