运用 Homebrew 和 Mackup 高雅的备份和康复电脑开发环境

遇到的问题

  1. 每次替换电脑都要重新装置开发环境和初始化各类常用软件的装备
  2. 最头疼的是常用软件的插件及个性化装备的搬迁

如下流程我三年阅历了六次:

  • 装置 Homebrew
  • 再用 Homebrew 装置常用软件:vscode,iTerm,nvm,Chrome……
  • 增加装备文件,装备环境变量,如 nvm
  • 装置 vscode 的常用插件
  • 装备插件
  • 装置 iTerm 插件
  • 装备插件
  • ……

整个进程繁琐且耗时,怎么解?

解法

处理软件装置功率问题

假如你已经运用 Homebrew 办理常用软件,那一定要运用 Homebrew Bundle 高雅的备份和康复软件列表

批量备份 homebrew 软件

# 履行brew bundle dump备份指令
brew bundle dump --describe --force --file="/your/path/to/Brewfile"
# 参数阐明
--describe:为列表中的指令行东西加上阐明性文字。
--force:直接掩盖之前生成的 Brewfile 文件。假如没有该参数,则问询你是否掩盖。
--file:在指定位置生成文件。假如没有该参数,则在当前目录生成 Brewfile 文件。

批量装置 homebrew 软件

brew bundle --file="/your/path/to/Brewfile"

批量装置 vscode 插件

# vscode 装置成功后,运用 vscode 提供的 code 指令批量装置插件
code --install-extension dbaeumer.vscode-eslint

处理装备搬迁问题

一切装备皆文件,所以只需处理文件同步该问题迎刃而解,这儿能够运用 git 或云同步东西。 这儿还有一个小问题便是,从 git 同步下来装备文件怎么收效? 不同软件的装备文件放在固定目录,一定是涣散在文件体系的各个旮旯,而咱们 git 同步下来的文件是依照咱们自己定义的结构保存的,这儿就需要处理一下,让咱们的拉下来的装备文件收效。

解法便是运用「软连接」

ln 指令是 linux 下一个十分重要也有用的指令,它可认为一个文件在别的一个当地树立一个同步的链接,类似于快捷键。 ln [参数] [源文件或目录] [目标文件或目录] ln -s 创立软链接指令,s 是代号 symbolic 的意思,所谓软链接,它只会在你选定的位置上生成一个镜像,而不会占用磁盘空间,而假如运用 ln 不带参数的话,则便是硬链接,会在选定的位置上生成一个和源文件巨细相同的文件,占用磁盘空间。

备份进程

将默许的装备文件悉数移动到备份目录,然后经过软连接重定位装备文件的位置:

cp ~/.zshrc ~/dotfiles/.zshrc rm ~/.zshrc ln -s ~/dotfiles/.zshrc ~/.zshrc

复原进程

将 dotfiles 里的备份装备软链到实际位置:

ln -s ~/dotfiles/.zshrc ~/.zshrc

上述进程能够手写脚本也能够运用 Mackup 这个东西完结

怎么运用

备份装备

  1. 初始化目录
# 找一个你喜欢的当地放置 dotfiles 文件夹,例如你的用户根目录
cd ~
# 你能够 clone 我的这个模板
git clone https://github.com/lorcannn/dotfiles.git
# 或者你也能够自己操控目录结构
mkdir dotfiles
...
  1. 备份 Homebrew 软件
# 履行brew bundle dump备份指令
brew bundle dump --describe --force --file="~/dotfiles/homebrew/Brewfile"
  1. 手动备份 vscode 插件

# 手动仿制插件 ID 后在 /vscode/setup.sh 中增加履行指令,如下面的指令将装置 eslint 插件
code --install-extension dbaeumer.vscode-eslint
  1. 备份其他装备文件
# 经过 Homebrew (http://brew.sh/) 装置
brew install mackup
# 创立 Mackup 的装备文件 参阅: https://github.com/lra/mackup/blob/master/doc/README.md
touch ~/.mackup.cfg
# 备份
mackup backup
  1. 上传代码到你的库房

初始化新设备

请确保电脑上装置了如下软件:

  • Git
  • Homebrew
  • Mackup
git -v
brew -v
mackup --version
  1. 拉取你的 dotfiles 库房
git clone https://github.com/{yourname}/dotfiles.git
# 若 .sh 文件履行无权限则需要增加权限
chmod u+x ~/dotfiles/**/*.sh
  1. 运用 Homebrew 装置软件
/dotfiles/homebrew/setup.sh
  1. 装置 vscode 插件
/dotfiles/vscode/setup.sh
  1. 康复其他装备文件
# 生成 mackup 装备文件
~/dotfiles/bootstrap.sh
# 别的还需修改 .mackup.cfg 中 `path = /Users/{yourname}/dotfiles` 的 `{yourname}` 替换为你的用户名,以保证路径正确
# 最后复原备份的文件
mackup restore

图解:

优雅的备份和恢复 Homebrew 软件、VScode 插件和环境配置

我的装备模板

github.com/lorcannn/do…

参阅资料:

  • github.com/cpojer/dotf…
  • dotfiles.github.io/
  • github.com/lra/mackup
  • github.com/Homebrew/ho…