その後、その後の質問があります。https://unix.stackexchange.com/a/435293/674
たとえば、バックアップ外付けハードドライブまたはgithubリポジトリにプライベート設定や起動ファイル.profile
(または他の設定や起動ファイル)があるとします。
一時的または恒久的に新しいUbuntuシステムに切り替えるとしましょう。新しいオペレーティングシステムにはデフォルト値があります ~/.profile
。
バックアップファイルを新しいシステムに展開するときは、バックアップファイルとデフォルトファイルを手動でマージする必要がありますか、または新しいシステムのデフォルトファイルをバックアップファイルで上書きできますか?
構成ファイルの基本セクションが古いシステムと新しいシステムの間で異なる可能性があるため、上書きするのが良い考えであるかどうかはわかりません。
展開をより簡単で簡単にするためのベストプラクティスはありますか?
たとえば、手動でバックアップファイルに追加したコマンドのみを含め、それを新しいシステムに展開するときに、新しいシステムのデフォルトのコンテンツファイルをバックアップに追加するのが良いアイデアだと思います。新しいシステムのデフォルトファイルをバックアップファイルへのシンボリックリンクに置き換えます。
ありがとうございます。
答え1
バックアップファイルを新しいシステムに展開するときは、バックアップファイルとデフォルトファイルを手動でマージする必要がありますか、または新しいシステムのデフォルトファイルをバックアップファイルで上書きできますか?
うん必要?技術的にはそうではありません。実はそうです。実際には、通常、マージよりも多くを考慮する必要があります。これは、古いファイルの一部のコマンドが新しいファイルに対して間違っていることを発見し、単に削除する可能性があるためです。
構成ファイルの基本セクションが古いシステムと新しいシステムで異なる可能性があるため、上書きするのが良いアイデアかどうかはわかりません。
一般に、環境設定ファイルには2つの広範なコマンドカテゴリがあります。
- 構成関連設定ソフトウェアと機能ホストで利用でき、
- シェル環境カスタムメイド
後者はシェルバージョン間の非互換性によって引き起こされる可能性がある唯一の問題であるため、転送にはある程度安全です。実際、これらの問題が発生することはほとんどありません。しかし、前者はまったく意味伝達がないかもしれません。
インストールされていないソフトウェアで使用する環境変数を設定したり、実際に存在しないパス要素を追加したりすることは通常有害ではありませんが、デフォルトのシェル起動ファイルの内容を破損した場合、利用可能なソフトウェアにアクセスできない可能性があります。あるいは、より詳細なカスタマイズを実行すると、新しいシステムに付属していないソフトウェアに依存したり、新しいシステムのソフトウェアが要求したように動作しないことがわかります。
展開をより簡単で簡単にするためのベストプラクティスはありますか?
はい。システムは、ユーザー固有のシェル起動ファイルに依存していないか、少なくとも上記の最初の設定を入力しないでください。ユーザー固有のファイルを設定または管理する必要がないユーザーエクスペリエンスを構成するための優れた、よくテストされたメカニズムがあります。理想的には、システムは空でないユーザー固有のシェル起動ファイルをまったく提供しません。
ユーザー側では、シェル環境のカスタマイズを特定のツールやアプリケーション構成から分離することをお勧めします。別のファイルを使用することをお勧めします。理想的には、後者はほとんど必要なく、必要なものはモジュラーであることをお勧めします。
たとえば、手動でバックアップファイルに追加したコマンドのみを含め、それを新しいシステムに展開するときに、新しいシステムのデフォルトのコンテンツファイルをバックアップに追加するのが良いアイデアだと思います。新しいシステムのデフォルトファイルをバックアップファイルへのシンボリックリンクに置き換えます。
~/.profile-Tim
デフォルトファイル(存在する場合)を追加エントリとは別に維持するには、追加エントリをまったく異なるファイル(例:
test -r ~/.profile-Tim && . ~/.profile-Tim
バックアップや転送をしないで、~/.profile
必要に応じて再更新してカスタムコンテンツを入手してください。
ただし、移行する個人用ソフトウェア構成設定が新しい環境に適していない可能性があるため、問題が発生する可能性があります。カスタマイズをモジュラーに保ち、管理しやすくすることができますが、カスタマイズの特性は、基本システムに特定のレベルの特殊性を持つことです。