문제

루비 젬을 설치하려고해서 트위터 메시지를 받았을 때 알림을받을 수 있도록 Ruby를 사용하고 있습니다.그러나 gem update --system를 수행 한 후에는 모든 gem install를 시도하고 수행 할 때마다 zlib 오류가 발생합니다.아래는 루비 보석을 설치하려고 할 때 얻는 콘솔 출력입니다.(gem environment의 출력과 함께) 라코 디스

도움이 되었습니까?

해결책

오늘 밤도 이걸 받기 시작했습니다.인터넷 검색에서 결과를 제공하지 못한 여러 제안이 발견되었습니다. 라코 디스

그리고 package.rb의 함수를 대체해야하는 jamis의 코드에 붙여 넣었지만 대체해야하는 원본을 찾을 수 없습니다.

rubygems 재설치는 도움이되지 않았습니다.지금 바로 루비를 재설치하는 중입니다 ......... 고정되었습니다.하지만 고통 스럽습니다.

다른 팁

찾았습니다!Windows에서도 동일한 문제가 발생했습니다 (업데이트를하지 않고 갑자기 나타났습니다 만, 어쨌든) :

여러 충돌 zlib 버전과 관련이 있습니다 (제 생각에).

ruby / lib / ruby / 1.8 / i386-msvcrt에 zlib.so 파일이 있는지 확인하십시오.제 경우에는 이미 거기에있었습니다.그렇지 않다면 ruby-zlib를 설치해보십시오.

그런 다음 ruby / lib / ruby / site_ruby / 1.8. / i386-msvcrt로 이동하여 zlib.so 파일을 삭제하십시오.

ruby / bin에는 zlib1.dll이 있어야합니다.어떤 이유로 내 Ruby 버전은이 dll을 사용하지 않았습니다.최신 버전 (1.2.3)을 다운로드하여 설치했습니다.사용하려면 zlib.dll로 이름을 변경해야했습니다.

그리고 타다!Rubygems가 다시 작동했습니다.

도움이 되었기를 바랍니다.

첫째, 누락 된 zlib 문제에 대한 해결책을 제시해 주신 분께 감사드립니다. (제가 아니 었습니다. :-)

안타깝게도 원래 게시물에 대한 링크를 잃어 버렸지 만 Linux에서 솔루션의 핵심은 Ruby를 컴파일하는 것이며 zlib 헤더 파일은 Ruby 구성 스크립트에서 사용할 수 있습니다. 데비안에서는 Ruby 컴파일을 시작하기 전에 zlib 개발 패키지를 설치해야합니다.

여기의 나머지 텍스트에는 새로운 내용이 포함되어 있지 않으며 UNIX와 유사한 운영 체제에서 실행 환경을 사용자 정의하는 것이 편하다면 생략하는 것이 좋습니다. 다음은 몇 가지 기본 사항에 대한 간략한 소개와 단계별 지침의 조합입니다.

------ 하우투 시작 -------------------------

콘솔에서 프로그램 (예 : irb)을 실행하려는 경우 irb라는 파일이 PATH라는 환경 변수가 설명하는 순서대로 폴더에서 검색됩니다. bash 셸에 입력하고 Enter 키를 눌러 PATH 값을 볼 수 있습니다. 라코 디스

예를 들어, 시스템에 2 개의 irb 버전이있는 경우 하나는 "공식"패키지 관리 시스템에 의해 설치됩니다. 예를 들어 yum 또는 apt-get은 / usr / bin / irb에 설치되고 다른 하나는 scoobydoo라는 사용자가 컴파일하고 / home / scoobydoo / ourcompiledruby / bin에 상주하면 두 irb-s 중 하나가 실행되는 질문이 발생합니다.

/home/scoobydoo/.bashrc 다음과 같은 줄 : 라코 디스

그리고 터미널 창을 닫고 새 창을 열어 bash 쉘을 다시 시작한 다음 콘솔에 irb를 입력하여 / home / scoobydoo / ourcompiledruby / bin / irb가 실행됩니다. 쓴다면 라코 디스

/home/scoobydoo/.bashrc 그러면 / usr / bin / irb가 실행됩니다.

실제로 글을 쓰고 싶다 라코 디스

왜냐하면 이것은 / home / scoobydoo / ourcompiledruby / bin에이 할당 이전에 PATH가 가졌던 모든 값을 앞에 추가하기 때문입니다. 그렇지 않으면 모든 공통 도구가 / usr / bin에 상주하지 않고 여러 사용자 정의 빌드 애플리케이션을 사용하기를 원하기 때문에 문제가 발생합니다.

환경 변수의 이름이 LD_LIBRARY_PATH라는 점을 제외하고 동일한 논리가 라이브러리에 적용됩니다.

LD_LIBRARY_PATH 및 PATH를 사용하면 루트 액세스 권한이 없거나 신뢰할 수없는 소프트웨어를 실험하려는 일반 사용자가 루트 권한 없이도이를 빌드하고 사용할 수 있습니다.

이 미니 하우투의 나머지 부분에서는 배포판의 공식 패키지 관리 소프트웨어에 의해 시스템에 설치된 항목에 관계없이 자체 버전의 루비를 빌드하고 자체 버전을 사용할 것이라고 가정합니다. p>

1)============================

먼저, 폴더를 몇 개 만들고 환경 변수를 설정하여 폴더가 "유용"하도록합니다. 라코 디스

One은 다음 두 줄을 /home/scoobydoo/.bashrc 라코 디스

현재 터미널 창을 닫고 새 창을 열거 나 입력하여 bash 셸을 다시 시작합니다. 라코 디스

현재 열려있는 창의 명령 줄에서. /home/scoobydoo/.bashrc에 대한 변경 사항은 수정 된 버전의 /home/scoobydoo/.bashrc를 저장하기 전에 시작된 터미널 창 / 세션에는 영향을주지 않습니다. /home/scoobydoo/.bashrc는 세션이 시작될 때 ssh를 통해 로그온하더라도 자동으로 실행된다는 것입니다.

2)============================

이제 시스템에서 zlib 개발 패키지를 사용할 수 있는지 확인합니다. 2011 년 4 월 현재 세부 사항은 분류하지 않았지만 라코 디스

데비안 시스템에 충분합니다. 아이디어는 라이브러리 파일과 헤더 파일 모두 시스템의 "공식"검색 경로에서 사용할 수 있다는 것입니다. 일반적으로 apt-get 및 alike pl

헤더 파일을 / usr / include에, 라이브러리 파일을 / usr / lib 에 연결합니다.

3)============================

http://www.ruby-lang.org 라코 디스

4)============================

콘솔 명령이 다음과 같은 경우 라코 디스

콘솔에 인쇄 라코 디스

그런 다음 새로 컴파일 된 버전이 명령에서 실행되는 버전입니다 라코 디스

5)============================

나머지 프로그램, gem, irb 등은 다음과 같은 명령을 사용하여 올바르게 실행할 수 있습니다. 라코 디스

그렇게해서는 안되지만 2011 년 4 월 현재 더 우아한 방법을 찾지 못했습니다. 만약 라코 디스

zlib 누락 오류가 다시 발생하면 zlib 포함 파일 및 라이브러리를 Ruby 구성 스크립트에서 사용할 수있게 만들고 다시 컴파일하는 방법을 알아 내야합니다. (죄송합니다. 현재 더 나은 솔루션을 제공 할 수 없습니다.)

더러운 해결책이 될 수 있습니다. /home/scoobydoo/.bashrc 라코 디스

사실 저는 보통 사용합니다. 라코 디스

그러나 gem은 루비에게 "-KU"인자를주지 않고 실행되어야합니다. 그렇지 않으면 오류가 발생하기 때문입니다.

------ 하우투 끝 ------------------------

Ruby를 다시 설치하여이 문제를 해결했습니다.내가 원했던 것이 아닙니다.왜 문제가 발생했는지 알고 싶었지만 모두 해결되었습니다.

다운로드에 실패했을 때 가장 자주 나타납니다. 즉, 네트워크 시간 초과, 잘못된 수동 다운로드 등으로 인해 손상된 gem이 있습니다.다시 시도하거나 gem을 수동으로 다운로드하고 파일에 gem를 지정하세요.

gem update --system가 작동하지 않고 ruby/bin/zlib1.dll의 이름을 zlib.dll로 변경하면 도움이되지 않습니다.

열린 파일 RUBY_DIR\lib\ruby\site_ruby\1.8\rubygems.rb

기존의 def self.gunzip(data)를 다음으로 대체합니다. 라코 디스

cd를 rubysrc / ext / zlib로 입력 한 다음 ruby extendconf.rb, make, make install를 차례로 입력하세요.

그런 다음 루비를 다시 설치하세요.

우분투 10.04에서이 작업을 수행했고 성공했습니다.

다른 작업을 수행하기 전에 ZLib 을 업데이트 해보십시오.OS X에서 비슷한 문제가 발생했으며 압축:: Zlib (ZLib에 대한 Perl 인터페이스)가이 문제를 해결했습니다. 따라서 ZLib (현재 1.2.3) 문제가있는 곳일 수 있습니다 ...

다른 모든 것이 실패하면 순수 루비 zlib를 설치하십시오

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