Hi, new to nix. I went through https://zero-to-nix.com/ and Tidying up your $HOME with Nix and I’m excited by what I see, except that I can’t manage to update my global Ruby version. I can see the bin in the .nix-profile
directory, but I am not sure how to set my system ruby to it.
$ type ruby
ruby is /usr/bin/ruby
$ ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]
$ ls -la /Users/brian/.nix-profile/bin/ | rg ruby
lrwxr-xr-x 1 root wheel 65 Dec 31 1969 bundle -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/bundle
lrwxr-xr-x 1 root wheel 66 Dec 31 1969 bundler -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/bundler
lrwxr-xr-x 1 root wheel 62 Dec 31 1969 erb -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/erb
lrwxr-xr-x 1 root wheel 62 Dec 31 1969 gem -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/gem
lrwxr-xr-x 1 root wheel 62 Dec 31 1969 irb -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/irb
lrwxr-xr-x 1 root wheel 63 Dec 31 1969 racc -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/racc
lrwxr-xr-x 1 root wheel 63 Dec 31 1969 rake -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/rake
lrwxr-xr-x 1 root wheel 62 Dec 31 1969 rbs -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/rbs
lrwxr-xr-x 1 root wheel 63 Dec 31 1969 rdbg -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/rdbg
lrwxr-xr-x 1 root wheel 63 Dec 31 1969 rdoc -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/rdoc
lrwxr-xr-x 1 root wheel 61 Dec 31 1969 ri -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/ri
lrwxr-xr-x 1 root wheel 63 Dec 31 1969 ruby -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/ruby
lrwxr-xr-x 1 root wheel 67 Dec 31 1969 typeprof -> /nix/store/jnxamzpz35ria8v333bmpgdccsfqm312-ruby-3.1.2/bin/typeprof
I have the following files in /Users/brian/.config/nixpkgs
:
.
├── flake.lock
├── flake.nix
├── gitconfig
├── home.nix
└── zshrc
The important ones are probably flake.nix
:
{
description = "Home Manager configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, home-manager, ... }: let
arch = "aarch64-darwin"; # or aarch64-darwin
in {
defaultPackage.${arch} =
home-manager.defaultPackage.${arch};
homeConfigurations.brian =
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${arch};
modules = [ ./home.nix ];
};
};
}
and home.nix
:
{ pkgs, ... }: {
home.username = "brian"; # REPLACE ME
home.homeDirectory = "/Users/brian"; # REPLACE
home.stateVersion = "22.11";
programs.home-manager.enable = true;
programs.git = {
enable = true;
includes = [{ path = "~/.config/nixpkgs/gitconfig"; }];
};
home.packages = [
pkgs.bat
pkgs.comma
pkgs.coreutils
pkgs.fortune
pkgs.gnused
pkgs.htop
pkgs.jq
pkgs.libiconv
pkgs.nix-bash-completions
pkgs.nixfmt
pkgs.nodejs
pkgs.ponysay
pkgs.ripgrep
pkgs.ruby_3_1
pkgs.starship
pkgs.tree
pkgs.wget
];
programs.zsh = {
enable = true;
initExtra = builtins.readFile ./zshrc;
};
}
I’m using the Determinate Systems nix installer and home-manager. Is there an easy fix for this?