
내 제목이 혼란스럽지 않기를 바랍니다. CentOS 5 머신이 있고 여기에 Ruby 1.8.7이 설치되어 있습니다. 그래서 Ruby 설치와 gem/rails를 업그레이드하기 위해 저는
제거된 루비:sudo yum 루비 제거
Ruby의 최신 안정 릴리스를 다운로드하고 압축을 해제했습니다.wget... && tar -zxf ....
일반적인 설치를 진행했습니다.
- ./configure --prefix=$HOME
- 만들다
- sudo make 설치
다운로드된 루비젬:으응....
설정 파일을 실행했습니다: 루비 setup.rb
이제 내 문제는 레일을 설치하려고 할 때 다음을 입력한다는 것입니다.보석 설치 레일, 다음 메시지가 나타납니다."-bash: /usr/local/bin/gem: /usr/local/bin/ruby: 잘못된 해석기: 권한이 거부되었습니다."
그래서 (저에게 있어서) 다음 논리적인 움직임은 다음을 입력하는 것이었습니다:sudo gem 설치 레일, 그러나 그것은 반환됩니다"sudo: gem: 명령을 찾을 수 없습니다", 이는 내가 무언가를 왕성하게 망쳤다는 것을 의미합니다.
좀 더 많은 정보를 추가하자면
루비는 어디있어?:루비: /usr/lib/ruby /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby
어떤 루비: ~/빈/루비
나는 소스에서 Ruby를 수동으로 설치함으로써 뭔가를 망쳤다고 생각하고 있습니다. 아마도 --prefix=$HOME이 여기서 범인일까요?
답변1
실행 파일 을 제공하는 패키지를 제거하지 않은 것 같습니다. gem
따라서 패키지는 여전히 에 있고 /usr/local/bin/
더 이상 존재하지 않는 인터프리터를 가리킵니다 /usr/local/bin/ruby
.
해당 패키지를 제거하거나(이 패키지가 의존하는 Ruby 패키지도 제거했기 때문에 권장 됨 ~/bin
) . (또는 루트 액세스 권한이 있는 경우 를 지정하지 않고 스크립트를 다시 실행하여 Ruby의 기본값인 에 설치하도록 할 수 있습니다.)/usr/local/bin
PATH
./configure
--prefix=${HOME}
/usr/local/bin
gem
쉘이 에 설치된 실행 파일을 찾을 ~/bin
수 있도록 정렬한 후에 gem install rails
는 sudo
. (또는 에 루트 설치를 하려는 경우 가 에 있는지 /usr/local/bin
확인한 다음 이전에 시도한 대로 을 실행하십시오.)gem
/usr/local/bin/gem
sudo gem install rails
아마도 더 나은 접근 방식은 다음 중 하나를 보는 것이었을 것입니다.rvm
또는rbenv
, 둘 다 여러 개의 루비를 관리하는 것을 상당히 고통스럽지 않은 작업으로 만듭니다. 이러한 도구 중 하나를 사용하면 시스템의 다른 패키지에 필요할 수 있는 시스템 전체 버전을 제거할 필요 없이 여러 버전의 Ruby를 설치할 수 있습니다.