如何在 Mac 之间共享/传输 Atom 安装(包和设置) ?

是否有可能将 Atom 从一台 Mac 复制到另一台 Mac,包括所有已安装的软件包、设置等?

33367 次浏览

有几种方法可以在 Atom 安装之间同步您的设置和包:

  • Git: 创建一个公共或私有的 Git 回购,并在其中存储本地 ~/.atom文件夹的内容。忽略 .gitignore文件中的下列文件/目录:

    storage
    compile-cache
    dev
    .npm
    .node-gyp
    
  • Use a package like sync-settings. This will store your configuration in a GitHub Gist.

  • Dropbox (or similar): Move your ~/.atom folder to your Dropbox folder and then symlink it from there to its original location. This has the downside of syncing everything in ~/.atom, even the things you could ignore.

  • Use stars to select your favorite packages. On the Atom web site, create an account and mark your favorite packages with stars. Then use apm stars --install to install all starred packages on any machine. Downside: This only works for packages, not for settings.

More details:

作为使用像 RCM这样的 dotfile 管理系统的用户,我更喜欢独立的配置文件。

目前,Atom 还没有正式提供一个 packages.cson文件来管理插件,但是正如文章 在机器之间同步设置和包所提到的,有一个名为 包同步的插件将为我们生成一个 packages.cson文件。

所以在 包同步的帮助下,现在我只需要同步那些最小的配置文件,就可以让我的 Atom 设置和包在多台机器上保持一致。

这是如何做到这一点(使用 ubuntu 作为一个例子) :

  1. 安装 Atom,并通过 Edit—— > Preferences—— > Install安装 包同步,如屏幕截图所示: Install package-sync
  2. 打开命令面板,键入: Create Package List,在 ~/.atom文件夹下将有一个 packages.cson文件。 Open Command palette Create Package List

  3. 编辑 gitignore 文件:

    $gedit ~/. atom/. gitignore

    确保内容是:

    Blob-store 编译缓存 Dev 储藏室 . node-gyp 。 npm 。 apm 包裹/ Atom-shell/

    这是 .gitignore文件的截图: .gitignore

    这样可以确保 Atom 从互联网上下载的内容不会同步到你的 dotfiles 回购文件中。

  4. .atom文件夹移动到 dotfile repo:

    $mv ~/. atom ~/dotfiles/tag-atom/atom

  5. 重新链接文件夹:

    $ln-s ~/dotfiles/tag-atom/atom ~/. atom

    或者如果您安装了 rcm:

    $杯子

  6. 现在转到另一台机器,安装 Atom 和软件包同步。更新 dotfiles repo,然后打开 Atom 命令面板并键入: sync

现在,您的 Atom 设置将获得同步并与 RCM dotilfe 管理系统集成。

这是我的 ~/.atom文件夹中同步的文件: synced files

那个。Atom 文件夹包含的包文件夹可能相当大。不幸的是 OneDrive 不允许排除文件夹,所以我选择了 git 选项。

我从 git 中排除了这些包,而是提交了一个包含我的包的文本文件(my-packages.txt)。

要重新安装软件包,我需要运行: apm install --packages-file my-packages.txt

为了生成 my-packages.txt,我需要在 Bash shell 中使用类似的代码: ls packages | xargs -n 1 echo | cut -d/ -f1 > my-packages.txt

我最近构建了一个包,它可以在多台计算机上自动同步您的 Atom 设置和包。有点像 Google Chrome 中的书签同步机制。叫做 Atom-package-sync 原子-包-同步。也许能满足你的需求。

enter image description here

我使用 Resilio Sync Home在 Windows、 macOS 和 Linux 机器之间同步我的 Atom 设置。它是免费的,文件不会保存在“云”上(像 Dropbox 或 Gists) ,但它要求至少有两台机器在线,以便同步当前的设置。

我不想同步缓存、安装特定设置等,我更新了在同步目录(即 ~/.atom目录)中创建的 .sync/IgnoreList文件。不幸的是,您必须在每台同步的机器上更新它(具有讽刺意味的是,IgnoreList文件没有同步)。默认情况下,该文件指定了在同步中省略的各种临时文件,因此您需要添加以下内容:

## Atom-specific
/packages/node-debugger/debugger.log
\packages\node-debugger\debugger.log
/.apm
\.apm
/.node-gyp
\.node-gyp
/.npm
\.npm
/blob-store
\blob-store
/compile-cache
\compile-cache
/dev
\dev
/recovery
\recovery
/split-diff
\split-diff
/storage
\storage

一些被省略的目录是特定于包的(例如,split-diff)。因为 Windows 与其他平台有不同的路径分隔符,所以我需要同时指定(!)

  1. 在您的第一台机器上安装 Resilio 同步主页
  2. 添加到 Resilio 的 .atom目录进行同步。
  3. 更新其 IgnoreList文件,如上所示。将此文件保存到要与之同步的其他计算机。
  4. 发送该文件夹的 Resilio“读取和写入”链接到其他机器,你想要同步或复制“读取和写入”键在其他机器上使用。为此,在 Resilio 的文件夹视图中,单击。原子文件夹的菜单(右边缘的垂直点) ,并选择“复制读写键”。以后再说吧。

然后在你的其他机器上,

  1. 安装 Resilio 同步主页
  2. 创建 .atom/.sync
  3. IgnoreList从第一台计算机复制到该目录
  4. 添加要与其他计算机同步的 .atom目录。您应该使用“ Enter key or link”添加文件夹,然后输入您复制的密钥,如上所示。
  5. 等到同步完成后再打开 Atom。第一次可能需要几分钟。

现在我不需要在每台机器上分别安装/删除软件包了!

提示: 对文件和目录的更改保存在 .sync/Archive中,如果需要恢复它们,会保存一段时间。

您可以通过 package-list.txt文件和一个简单的 shell 脚本来同步您的包。

创建包-list.txt 文件

apm list --installed --bare > package-list.txt

在另一台主机上安装丢失的包

BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
INSTALLEd_PKGS=$(apm list --installed --bare)
for PKG in $(cut -f1 -d@ $BASEDIR/package-list.txt); do
grep -q $PKG <<< $INSTALLEd_PKGS || apm install $PKG
done