Windows端末のdebian wslでvagrant upを実行する方法

Windows端末のdebian wslでvagrant upを実行する方法

vagrant upWindows端末でDebian WSLを実行したいです。放浪者を設置しました。

/mnt/c/HS_DEV/Homestead$ vagrant --version

わかりました。

ワンダラー 2.2.6

私が実行すると、vagrant up次のようになります。

The executable 'cmd.exe' Vagrant is trying to run was not
found in the PATH variable. This is an error. Please verify
this software is installed and on the path.

だから私はWindowsターミナル構成でデフォルトのcmd.exeの代わりにdebian.exeを試してみましたが、それでも機能しません。どのように走ることができますかvagrant up?この質問はどこから来たのでしょうか?

私はpowershell、cmd.exe、およびgitbashを使うとうまくいくことがわかりましたが、Debian WSLでこれを行いたいと思います。

ベストアンサー1

完全な公開 - 私はVagrantを使用していませんが、過去にWSLと同様のPATH問題を経験しており、これがあなたの問題に対する解決策になることを願っています。

まず、私はあなたがWSLの説明ホームレスのため。その場合、2つのバージョンのVagrantがインストールされています。最初のバージョンはWindowsのバージョンです(PowerShellとcmdで実行していると述べた後)。文書に示すようにVagrant Windowsインストールで提供されているvagrant.exe実行可能ファイルはWSLからアクセスできますが、期待通りには実行されません。

したがって、この指示に従った場合返品.debファイルを介してWSLインスタンスにDebianバージョンをインストールします。

しかし、WSLは実際にDebianバージョンを使用していますか?おそらくそうではありません。 Windowsバージョンもインストールされており、WSLはWindowsパスをWSLパスの前に「効果的に」追加するため、vagrant upWSL / Debian内で実行するとvagrantパス内の最初のパス(おそらくWindowsバージョン)を見つけることができます。これは実際には、WSLとインストールされたツールのWindowsとLinuxの両方のバージョンで非常に一般的な問題です。

which vagrantDebian内で実行して実行可能ファイルがあるかどうかを確認してください。 Windows版なら、これが犯人であることを願っています。

私が知っている限り、いくつかの可能な解決策があります。

  1. パスからWindowsノードを削除するか、少なくともLinuxバージョンに高い優先順位を付ける起動スクリプト(bashrcや選択したシェルに対応するものなど)を作成します。

  2. 作る/etc/wsl.confそして…

    [interop]
    appendWindowsPath = false
    

    これは削除されますみんなWSL セッションの Windows パスです。欠点は、いくつかの便利なWindowsユーティリティがWSLパスになくなったが、起動スクリプトからいつでも手動で再追加できることです。少なくとも、スクリプトの観点からは、パスを手動で削除するよりも簡単になります。

  3. もはや必要なく、Linux/WSL バージョンのみを使用したい場合は、Windows Vagrant をアンインストールできます。

おすすめ記事