Computer >> 컴퓨터 >  >> 체계 >> MAC

Mac 시스템 Ruby를 사용하지 마십시오. 대신 사용하십시오.

누군가 "Ruby 시스템을 사용하지 마십시오."라고 말한 적이 있을 것입니다. 좋은 조언이지만 왜? 알아봅시다.

어떤 루비가 있습니까?

MacOS에는 "시스템 Ruby"가 사전 설치된 상태로 제공됩니다.

which 사용 Ruby가 설치된 위치를 확인하는 명령:

$ which ruby
/usr/bin/ruby

/usr/bin/ruby이 표시되는 경우 , 사전 설치된 macOS 시스템 Ruby입니다.

시스템 Ruby를 업데이트하거나 gem을 추가하려고 시도하여 시스템 Ruby를 변경하지 않는 한 sysadmin 스크립트를 실행하기 위해 시스템 Ruby를 사용하는 것이 좋습니다.

하지만 Ruby에서 프로젝트를 개발할 때는 사용하고 싶지 않습니다.

개발용 루비

Ruby로 프로젝트를 개발하려면 Homebrew와 함께 Ruby를 설치하거나 asdf, chruby, rbenv 또는 rvm과 같은 버전 관리자를 사용해야 합니다.

버전 관리자는 여러 프로젝트를 저글링하고 한 번에 모두 업데이트할 수 없는 경우에 도움이 됩니다. 버전 관리자를 비교하고 Ruby를 설치하는 가장 좋은 방법을 보여주는 가이드는 제 기사 Mac에 Ruby 설치를 참조하세요.

하지만 macOS 기본 Ruby를 사용하지 않는 이유는 무엇입니까? 개발에 Mac 기본 Ruby를 사용하는 것이 좋지 않은 이유를 살펴보겠습니다.

Gem 설치의 번거로움

RubyGems는 Ruby에서 쉽고 재미있게 개발할 수 있는 기성 소프트웨어 라이브러리입니다. 대부분의 Ruby 프로젝트는 최소한 몇 개의 보석을 사용합니다.

Mac 시스템 Ruby를 사용하는 경우 gem install 실행 시스템 Ruby 디렉토리 /Library/Ruby/Gems/2.6.0에 gem을 저장하려고 합니다. . 해당 디렉토리는 root가 소유합니다. , 시스템 수퍼유저. 일반 사용자는 이 폴더에 쓸 수 없습니다(이 폴더를 변경하면 안 됩니다).

gem을 설치하려고 하는 경우(예:gem install rails) , 권한 오류가 발생합니다.

ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory

시스템 보안 위반

Unix 기반 시스템은 강력하므로 해결 방법이 있습니다. 권한 제한을 무시하기 위해 수퍼유저로 gem을 설치할 수 있습니다. 하지만 이러지 마세요!

$ sudo gem install rails

sudo을 실행하려고 할 때마다 , 멈추고 발에 총을 쏠 것인지 물어봐야 합니다.

이 경우 sudo가 필요합니다. OS에서 관리하는 시스템 파일을 변경하고 있기 때문입니다. 하지마! 시스템을 손상되거나 손상된 상태로 둘 수 있습니다. 설상가상으로 gem에는 컴퓨터를 조작하는 악성 코드가 포함될 수 있습니다.

보석 관리

숙련된 개발자는 Bundler를 사용하여 gem을 설치하고 종속성을 관리합니다.

다른 버전의 gem을 사용하는 프로젝트가 있다고 상상해 보십시오(프로젝트 사이에 새로운 gem 릴리스가 있을 수 있음). 또는 프로젝트에 있는 두 개의 서로 다른 gem이 서로 다른 버전의 종속 gem에 의존할 수도 있습니다.

Bundler는 프로젝트 디렉토리에 있는 Gemfile을 사용하여 필요한 gem을 추적합니다. sudo을 사용하는 경우 시스템 Ruby와 함께 gem을 설치하려면 시스템 Ruby 디렉토리에 호환되지 않는 gem이 엉망이 됩니다.

gem의 홈 디렉토리를 사용하는 명령으로 Bundler를 설치하여 시스템 권한 문제를 해결할 수 있습니다. 그러나 Homebrew와 함께 Ruby를 설치하거나 버전 관리자를 사용하고 설치된 번들러를 사용하는 것이 더 쉽습니다. 그러면 로컬 개발 환경이 올바르게 설정됩니다.

최신 Ruby 사용

프로젝트를 시작할 때 최신 Ruby 릴리스(작성 당시 3.0)를 사용하십시오.

macOS Catalina 또는 Big Sur의 시스템 Ruby는 이전 버전인 Ruby 2.6.3입니다. Ruby로 시작하는 경우 Homebrew로 설치하고 Ruby 3.0으로 프로젝트를 작업하십시오. 다른 프로젝트를 빌드하기 시작할 때 버전 관리자를 설치하여 다양한 Ruby 버전으로 프로젝트를 저글링할 수 있습니다.

Big Sur 이후의 MacOS

MacOS Big Sur가 현재 버전입니다. 애플은 다음과 같이 말합니다.

"레거시 소프트웨어와의 호환성을 위해 Python, Ruby 및 Perl과 같은 스크립팅 언어 런타임이 macOS에 포함되어 있습니다. macOS의 향후 버전에는 기본적으로 스크립팅 언어 런타임이 포함되지 않으며 추가 패키지를 설치해야 할 수 있습니다. ."

2021년 말에 이 글을 읽고 있다면 시스템 Ruby는 이미 사라졌을 수 있습니다. 그렇지 않은 경우 Homebrew 또는 버전 관리자와 함께 Ruby를 설치하여 준비하십시오.

루비 즐기기

Rails를 사용하여 웹 애플리케이션을 구축하려는 개발자를 위해 Install Ruby를 Mac에 설치하는 것 이상으로 Node 및 Ruby에서 작동하는 버전 관리자를 선택하는 방법을 보여주는 가이드인 Install Rails를 작성했습니다.

Ruby로 코딩하는 즐거움을 누려보세요! 결국 프로그래머의 행복을 위한 전용 언어로 알려져 있다. 하지만 시스템 Ruby는 사용자를 위한 것이 아니라 macOS를 위한 것임을 기억하세요.