linux - 跨多台计算机管理用户配置文件

我通常在多台计算机上工作。我有各种配置文件,例如 .bashrc.gitconfig.irbrc.vimrc 和配置文件夹,例如,包含有值(value)的自定义的 .vim/。 有时我希望不同计算机之间的配置略有不同。

我想使用版本控制来管理这些不同的文件。

  • 其他人是否使用版本控制来管理他们的配置文件?
  • 有哪些提示可以让这更容易?
  • 处理计算机之间差异的最优雅的方法是什么?
  • 我对 git 很满意;还有其他建议吗?

最佳答案

我在 ~/config/ 保留一个文件夹,这是一个 bzr 存储库。我在我的多台计算机之间推/pull 存储库以同步它。我有一个安装脚本,我用它来创建指向我的主目录的符号链接(symbolic link):

#! /bin/sh
# link all files to the home directory, asking about overwrites
cd `dirname $0`
SCRIPT_DIR=`pwd`
SCRIPT_NAME=`basename $0`
FILES=`bzr ls --versioned --non-recursive`

cd $HOME
for FILE in $FILES; do
    ln --symbolic --interactive $SCRIPT_DIR/$FILE
done
rm $TARGET_DIR/$SCRIPT_NAME

如果你想用 git 代替 bzr,你可以改用:

FILES=`git ls-tree --name-only HEAD`

(我必须 ask SO 才能弄清楚)

编辑:我实际上不再这样做了,现在我有一个 dotfiles github 上的 repo,带有其他人编写的不错的 rake 安装脚本。

https://stackoverflow.com/questions/1413049/

相关文章:

linux - 在家学习内核黑客和嵌入式开发?

linux - 当我在脚本中使用它时,无法关闭带有 echo "^]"的 scpi(telnet)

c - Linux内核代码中的 "EXPORT_SYMBOL"是什么意思?

linux - 使用 'sudo apt-get install build-essentials'

linux - 让 Tk 看起来像一个原生 Linux 应用程序

python - 如何在 Linux 上使用 Python 检查进程是否仍在运行?

linux - RealUID,保存的 UID,有效的 UID。这是怎么回事?

linux - 如何找出哪个进程正在消耗 "wait CPU"(即 I/O 阻塞)

linux - 需要对 Linux bash 内置 exec 命令行为的解释

linux - 应用程序如何在运行时解析为不同版本的共享库?