web-dev-qa-db-ja.com

MinGW / MSYS + minttyホームディレクトリを変更するにはどうすればよいですか?

MinGW/MSYSのコンソールエミュレータとしてminttyを使用しています。最近(正確にはいつかはわかりませんが)、この組み合わせで使用されるホームディレクトリがWindowsユーザーフォルダー(/c/Users/<me>/)から/home/<me>/に変更されました。

ホームディレクトリを元に戻すにはどうすればよいですか?オンラインで検索しましたが、これまでに見つけた情報はすべてCygwin固有のものであり、MinGW/MSYSにうまく変換されていません。

私がこれまでに追求した最も可能性が高いと思われる道は/etc/passwd/etc/nsswitch.confで、どちらもMSYSのルートにはまったくありません。 /etc/nsswitch.conf行を含むdb_home: windowsを作成しようとしましたが、これは効果がないようです。 mkpasswdがMinGW/MSYSに存在せず、その内容がわからないため、/etc/passwdファイルの作成をまだ試みていません。

私は走っています:

  • Windows 10(アニバーサリーアップデート付き)
  • インストールされているすべてのMinGWおよびMSYSパッケージの最新バージョン
  • …msys-mintty 1.0.3-1-msys-1.0.17を含む
7
Ben Blank

Cygwinとは異なり、MSYSはHOME環境変数に依存しています。 HOME変数を設定または変更するには:

  1. 押す Win-r キーボードの[スタート]メニューから[ファイル名を指定して実行]を選択します。
  2. 「sysdm.cpl」と入力し、[OK]をクリックします。
  3. [詳細]タブを選択し、[環境変数]をクリックします。
  4. [新規...]をクリックして新しいHOME変数を作成するか、既存の変数を選択して[編集...]をクリックします
  5. 完了したら、すべてのウィンドウが閉じるまで[OK]をクリックし続けます。
11
Ben Blank

MSYS2のソリューションは、/etc/nsswitch.confを1行で作成/更新することです

db_home: windows

cygwinのドキュメントで説明されているように https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch-home

その後、構成はMSYS DLLロード時に一度だけ読み込まれるため、すべてのMSYSアプリケーションと端末を閉じる必要があります。( https://cygwin.com/cygwin-ugを参照) -net/ntsec.html#ntsec-mapping-nsswitch 。)

2019年10月の時点で、MSYS2の新規インストールで機能します。おそらく、MSYS 1ではnsswitch.confはサポートされていませんでした。

HOME環境変数の作成はシェルでは機能しますが、sshでは機能しません。シェルは/home/User/.sshにアクセスしようとします。