如何 share/transfer 一个 Atom 安装(包和设置)从一个 Mac 到另一个?

How to share/transfer an Atom installation (packages and settings) from one Mac to another?

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

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

  • Git:创建一个 public 或私有 Git 存储库并将本地 ~/.atom 文件夹的内容存储在其中。忽略 .gitignore 文件中的以下 files/directories:

    storage
    compile-cache
    dev
    .npm
    .node-gyp
    
  • 使用像 sync-settings 这样的包。这会将您的配置存储在 GitHub Gist 中。

  • Dropbox(或类似):将您的 ~/.atom 文件夹移动到您的 Dropbox 文件夹,然后将其从那里符号链接到其原始位置。这样做的缺点是会同步 ~/.atom 中的所有内容,甚至是您可以忽略的内容。

  • 使用 星级 到 select 您最喜欢的套餐。在 Atom 网站上,创建一个帐户并用星标标记您最喜欢的包。然后使用 apm stars --install 在任何机器上安装所有加星标的包。缺点:这仅适用于包,不适用于设置。

更多详情:

作为使用点文件管理系统(例如RCM)的用户,我更喜欢独立的配置文件。

目前Atom官方并没有提供packages.cson文件来管理插件,但是作为postSyncing settings & packages between machines mentioned, there is a plugin called package-sync会为我们生成一个packages.cson文件.

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

操作方法如下(以ubuntu为例):

  1. 安装Atom,通过Edit-->Preferences-->Install安装package-sync 如屏幕截图所示:
  2. 打开你的命令面板并输入:Create Package List然后你的~/.atom文件夹下会有一个packages.cson文件。

  3. 编辑 gitignore 文件:

    $ gedit ~/.atom/.gitignore

    确保内容是:

    blob-store compile-cache dev storage .node-gyp .npm .apm packages/ atom-shell/

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

    这可以确保 Atom 从 Internet 下载的内容不会同步到您的 dotfiles 存储库。

  4. .atom 文件夹移至点文件存储库:

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

  5. 重新链接文件夹:

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

    或者如果你安装了 rcm:

    $rcup

  6. 现在转到另一台机器,安装 Atom 和包同步。更新您的点文件存储库,然后打开您的 Atom 命令面板并键入:sync

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

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

.atom 文件夹包含 packages 文件夹,该文件夹可能相当大。不幸的是,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 设置和包。有点像GoogleChrome中的书签同步机制。它被称为atom-package-sync。也许它能满足您的需求。

我使用 Resilio Sync Home 在 Windows、macOS 和 Linux 机器之间同步我的 Atom 设置。它是免费的,文件不会保存在 "cloud" 上(如 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 Sync Home
  2. .atom 目录添加到要同步的 Resilio。
  3. 更新其 IgnoreList 文件,如上所示。为您要与之同步的其他机器保存此文件。
  4. 将该文件夹的 Resilio "Read & Write" link 发送到您要与之同步的其他机器或复制 "Read & Write" 密钥以在其他机器上使用。为此,在 Resilio 的文件夹视图中,单击 .atom 文件夹的菜单(右边缘的垂直点)和 select "Copy Read & Write key"。保存以备后用。

然后在你的其他机器上,

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

现在我不需要在每台机器上分别检查 installing/removing 个包!

仅供参考:文件和目录的更改会保存在 .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