What does HackerNews think of rcm?

rc file (dotfile) management

Language: Perl

I use https://github.com/thoughtbot/rcm, which works smoothly and includes support for host-specific files
I use rcm. It assumes you keep a separate (potentially version-controlled) folder at ~/.dotfiles or similar, and it provides a suite of tools for managing the symlinks.

https://github.com/thoughtbot/rcm

I use a tool called rcm[0], which is essentially a set of shell scripts for managing symlinks from $HOME into $HOME/.dotfiles. $HOME/.dotfiles can then be a git repo.

Some notes:

1. rcm lets you decide make host-specific or host-agnostic dotfiles. For example, I can declare that I want a different `.ssh/config` file for each host, and rcm will figure out which `.ssh/config` to symlink based on the current machine's hostname.

2. The installation process is very simple. It's just shell scripts, so you don't have to worry about a C/C++ compiler or having any pre-reqs installed. Operating system packages exist for the common platforms, and there's also a convenient way to "build" from source using configure && make && make install. The from source option is particularly convenient if you need to change the installation prefix to a user-writable location on a multi-user machine.

3. I use SSH Agent Forwarding[1] to avoid needing to install private keys (either new keys or copies of existing keys) on all the hosts I manage. This lets me git push and pull to my dotfiles repo on all hosts.

4. Taking it a step further, some shell config I have is host-specific (e.g., certain PATH modifications I only want to apply on certain hosts). Rather than use the host-specific dotfile feature of rcm for the whole .bashrc, I factor my shell config files into multiple files, that I then source. One of these files is called `$HOME/.util/host.sh`, which is host specific. Again, rcm creates a symlink from this to the correct host-specific file automatically by hostname.

If you're curious to learn more about any of this, my dotfiles are public.[2]

[0] https://github.com/thoughtbot/rcm

[1] https://docs.github.com/en/developers/overview/using-ssh-age...

[2] https://github.com/jez/dotfiles

I once had a setup where I could just clone a repository and run a script to get my dotfiles set up. For Vim, I would just need to then run the command to install the plugins and that was that.

Edit: Here is the CLI program that helped me set this up:

https://github.com/thoughtbot/rcm

Any love for rcm [1]? I settled on this after trying many dotfiles systems - works for me with just the right feature set. I don't often see it mentioned on dotfiles discussions online though.

[1]: https://github.com/thoughtbot/rcm

I use https://github.com/thoughtbot/rcm

it's great. It has tags to only pull up specific dotfiles (say for emacs, .config etc), and supports configurations for multiple hosts and multiple source folders.

not sure if this is the exact solution to your problem, but rcm (https://github.com/thoughtbot/rcm) allows you to create dedicated dotfiles in a .dotfiles directory which are being symlinked back to files, and it has a -t option to create and restore dotfiles with tags. mkrc -t emacs .emacs.d would create a .dotfiles/tag-emacs/ folder and rcup -t emacs restores it.
I store them in a dotfiles repo that gets pushed to Github occasionally. They get symlinked to my home directory, and I use thoughtbot's rcm[0] tool for managing that. Then I just use a small script that I keep updated to handle installation and setup on a fresh computer. I'll need to take a look at gnu stow now. It seems like it'd be a slightly simpler alternative, and would keep my dotfiles folder a bit better organized.

0. https://github.com/thoughtbot/rcm

Check out https://github.com/thoughtbot/rcm. It has a hook system, so you can have it automatically run commands to install external dependencies – stuff like vim or Emacs plugins.
I like to use rcm[1] for this.

Works very well for keeping my configuration synced between multiple machines (via git).

[1] https://github.com/thoughtbot/rcm

I maintain a single dotfiles repository also, and have found RCM by Thoughtbot[0] to be an excellent tool for managing said dotfiles.

[0]: https://github.com/thoughtbot/rcm

I've been using rcm (https://github.com/thoughtbot/rcm) for managing my dotfiles and strongly recommend it. It works by symlinking everything from your dotfiles directory to your home directory and gets out of the way. You can also do more advanced stuff like run "hook" scripts at first install or only install a subset of dotfiles using tags. Here's my rcm repo in case anyone is curious: https://github.com/olalonde/dotfiles
Personally I really like https://github.com/thoughtbot/rcm. It is simple, and to the point. Using it is straightforward, and it has allowed me to change machines and migrate my dotfiles seamlessly.
I've been meaning to look in to ThoughtBot's RCM [1] dotfile management system for something like this, btw.

[1]: https://github.com/thoughtbot/rcm