방랑 동기화 된 폴더는 대소 문자를 구분하지 않습니다


10

웹 스택의 경우 Windows Server에서 CentOS로 이동하고 있습니다. 개발을 촉진하기 위해 Vagrant를 사용하여 CentOS VM을 로컬에서 실행하고 있습니다. 우리는 Vagrant의 Synced Folders 기능을 사용하여 개발자가 호스트 컴퓨터에서 선호하는 IDE를 사용할 수 있지만이 설정에서 파일 시스템 대 / 소문자 구분 중 하나의 주요 기능이 누락되었습니다.

VM 내부의 동기화 된 폴더는 분명히 호스트 파일 시스템의 속성을 취하므로 Windows 시스템 또는 OSX에서 개발하는 경우 파일 시스템은 대소 문자를 구분하지 않습니다. 프로덕션 서버는 순수한 CentOS이고 파일 시스템 대소 문자를 구분하므로 이는 큰 문제 입니다.

대소 문자 구분은 로컬 VM을 원했던 주요 이유 중 하나입니다. "내 컴퓨터에서 작동합니다!"

우리가 고려하거나 시도한 몇 가지 해결 방법 :

  • lsyncd 를 사용하여 vagrant share에서 대소 문자를 구분하는 VM 내의 위치로 동기화 하십시오.
    • 호스트에서 파일을 업데이트해도 lsync가 수신하는 VM에서 이벤트가 생성되지 않는 것 같습니다
  • 호스트에서 대소 문자 구분 파티션 만들기
    • (Windows에서는 작동하지 않습니다)
  • 삼바 사용
    • 이것은 선택 사항 일 수 있지만 아직 심사하지 않았습니다.

더 좋은 방법이 있습니까? Windows, OS X 및 Ubuntu를 사용하는 개발자가 있으며 솔루션은 모든 곳에서 작동해야합니다.


좋은 질문,하지만 너무 SF I 느낌을 위해 개발 지향 - 당신은 스택 오버플로 더 좋은 행운이있을 수는 : 이주를 위해 플래그 한
크레이그 왓슨

1
솔직히 이것이 개발 용이라는 사실이 크게 중요하지 않기 때문에 SO에 속하지 않는다고 생각합니다. 문제는 방랑자 및 호스트와 관련된 파일 시스템 대소 문자 구분에 관한 것입니다.
phoebus

답변:


6

내 프로젝트 폴더에 스파 스 디스크 이미지를 만들어 대소 문자를 구분하도록 OS X에서이 문제를 해결했습니다.

희소 이미지를 마운트 한 후 코드를 코드로 옮겼습니다. 그런 다음 원래 "src"폴더를 마운트 된 이미지의 심볼릭 링크 / 별칭으로 바꿉니다. 이렇게하면 게스트 OS 내에서 공유 폴더가 대소 문자를 구분합니다.

확실히 가장 우아한 솔루션은 아니지만 배포 환경과 개발 환경 사이의 격차를 좁히기 때문에 처음에 Vagrant를 사용하기 시작했습니다.

아마도 비슷한 해결 방법이 우분투와 Windows에서도 작동 할 수 있습니까?


Windows에는 대소 문자를 구분하는 파일 시스템이 전혀 없습니다.
Michael Hampton

고마워 Jason. 나는 이것을 고려했는데 내 Mac과 우분투에서는 작동하지만 Windows에서는 작동하지 않습니다. 또한 개발 환경을 만들기위한 수동 단계를 추가했습니다.이 환경은 전적으로 vagrant / chef를 사용하여 스크립트를 작성하고 싶었습니다. 그러나 다른 옵션이 없을 수도 있습니다.
Scott Coldwell

2
대소 문자 구분은 MAMP를 사용한 지 몇 년이 지난 후에 Vagrant에 의존 한 주요 이유 중 하나이므로 문제가 남아 있다는 사실에 실망했습니다. 나는 이것이 Vagrant의 문서에 더 명확하게 언급되어 있지 않다는 것을 믿을 수 없다.
Jason Suave

3
@JasonSuave 문제는 실제로 VirtualBox와 Vagrant가 아닌 마운트에 사용되는 문제입니다. Vagrant는 VirtualBox 마운트 만 제어합니다. VMWare에 대해 다른 경험이있을 수 있습니다 ... 시도하지 않았습니다.
Brad

0

똑같은 문제가 발생했으며 해결 방법은 git clone을 통해 VM의 디렉토리를 작업하고 Samba 공유를 추가하여 Windows 또는 Mac에서 액세스 할 수 있도록하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.