Vagrant同期フォルダーは大文字と小文字を区別しません


10

私たちのWebスタックでは、WindowsサーバーからCentOSに移行しています。開発を容易にするために、Vagrantを使用してCentOS VMをローカルで実行しています。Vagrantの同期フォルダー機能を使用して、開発者がホストマシンでお気に入りのIDEを使用できるようにしていますが、このセットアップにはファイルシステムの大文字と小文字の区別という重要な機能が1つ欠けています。

VM内の同期フォルダーは明らかにホストのファイルシステムのプロパティを取得するため、WindowsマシンまたはOSXから開発している場合、ファイルシステムでは大文字と小文字が区別されません。本番サーバーは純粋なCentOSであり、ファイルシステムで大文字と小文字が区別れるため、これは大きな問題です。

大文字と小文字の区別は、ローカルVMが必要な主な理由の1つです。「自分のマシンで動作します!」

検討または試したいくつかの回避策:

  • lsyncdを使用してvagrant共有から大文字と小文字を区別するVM内の場所に同期します
    • ホスト上のファイルを更新しても、lsyncがリッスンするVMでイベントが生成されないようです
  • ホストで大文字と小文字を区別するパーティションを作成します
    • (Windowsでは機能しません)
  • サンバを使う
    • これはオプションかもしれませんが、まだ検証していません。

もっと良い方法はありますか?Windows、OS X、Ubuntuを使用する開発者がいるため、ソリューションはどこでも機能する必要があります。


良い質問ですが、SFには開発指向すぎると思います。StackOverflowの方が幸運かもしれません。移行のフラグを立てました:)
Craig Watson

1
正直なところ、これは開発用であるという事実はほとんど重要ではないので、SOには属していません。問題は、迷惑なゲストとホストに関連するファイルシステムの大文字と小文字の区別についてです。
フェーバス2013年

回答:


6

私は、プロジェクトフォルダーにスパースディスクイメージを作成し、大文字と小文字を区別するようにフォーマットすることで、OS Xの問題を回避しました。

スパースイメージをマウントした後、コードをそのイメージに移動しました。次に、元の「src」フォルダを、マウントされたイメージへのsymlink / aliasに置き換えました。これにより、ゲストOS内で共有フォルダーの大文字と小文字が区別されます。

間違いなく最もエレガントなソリューションではありませんが、展開と開発環境の間のギャップを埋めるので、そもそもVagrantを使い始めました。

おそらく、同様の回避策がUbuntuとWindowsでも機能しますか?


Windowsには、大文字と小文字が区別されるファイルシステムがまったくありません。
マイケルハンプトン

ジェイソン、ありがとう。私はこれを考えました、そしてそれは私のMacとubuntuで動作しますが、Windowsでは動作しません。また、完全にvagrant / chefを使用してスクリプトを作成することを望んでいた、開発環境を作成するための手動の手順も追加されます。ただし、別のオプションがない場合があります。
スコットコールドウェル2013年

2
MAMPを何年も使用して以来、大文字と小文字の区別がVagrantを使用した主な理由の1つであるため、問題が解決されないことに本当に失望しています。これがVagrantのドキュメントでもっと明確に述べられていないとは信じられません。
Jason Suave 2013年

3
@JasonSuave問題は実際にはVirtualBoxにあり、Vagrantではなくマウントに何が使用されるかです。VagrantはVirtualBoxマウントのみを制御しています。あなたはVMWareで異なる経験をしているかもしれません...私は試していません。
ブラッド14

0

私は同じ問題に遭遇し、それに取り組んだ方法は、git cloneを介してVMの作業ディレクトリを取得し、それを指すSamba共有を追加して、WindowsまたはMacの両方からアクセスできるようにすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.