注意:这个问题不是关于以类似 Dropbox 的方式同步数据(文件、文件夹),而是更多地关于同步配置。
我希望在我的台式电脑和笔记本电脑上(也许还有我的小型上网本上)安装并配置完全相同版本的 Ubuntu,并且所有软件都安装并配置完毕,而无需使用 Ubuntu Sync,并且只需最少的维护工作(一次设置,长期运行)。
用例如下:
我使用笔记本电脑工作并对软件配置做了一些更改,例如:
- 配置vim 有一个新的插件
- 更新 Search Tracker/Recoll 文件搜索索引
- 配置 Thunderbird 以拥有额外的 IMAP 帐户(“记住密码”)
- 在 Firefox/Chrome 中添加一些新书签
- 更改桌面背景图片
- 安装新软件
apt-get install
- 使用以下方式构建和安装新软件
checkinstall
- ETC。
我做了一些“同步”操作
(1)
我切换到台式电脑,并获得了在台式电脑上工作时的所有变化我在台式电脑上工作并对软件配置做了一些更改,例如:
- 将新目录添加到 DejaDup 要备份的目录列表中
- 向 Libreoffice Writer 添加新的拼写检查词典
- 配置 Terminator 软件以使用彩色字体
- 在 Ubuntu 系统中安装新字体
- 配置 Ekiga 拨打电话
- ETC。
我做了一些“同步”操作
- 我切换到我的笔记本电脑并从笔记本电脑上获取所有更改
(1)
并继续工作。(4)
问题:我可以使用哪些免费/开源软件来同步两台机器的 Ubuntu 系统、已安装的软件和配置?没有任何云服务可以做到这一点吗?
补充问题:很明显,台式电脑和笔记本电脑的硬件配置不同。所讨论的“同步软件”如何处理视频驱动程序、WLAN 驱动程序及其配置?
注意:我不需要同时同步所有电脑,因为我一次只使用一台机器。
注意:我考虑过使用 Chef 来解决这个问题,但看起来它可能真的繁琐维持这样的设置。
注意:我还考虑过使用安装了 Ubuntu 的可启动 USB(便携式 Linux),但我不确定视频驱动程序是否可以正常工作。
答案1
据我了解,您的意图是:
- 同步已安装的应用程序
- 同步你的工作
- 同步你的点文件(配置)
无论你做什么,你都需要某种云服务。不一定非要 Dropbox。我强烈推荐海底文件。我在家里的 Raspberry Pi 上运行它以满足我的同步需求。他们的文档很容易遵循。
1. 应用程序同步
在 13.10 之前,这是一个开箱即用的功能。今天我会使用 Ansible 或其他配置管理解决方案(如 puppet 或 chef)。Anible Playbook 指定了您想要安装的内容。您可以使用 Seafile 保持同步,并使用 cron 作业来运行 Ansible。
2. 同步你的工作
在这里我肯定会使用 Seafile。它允许你同步你选择的任何文件夹,而不会将你限制在一个Dropbox类文件夹。
3. 点文件
当然,你可以使用 Seafile 同步这些文件。更好的选择是将所有点文件置于 git 版本控制之下。你可以加入人群并将您的点文件放在 github 上或使用您自己的服务器作为中介。当然需要一些 git 的基本知识。
答案2
您可以将主目录移动到闪存驱动器。大多数程序都在那里存储其配置,编译后的程序可以在那里安装./configure --prefix=/home/YOURNAME/bin
(或任何其他目录)。这样做唯一不起作用的是自动同步使用 apt-get 安装的软件包。
为此,请安装 synaptic,在单击安装这些软件包的复选框之前,单击“将标记另存为...”,这将允许您保存将要安装的所有软件包的列表。当您打开笔记本电脑时,运行 synaptic,然后使用“读取标记”获取所需文件的列表。然后单击复选框以在您的另一台计算机上安装相同的文件。
此解决方案不会对驱动程序产生任何问题因为操作系统本身不共享,只有配置、用户文件等。如果您不想在闪存驱动器上移动所有文件,那么您可以将它们存储在另一个文件夹(如 /home/myfiles)中,该文件夹不必与用户关联。
如果这是您想要做的,那么您必须遵循以下步骤:
- 将您的主文件夹的内容复制到闪存驱动器。
- 将闪存驱动器重新安装到您的主文件夹的位置。
- 将闪存驱动器添加到文件 /etc/fstab,并将挂载点放在您的主文件夹中。
这样,当您的计算机在闪存驱动器存在的情况下启动时,Ubuntu 将正常启动,但会将闪存驱动器视为您的正常主文件夹。如果计算机抱怨闪存驱动器无法启动,那么您可以更改 BIOS 设置,通过将闪存驱动器选项从列表下移到硬盘驱动器下方来停止从闪存驱动器启动。
如果您需要任何帮助,可以在评论中提问。此外,您无法在计算机运行时移除闪存驱动器,因为卸载它意味着从系统中删除您的主文件夹。
以下是上述步骤的详细列表:
在开始之前:
闪存驱动器尚未真正准备好使用,从技术上讲可以按原样使用,但这不是一个好主意。大多数闪存驱动器使用 fat32,它与 Linux 以及其他所有东西兼容,但不支持 Linux 的大多数功能,因此应该将其更改为 ext2,可以使用 ext3/4,但日志可能会损坏闪存驱动器,但它确实可以在断电时保护文件,因此如果您想先讨论这个问题,您可以发表评论。
需要注意的是Ext 仅适用于 Linux但是这无论如何都不会在非 Linux 计算机之间共享设置,所以如果您需要它跨平台工作,那么只会共享用户文件(并且分区不能是 Ext),但如果这仅适用于 Linux,并且仅适用于一个桌面环境(在您使用的每台计算机上),那么它将正常工作。(即使在同一台计算机上,让不同的桌面环境共享设置也很困难)
打开磁盘实用程序(可以使用启动器访问),您需要输入密码。然后选择闪存驱动器,记下右上角的设备(它应该看起来像 /dev/sdb 或类似的东西)。然后单击“卸载卷”。
然后单击“格式化卷”,最重要的是闪存驱动器上的所有内容都将被删除。在出现的菜单上,单击类型下拉菜单并选择 Ext2,或您选择的任何文件系统(如果您选择其他文件系统,请告诉我,因为挂载和 fstab 需要知道类型)。单击格式化按钮并等待它完成。
步骤1:
这是最简单的方法,将闪存驱动器插入每台计算机并运行,其中cp -r /home/USER /mount/FLASHDRIVE
用户和闪存驱动器是您的主文件夹和闪存驱动器的位置。这也适用于隐藏文件(正如我提到的,它们很重要)。最困难的部分是同名文件将被覆盖,因此请确保您使用的最后一台计算机是您最想要的设置。此外,对于即将进行的测试,添加一个名为的文件It Works
,它不必包含任何内容。
第2步:你应该跳过这一步
当我写最初的回复时,我并没有真正想过这会有多复杂。当我在电脑上测试它时,它不起作用,而且它并不是真正必要的,当你运行它时,你的电脑会发生奇怪的事情,这可能会让你感到困惑。
这只需要在一台计算机上进行测试以确保一切正常。运行sudo umount /dev/sdXY
其中 XY 是您之前获得的设备,后跟 1(因此如果它是 /dev/sdb,则写入 /dev/sdb1)。然后运行以下命令:
sudo shutdown now
mount -t ext2 /dev/sXY /home/USER
telinit 5
关机实际上并不会关闭计算机,而是让您进入单用户模式,这样您就可以处理文件系统而不使用它们,但是您将被注销,因此当系统完全改变时不要感到惊慌。
然后登录,此时您的主文件夹应该是闪存驱动器。如果之前创建的文件现在在您的主文件夹中,则主文件夹必须是闪存驱动器,这样您就可以继续下一步。如果不是,请给我留言。
步骤3:
每次运行计算机时都必须执行此操作sudo gedit /etc/fstab
。然后切换到出现的文本编辑器。(如果您使用的是 KDE,则应将 gedit 替换为 kate 或您使用的任何文本编辑器。然后根据需要将此行添加到文件底部,替换全大写部分。
/dev/sdXY /home/USER ext2 errors=remount-ro 0 1
其中 XY 是您之前获取的设备,后面跟着 1(因此,如果它是 /dev/sdb,则写入 /dev/sdb1)
此时重新启动计算机,闪存驱动器应该已经替换了您的旧主文件夹,所有设置都保存到了驱动器中,驱动器上的所有文件都保存在主文件夹中。您应该检查主文件夹中的“It Worked”文件以确保无误。