첫째, 재치있는 사람에게 감사드립니다. h 누락 된 zlib 문제에 대한 해결책. (나는 아니었다. :-)
유감스럽게도 나는 원래의 게시에 대한 링크를 잃어 버렸지 만, Linux에서의 솔루션의 핵심은 zlib 헤더 파일을 Ruby 구성 스크립트에서 사용할 수있는 동안 Ruby를 컴파일하는 것이다. 데비안에서는 루비를 컴파일하기 전에 zlib 개발 패키지를 설치해야합니다.
나머지 텍스트는 여기에 새로운 내용이 없으므로 UNIX와 유사한 운영 체제에서 실행 환경을 사용자 지정하는 것을 편하게 생각하면 생략해야합니다. 다음은 몇 가지 기본 사항에 대한 간략한 소개와 단계별 지침을 결합한 것입니다.
------ 더 - 시작 - 중 --HOW-TO -------------------------
프로그램을 실행하고 싶다면, 콘솔에서 irb라고 가정 해 봅시다. irb라는 이름의 파일은 PATH라는 환경 변수에 의해 설명 된 순서대로 폴더에서 검색됩니다. 그것은 bash 쉘에 입력하여 PATH의 값을 볼 수있어 (키를 눌러 키 입력) : 예를 들어
echo $PATH
, "공식적인"에 의해 설치된 시스템의 IRB의 2 개 버전 하나가있는 경우 패키지 관리 시스템, yum 또는 apt-get을/usr/bin/irb라고하고, scoobydoo라는 사용자가 컴파일하고/home/scoobydoo/ourcompiledruby/bin에있는 다른 패키지를 작성하면 질문이 발생합니다. 두 개의 irb-s가 실행됩니다.
하나는 /home/scoobydoo/.bashrc 광고 등을 기록하는 경우 :
export PATH="/home/scoobydoo/ourcompiledruby/bin:/usr/bin"
하고 IRB를 입력 한 다음, 단자 창을 폐쇄하고 새로운 열어 배시 쉘을 재시작 콘솔, /home/scoobydoo/ourcompiledruby/bin/irb가 실행됩니다. 하나는 /home/scoobydoo/.bashrc 에
export PATH="/usr/bin:/home/scoobydoo/ourcompiledruby/bin"
을 썼다면, 다음은/usr/빈/IRB는 실행 얻을 것입니다. 실제로 하나에서
이는 PATH 전에/홈/Scoobydoo의/ourcompiledruby/bin으로이 과제에 있던 모든 값을 앞에 추가합니다 때문에
export PATH="/home/scoobydoo/ourcompiledruby/bin:$PATH"
를 작성하고자합니다. 그렇지 않으면 모든 일반적인 도구가/usr/bin에있는 것은 아니기 때문에 문제가있을 수 있습니다. 아마도 여러 개의 사용자 정의 응용 프로그램을 사용하려고 할 수 있습니다.환경 변수의 이름 LD_LIBRARY_PATH는 LD_LIBRARY_PATH 및 PATH의 사용은 NOT- 실험 할 루트 액세스 권한이 없거나 일반 사용자를 허용
점을 제외
같은 논리는 라이브러리에 적용 신뢰할 수있는 소프트웨어를 구축하고 루트 권한 없이도 사용할 수 있습니다.
이 미니 하우투의 나머지 부분에서는 배포본의 공식 패키지 관리 소프트웨어에 의해 시스템에 설치된 것과 관계없이 우리 자신의 버전의 루비를 만들고 우리 자신의 버전을 사용한다고 가정합니다.
1) =============================
첫째, 하나는 몇 폴더를 생성하고 환경을 설정 변수를 사용하여 폴더가 "유용합니다".
mkdir /home/scoobydoo/ourcompiledruby
mkdir -p /home/scoobydoo/lib/our_gems
하나는 전류 단자 창을 폐쇄하고 새로운 열거 나
입력하여 /home/scoobydoo/.bashrc
export PATH="/home/scoobydoo/ourcompiledruby/bin:$PATH"
export GEM_HOME="/home/scoobydoo/lib/our_gems"
재시작 배시 쉘 다음 두 라인을 추가 현재 열려있는 윈도우의 명령 행에서
bash
. /home/scoobydoo/.bashrc에 변경 사항이 /home/scoobydoo/.bashrc 아이디어의 수정 된 버전의 저장 이전에 시작된 터미널 창/세션에 영향을주지 않는 것은 인/가정이 /scoobydoo/.bashrc 한 SSH을 통해 로그온 할 경우에도 세션의 시작시 자동으로 실행됩니다.
2) =============================
지금 하나는 ZLIB 개발 패키지를 사용할 수 있는지 확인합니다 시스템에. 2011 년 4 월 나는 그것의 세부 사항을 분류하지 않은,하지만
apt-get install zlibc zlib1g-dev zlib1g
는 데비안 시스템에 충분한 것 같다. 아이디어는 모두, 라이브러리 파일과 헤더 파일, 시스템의 "공식"검색 경로에서 사용할 수 있다는 것입니다. 보통은/usr/포함하는 라이브러리 파일은/usr/lib에
3) ===================에 헤더 파일을 apt-get을 비슷하게 장소 ==========
다운로드 및 소스 타르 압축을 풉니 다.http://www.ruby-lang.org
./configure --prefix=/home/scoobydoo/ourcompiledruby
make
make install
4) =============================
콘솔 명령의 경우에서 GZ 콘솔
/home/scoobydoo/ourcompiledruby/bin/ruby
에
which ruby
인쇄와 같은 다음 새로 컴파일 된 버전은 명령에서 실행됩니다 하나입니다
ruby --help
5) =============================
프로그램의 나머지 부분, 보석, IRB 그것은 그렇게하지 않아야하지만, 2011 년 4 월 나는이 일을 더 우아한 방법을 생각하지 않은
ruby `which gem` install rake
ruby `which irb`
: 등, 제대로 같은 명령을 사용하여 실행할 수 있습니다.
ruby `which gem` install rake
다시 오류를 누락 ZLIB를 제공한다면, 하나는 바로 ZLIB 스크립트를 구성하고 다시 컴파일 루비에 사용할 수있는 파일 및 라이브러리를 포함하는 방법, 알아 내려고 시도해야합니다. (죄송합니다, 현재 내가 제공하는 더 나은 솔루션이 없습니다.)
더러운 솔루션
alias gem="`which ruby` `which gem` "
alias irb="`which ruby` `which irb` "
실제로 /home/scoobydoo/.bashrc에 다음 줄을 추가 할 수 있습니다 할 수 있음 , 나는 보통
alias irb="`which ruby` -KU "
를 사용하지만, 그렇지 않으면 오류가있을 것이기 때문에 보석, 루비은 "-KU"인수를 포기하지 않고 실행해야합니다.
------- 끝 ------------------------
필자의 경우 레일 2.1.0과 2.1.2 사이를 앞뒤로 전환했다는 것이 문제라고 생각합니다. 의존성 설치로 인한 문제가 발생했다고 생각합니다. – srboisvert
앱에 레일 고정 당신은 그것에 대한 별도의 보석이 필요없고 갈등을 일으키지 않을 것입니다. – nitecoder