GNU/Linux >> Linux の 問題 >  >> Linux

そのすべてがドットファイルにあります-YADMとHomeshick

バックアップは重要です。バックアップは非常に重要です。バックアップは愛であり、バックアップは人生です。何年にもわたって、データを安全に保つことの基本的な価値について話してきました。つまり、複数のコピー、複数の場所を意味します。最近、tarとgpgを使用して独自のクイック'n'ダーティセットアップを作成する方法についても話しました。これは、データとアプリケーションの両方の設定をカバーしています。後者といえば...

これについてもう少し詳しく見ていきましょう。複数のコンピューターがある場合、システムを頻繁に再インストールする場合、または複数のホスト間で一貫した構成を使用したい場合は、アプリケーション設定を管理する方法に関心があるかもしれません。 Linuxでは、ほとんどのソフトウェアは、最上位(/ home / username)または.configサブディレクトリ内のホームディレクトリ内の隠しファイルに構成を保持します。いずれにせよ、それらはたくさんある可能性があります。常にコピーがあることを確認する必要があります。問題が発生した場合は、簡単に適切なチェックポイントに戻すことができます。 YADMとHomeshickの紹介。

さらに別のDotfilesManager(YADM)

名前は刺激的ではありませんが、プログラムには高貴な使命があります。構成ファイルのバージョン管理されたコピーを保持できるように設計されているため、柔軟で堅牢なセットアップが可能です。この概念は、設定を自動推測しようとするソフトウェアとは異なります。すべての構成ファイルを個別に処理する必要があるという点で、上記の手動のワンライナーに似ています。ただし、DIYの設定では、データのコピーを常に保持する必要があり、これは面倒な場合があります。さらに、どの特定のバックアップに適切な変更が含まれているかが必ずしもわからない場合があります。

YADMは、バックグラウンドでgitを使用して、時間的な深さの要素を導入することを目的としています。基本的に、独自の構成を独自のリポジトリにコミットします。これにより、バージョン履歴、差分など、必要なすべての要素が提供されます。では、どのように機能するか見てみましょう。

スタートは有望でした。 YADMを実行していて、ファイルを追加できました:

roger @ matrix:〜$ yadm add .ssh
roger @ matrix:〜$ yadm add .gnupg

しかし、ファイルをコミットしようとすると、YADMは私が誰であるかわからないと不平を言いました:

roger @ matrix:〜$ yadm commit

***あなたが誰であるか教えてください。

実行

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

アカウントのデフォルトIDを設定します。
--globalを省略して、このリポジトリにのみIDを設定します。

致命的:電子メールアドレスを自動検出できません('roger @ matrix。(none)'を取得しました)

このエラーは一種の不必要です。プログラムは、ファイルを追加する前に、ユーザーが識別したかどうかを確認できます。さらに、間違ったメールアドレスや名前で識別した場合、どうなるかわかりません。これは後で認証にどのように影響しますか?リスクを冒さないことにしたので、ローカルホストを使用してこの段階を通過し、コミットすることができました。

roger @ matrix:〜$ git config --global user.email "[email protected]"
roger @ matrix:〜$ git config --global user.name "Roger Bodger"

yadm commit-m"テストは最初のバッチをコミットします"
[master(root-commit)fe99215]テストは最初のバッチをコミットします
2つのファイルが変更され、0の挿入(+)、0の削除(-)
作成モード100644.gnupg/pubring.kbx
作成モード100644.gnupg/ trustdb.gpg

しかし、その後、最後のステップは私を困惑させました-実際のプッシュ。はい、私はgitがどのように機能するかを知っています。つまり、実際には、ネットワーク(LANまたはインターネットなど)で利用可能なgitを実行するサーバーが必要です。その場合、セットアップが複雑になり、モジュール式の独立したオフラインファイルを実際に保持できないため、柔軟性が低下します。

ドキュメントを読むのに少し時間を費やしましたが、ワークフローがかなり面倒であることがわかりました。おそらく私は本当に明白な何かを見逃しているかもしれませんが、私はまた、素晴らしいソフトウェアの自明の単純さを信じています。私がすぐに素晴らしい経験をしていなかったという事実は、質問がなく、これが異なる脳のパターンを持つ解決策であり、したがって私のものである必要があることを意味します。

ホームシック

これはSeanConneryのお気に入りのgitベースのバックアップソフトウェアだと思うかもしれませんが、冗談はあなたにあります、ハハ!これは、現在非推奨となっているRubyベースのHomesickドットファイルシンクロナイザーソフトウェアのシェルスクリプトバージョンです。このツールのBASHに満ちた性質により、構成と使用が簡単になります。

私は指示に従いました、そして確かに、セットアップは簡単です。ただし、ホームディレクトリの.bashrcファイルの最後にスクリプトソースを追加する必要もあります。そうしないと、ツールを実行するために完全な適切なパスを使用する必要があります。

現在、Homeshickはgitとsymlinkingを組み合わせて動作します。基本的に、追加したファイルはすべてリポジトリにシンボリックリンクされます。ファイルを「削除」したい場合はどうなりますか?とにかく、リポジトリは実際には城と呼ばれます(デフォルトはCASTLEです)。

homeshick
homeshickは、シンボリックリンクと連携してgitを使用して、貴重なドットファイルを追跡します。

使用法:homeshick[オプション]タスク

タスク:
homeshick cd CASTLE#城に入る
homeshick clone URI ..#URIをクローンとしてhomeshickの城
homeshickはCASTLEを生成します。#城のリポジトリを生成します

ただし、手順は十分に明確ではありません。最初のコマンドをすぐに実行すると、エラーが発生します。

homeshick cd CASTLE
bash:cd:/home/roger/.homesick/repos/CASTLE:そのようなファイルやディレクトリはありません

スクリプトはリポジトリがあるかどうかをチェックしないため、リポジトリを生成する必要があることを警告しません。これは大きな問題ではありませんが、使いやすいデフォルトの設定、または少なくともユーザーがそれを整理できるようにするための警告がない理由はありません。

homeshick generate CASTLE
generate CASTLE


はじめになど

homeshick list
CASTLE
homeshick https://github。 com / andsens / homeshick.git

既存のリポジトリのリストを見ると、作成者のものもあります。とにかく、私はスクリプトの使用を続けました。基本的には手作業です。内部に移動するリポジトリとファイルを指定すると、正しい場所にシンボリックリンクされます(例:

)。

homeshick track CASTLE〜/ .profile〜/ .gnupg
track .profile
track .gnupg / trustdb.gpg
track .gnupg / pubring.kbx

次のステップは、変更をコミットしてから、リポジトリにプッシュすることです。これにより、YADMと同様に、このスクリプトのオンライン性が実現します。もちろん、独自のサーバー構成を使用する場合を除きます。些細なことではなく、ドキュメントを参照する必要がありました。最終的には、cd CASTLE、git commit、git push、すべての取引を実行します。つまり、ある意味で、homeshickは一連のgitコマンド(ブランチなど)を抽象化します。これは以前の試みと同じように困惑していることがわかったので、ソフトウェアは主に開発者向けに設計されていると思います。

奇妙なエラーもいくつかありました。レポリフレッシュのように。それは本当に何をしますか?ローカルリポジトリにアップストリームが実際にない場合、ローカルリポジトリが古くなっているとどのように判断しますか?また、ファイルがどういうわけか上書きされるのではないかと恐れていましたが、その後どうなりますか?

ホームシックリフレッシュ
時代遅れの城
時代遅れのホームシック
リフレッシュ城城、ホームシックは時代遅れです。
プル? [yN]

アップストリームがありませんCASTLEをプルできませんでした。アップストリームがありません
ホームシックをプルします

結論

私の頭脳は間違いなくソフトウェア開発者の頭脳ではありません。そのため、gitのようなツールはまったく友好的ではありません。人間指向ではなく機械指向のソフトウェアのように感じられ、本来よりも複雑に感じられます。同様に、YADMとHomeshickは、ホームディレクトリの構成に関する質問に対する理想的な解決策として私を驚かせません。手動で行う必要があり、それをバックアップ(アーカイブ)にコミットする必要がある場合は、柔軟性と制御性を高めて、手動で適切に行う方がよいでしょう。

これら2つのツールが何を解決しようとしているのかを理解しています。複数のシステムで完全に同期され、バージョン管理されたセットアップを使用することをお勧めします(プルおよびプッシュ手順をスクリプト化して、すべてをバックグラウンドでスムーズに実行できます)が、どちらのプログラムも同様です。オタク、そして彼らはよりエレガントな初期構成とより良いエラーチェックを持っている必要があります。最後に、プライバシーの問題があります。本当に重要なファイルをそのようにオンラインリポジトリにプッシュしたいですか?セキュリティレベル、暗号化レベル、そして愚かな穴なしにセットアップをタイトでスマートにする能力に満足していますか?したがって、私の当初の探求では、rsync、tar、およびgpgの単純さが、ホームディレクトリのバックアップに対する私の好ましいソリューションであり続けていると思います。しかし、あなたが若いgitであり、私のような古いgitではない場合は、これが好きかもしれません。どうぞ。


Linux
  1. Setxkbmapを使用して左シフトと左コントロールを入れ替えますか?

  2. 「du-sh*」と「du-sh./*」の違いは?

  3. 一致するまですべてのファイルを表示しますか?

  1. .exrcと.vimrcの違いは?

  2. ディレクトリとそのすべてのサブディレクトリ内の文字列を grep する方法は?

  3. を除くすべてのファイルを一覧表示するコマンド。 (ドット) と .. (ドット ドット)

  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. ファイルを gunzip して .gz ファイルを保持するにはどうすればよいですか?

  3. Web ページのすべての外部リンクを抽出してファイルに保存するにはどうすればよいですか?