replit에 nix가 언제 도입되었는지는 모르겠지만, 간단하게 Ruby버전을 왔다 갔다 할 수 있는 방법을 공유하려고 한다. azure에서 기본적으로 제공하는 버전이 2.7.3밖에 없기 때문에 replit쪽의 버전을 바꾸는 수 밖에 없었다.
우선! 아래 사이트에서 원하는 ruby버전을 찾아보도록 한다. 나같은 경우는 2.7.3이었다.
그렇게 원하는 패키지를 찾았다면 아래처럼 보이는 명령어가 있을 것이다.
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
<참고할만한 문서>
https://docs.replit.com/programming-ide/nix-on-replit
++ 23 01 28 수정 여기서 rails환경을 추가적으로 조성하고 싶은 사람은
[.replit]
onBoot = "bundle install"
이걸 .replit 파일에 추가해주면 정말로 좋다. 그럼 맨날 bundle install하는 수고를 줄일 수 있고, 생각보다 빠르게 로딩된다
'프로그래밍 > Ruby' 카테고리의 다른 글
[군대식 클라우드 코딩 TroubleShooting] - 23 01 10 (0) | 2023.01.10 |
---|---|
[군대식 클라우드 코딩 TroubleShooting] - 23 01 09 (0) | 2023.01.09 |
VSCode 랑 Minitest쓰는 방법 (0) | 2022.01.24 |
Ruby - String에서 Number성분만 추리기 (2) | 2021.12.29 |
루비로 작성된 다양한 라이브러리 찾고 배워보기 (2) | 2021.12.12 |