用gnu盗用管理dotfiles

2021-05-13 09:33:12

dotfiles是用于配置您在Thecand行(在终端中)运行的应用程序的文本文件。他们可能会告诉您的编辑器使用哪些颜色,或者shell中应定义哪些环境变量。

能够轻松地部署多台机器可以非常方便,以便您使用的应用程序始终如一。

管理您的dotfiles,这些配置文件的集合,然后是aseat做的事情。 github甚至有一个致力于组织和调整它们的不同方式的网站。我最近通过了我的想法是好的方式,似乎并不常见,所以我以为我会分享我在做什么,为什么,以及如何以同样的方式制作你的dotfiles。

让我们说你有一台机器你花了大部分时间,守则你登录了一些服务器.Oon你的本地机器,你有一个系列的dotfiles坐在你的家庭主义中,如〜/ .bashrc,但他们'没有在服务器上。你能做什么?

一个非常常见的方法是创建一个git存储库,在一个名为〜/ .dotfiles的文件夹中说出,然后从存储库中的文件中创建符号链接(或'symlinks')到您的主目录。文件夹是git存储库使得在机器之间同步Files非常容易。

$ mkdir〜/ .dotfiles $〜/ .dotfiles $ git init $"这是一个dotfile。" > mydotfile $ git添加mydotfile $ git commit -m"创建dotfiles存储库"

现在我们在其中有一个存储库和一个dotfile,我们只需要创建语文标准链接。

$〜$ ln -s .dotfiles / mydotfile .mydotfile $ ls -la | grep mydotfile lrwxr-xr-x 1 apearce工作人员19月19日17:05 .mydotfile - > .dotfiles / mydotfile.

最后一个命令显示我们有一个名为.mydotfilepointing的符号链接到dotfiles存储库中的文件。我们可以检查和编辑thelink,好像它是真实文件,但如果我们删除链接,就像它一样真正的fileremains。

这是dotfiles存储库的本质。但是,正如您可以想象的那样,手动链接Dotfiles迅速变为艰苦,更容易出错。一个解决方案是将一个链接到您的文件的脚本,但我认为有更好的方法。

GNU STOP是一个Symlink Farm Manager,它采用位于文件系统上的单独目录中的软版/或数据中的不同包,并使PerseveAp安装在同一位置。

当我第一次读它时,我不明白这意味着什么。我认为它是最好的一个例子。

让我们说我们在我们的〜/ .dotfiles文件夹中,但现在我们添加了一些文件和重组它一点。我们可以使用树命令以纯文本中以树状结构递归地显示附图的内容。 (它未安装在OS X Bydefault上,但您可以使用Brew Install树的Homebrew轻松安装它。-a标志告诉树显示隐藏文件。

$ tree -a〜/ .dotfiles├──bash│├──bashrc│└──。新闻└──vim└──.vimrc

现在我们有一些真正的dotfiles:一对夫妇为bash shell,一个用于vim,编辑器。 我们可以以与以前相同的方式对这些目录讨论这些目录,或者我们可以让盗用给我们! 现在让我们来看看我们的家庭目录中的内容。 $ ls -la〜| grep vimrc lrwxr-xr-x 1 apearce员工20月7日12:35 .vimrc - > .dotfiles / vim / .vimrc 托管为我们创造了符号链接! 魔法。 那么实际发生了什么? 我们运行命令收藏率< dir>,其中< dir> 是我们希望在我们主目录中的符号链接的文件夹的名称。 盗用在该案例中的文件夹< dir>,vim /文件夹,以及foundone文件:.vimrc

STOS创建了一个符号链接到Vim / .vimrc在运行stow命令的位置上面的一个文件夹。

最后一步是很酷的位。托管假定< dir>您指定的内容应该在运行stow命令的位置,因此在〜/ .dotfiles上使用我们的.dotfiles目录使用stop tomanage我们的dotfiles。

盗用的原始目的是管理多个软件版本。让我们有一些名为Foo的软件,有时你想要使用版本1.3,有时你想要使用版本2.0。

大多数shell都将包含/ usr / local / bin在他们的路径中,一个可变的shell shell在哪里寻找程序。您可以在该文件夹中放入两个程序,foo1.3和foo2.0,但您不想记住Torun Foo1.3或foo2.0。你只想运行foo,你不想修改使用foo的脚本,所以你做一些很酷的东西。

$ mkdir / usr / local / lock $ / usr / local / stow $ mkdir -p foo1.3 / bin $ mkdir -p foo2.0 / bin $ mv /usr/local/bin/foo1.3 foo1.3 / bin / foo $ mv /usr/local/bin/foo2.0 foo2.0 / bin / foo

现在,当您想开始使用foo1.3时,您只需使用STOW来设置Somesymbolic链接。

$ / usr / local / stoug $ stow foo1.3 $ ls -la / usr / local / bin | grep foo lrwxr-xr-x 1 apearce工作人员20月7日12:35 foo - > ../stow/foo1.3/bin/foo.

请注意,我们在foo1.3文件夹中有一个目录结构,并且在制作符号链接时捕获该结构的尊重。 当您拥有使用XDG ConfigurationFiles标准的应用程序时,这是有用的,其中foo的配置文件保存在〜/ .config / foo / somefile中,因为那么您的dotfiles存储库使用与主目录中的SleitFolder结构。 $ tree -a〜/ .dotfiles├──bash│├──bashrc│└──.profile├──foo│└──.config│└──foo│└──────────────────────────────────────────────────────────────────── ─.vimrc. 然后,dotfiles文件夹中的运行stous foo将创建一个符号链接〜/ .config / foo / somefile,从而创建notalready存在的任何中间目录。 如果要删除一组符号链接,只需运行STOW -D< dir&gt ;. 托管是管理dotfiles文件夹的简洁方式。如果您需要一个更具体的使用it,可以在github上查看mydotfiles存储库。