본문 바로가기
프로그래밍/Ruby

[Replit] Ruby Version(루비 버전) 변경하는 방법

by 리나그(ReenAG) 2022. 11. 1.
728x90
반응형

replit에 nix가 언제 도입되었는지는 모르겠지만, 간단하게 Ruby버전을 왔다 갔다 할 수 있는 방법을 공유하려고 한다. azure에서 기본적으로 제공하는 버전이 2.7.3밖에 없기 때문에 replit쪽의 버전을 바꾸는 수 밖에 없었다.

 

우선! 아래 사이트에서 원하는 ruby버전을 찾아보도록 한다. 나같은 경우는 2.7.3이었다. 

https://lazamar.co.uk/nix-versions/?package=ruby&version=2.7.3&fullName=ruby-2.7.3&keyName=ruby&revision=860b56be91fb874d48e23a950815969a7b832fbc&channel=nixpkgs-unstable#instructions 

 

Nix Package Versions

Find all versions of a package that were available in a channel and the revision you can download it from. Click on the revision number for installation instructions. Install ruby PackagerubyVersion2.7.3Channelnixpkgs-unstableRevision860b56be91fb874d48e23a

lazamar.co.uk

그렇게 원하는 패키지를 찾았다면 아래처럼 보이는 명령어가 있을 것이다.

nix-env -iA ruby -f https://github.com/NixOS/nixpkgs/archive/860b56be91fb874d48e23a950815969a7b832fbc.tar.gz

그걸 입력하면 바로 원하는 루비버전을 쓸 수 있다. (콘솔 기준으로 ruby -v 명령어를 치면 바뀌는 것을 볼 수 있다.)

재설치 하고 싶다면 아래의 명령어를 이용해서 지운뒤에 해도 되고, 바로 다른 버전을 설치해도 된다.(알아서 지워준다.)

nix-env --uninstall ruby

 

영구적으로 ruby 설치를 적용하고 싶다면 replit.nix파일을 수정해야한다.

[replit.nix]

{ pkgs }: 
let
  pkgs = import (builtins.fetchTarball {
    url = "https://github.com/NixOS/nixpkgs/archive/860b56be91fb874d48e23a950815969a7b832fbc.tar.gz";
  }) {};
in {
  deps = [
    pkgs.ruby <- 이부분이 중요
  ];
}

나중에 알아낸 내용이지만,  pkgs 변수를 굳이 기존의 pkgs와 다르게 할 필요는 없다 같게한다고 해도 알아서 우리가 원하는 버전 정보를 가져온다. 유의 해야할 점은 여기서 pkgs.rubyPackages로 rubygem을 가져오는 경우인데, gem path가 경직되어 원하는 버전의 gem을 이용해지 못하는 경우가 발생하므로 유의가 필요하다.

 

https://docs.replit.com/tutorials/nix-packaging

 

Packaging software with Nix | Replit Docs

Replit's repls are powered by Nix. Nix is a tool for managing software packages and system configurations. The Nix community also maintains the Nix Packages Collection (Nixpkgs), Nix's official package repository. It contains over 50,000 projects. Chances

docs.replit.com

 

<참고할만한 문서>

 

https://docs.replit.com/programming-ide/nix-on-replit

 

Using Nix with Replit | Replit Docs

Replit supports all programming languages through our integration with Nix. Nix is a tool for managing software packages and system configurations. It's like Python's virtualenv and pip, but instead of focusing on one programming language, it can handle al

docs.replit.com

 

++ 23 01 28 수정 여기서 rails환경을 추가적으로 조성하고 싶은 사람은 

[.replit]

onBoot = "bundle install"

이걸 .replit 파일에 추가해주면 정말로 좋다. 그럼 맨날 bundle install하는 수고를 줄일 수 있고, 생각보다 빠르게 로딩된다

728x90
반응형