Windows에서 개발하고 Linux에서 테스트하고 실행하는 방법?


12

회사의 일부 내부 소프트웨어 (python으로 작성)의 두 개발자 중 한 명입니다. 소프트웨어는 전용 Linux 박스에서 실행되도록 설계된 서버 응용 프로그램입니다. 현재 SVN 저장소를 보유한 하나의 상자가 있으며이 상자는 테스트에도 사용됩니다. 문제는 Windows에서 Eclipse를 사용하여 내 워크 스테이션에서 개발 중이며이 응용 프로그램은 Windows에서 실행할 수 없다는 것입니다.

프로젝트와 코드를 전송하는 데 귀중한 시간을 낭비하지 않고 테스트 할 수 있도록 그러한 환경을 올바르게 구성하는 방법은 무엇입니까?

현재 svn checkout을하고 일부 코드를 변경 한 다음 svn을 통하지 않고 테스트를 위해 개발 서버에 업로드합니다. 서버에서 테스트하고 무언가를 변경하고 다시 테스트하십시오. 모든 것이 커밋됩니다. 이 지속적인 업로드 및 테스트는 나를 미치게합니다. 서버에 프로젝트를 유지하려고했지만 (홈 디렉토리로 체크 아웃) Eclipse에 많은 문제가 발생합니다.

분명히 나는 ​​이것에 대한 경험이 많지 않기 때문에 이런 종류의 문제에 관한 모범 사례가 무엇인지 묻고 있습니다.

답변:


14

Linux 상자에 폴더를 마운트 하십시오. 그렇게하면 코드와 직접 상호 작용할 수 있습니다. 매력을 발휘합니다!


이것이 정답입니다. 특히 Windows 박스에서 Cygwin을 실행할 수 있다면; Cygwin을 사용하여 Linux X-Windows (Gnome, KDE, 요즘 사용하는 멋진 아이들)를 창 상자에 다시 표시 할 수 있습니다. Linux 상자에서 직접 Eclipse로 프로그래밍하여 즉시 테스트 할 수 있습니다.
Kristofer Hoch

3
파일 시스템의 차이점에주의하십시오. Windows는 대소 문자를 구분하는 파일 이름 ( "filename"과 "FILENAME"은 서로 다른 파일), 일부 파일 이름 (예 : "/") 또는 소프트 링크를 지원하지 않습니다.
bitsoflogic

동의하는 것이 가장 유용하고 쉬운 방법입니다. 원하는 방식으로 VM을 구성하면 시간이 너무 많이 걸립니다.
c0ldcrow

@ c0ldcrow : 파일 시스템 문제 외에는 수행중인 작업에 따라 네트워크를 통해 파일을 액세스하여 개발 작업을 수행하는 것이 엄청나게 느릴 수 있습니다. 특히, 일부 버전 제어 시스템은 네트워크 드라이브에서 사용될 때 매우 느리다는 것을 알았습니다.이 특별한 경우는 문제가되지 않습니다 (모든 소스 제어 항목을 로컬로 수행하십시오).
Matthew Scharley

10

내 생각에 가장 좋은 해결책은 로컬 PC에 리소스가있는 경우 테스트를 위해 가상화 환경을 사용하는 것입니다.

특정 제품에 대한 몇 가지 권장 사항은 StackOverflow에 대한 질문에 대한 답변을 볼 수 있지만 일반적으로 현재 컴퓨터 내부에서 두 번째 Linux PC를 실행한다는 의미입니다. 나는 항상 Windows에서 PHP 개발을 위해 이것을 사용하며 그것은 나에게 정말 효과적입니다. SSH / ExpanDrive 와 코드베이스를 공유 하거나 VirtualBox를 사용하는 경우 공유 폴더 를 체크 아웃 할 수 있습니다 .


6

제안 1 : 배울 시간이 있다면 Linux에서 직접 작업하십시오. 다른 운영 체제의 작동 방식을 배우는 것은 개인적인 경험에 정말 유용하며 Linux를 사용하는 방법을 알고 있다는 사실을 CV에 추가해도 아무런 문제가 없습니다. 또한 Eclipse는 Linux에 존재하므로 Windows와 비교하여 아무것도 잃지 않습니다.

제안 2 : Linux를 가상 머신에 로컬로 설치하십시오. 매번 원격 서버에 게시하지 않고도 응용 프로그램을 테스트 할 수 있습니다.

참고 : Windows로 작업하는 경우 Linux를 대상으로하는 응용 프로그램을 어떻게 작성할 수 있습니까? 악몽이야!


테스터가 있더라도 실제로 컴파일 / 실행하는지 확인하는 경우에도 자신의 작업에 대해 제한된 테스트를 수행해야합니다. Windows 상자에서 개발하고 있지만 Linux 응용 프로그램을 개발하는 경우 조금 더 어려워집니다. 어떻게 할 수 있는지에 대해, 올바른 설정으로 쉽게 할 수 있습니다. 필자는 필자의 작업 (Linux 엔드 서버를 대상으로하는 PHP / MySQL)에서 VM을 광범위하게 사용하며 2 개 이상의 모니터를 사용하는 경우 실제로는 실제로 잘 작동합니다.
Matthew Scharley

나는 이미 리눅스에 매우 능숙하다 (테스트와 SVN 서버를 설정했다). 또한 Windows 코딩 (Visual Studio 필요)을 수행하고 일반적으로 Windows를 더 좋아합니다. :) 소프트웨어 개발은 ​​회사의 핵심 사업이 아니며 컴퓨터 보안은 우리가 필요로하는 내부 응용 프로그램 일뿐입니다. VM에 Linux를 설치할 수 있다고 생각합니다
c0ldcrow

@Matthew Scharley : 동의합니다. 두 번째 메모를 제거했습니다.
Arseni Mourzenko

@ c0ldcrow : 따라서이 응용 프로그램을 개발하기 위해 가상 환경을 갖추거나 Windows에서 코드를 작성하는 동안 테스트하는 것만으로도 문제가되지 않아야합니다.
Arseni Mourzenko

2

당신이 일식을 사용하는 경우, 당신을위한 완벽한 플러그인이 있습니다 : Filesync 나는 항상 그것을 사용하고 당신이 그것을 사랑합니다 확신합니다.

여기 내가 당신과 같은 조건에서 일할 때 평소에하는 일이 있습니다.

내 컴퓨터에서 Eclipse를 사용하여 SVN에서 프로젝트를 체크 아웃합니다. 그런 다음 로컬 프로젝트를 .project 등과 같은 파일을 제외하고 원격 dev | test 서버에 동기화합니다. 연결 속도를 높이려면 SSH 키를 원격 서버에 두는 것이 좋습니다.

그리고 voilà! 이제 로컬에서 작업 할 수 있으며 이클립스는 원격 서버에서 수행 한 모든 변경 사항을 자동으로 동기화합니다. 모든 것이 잘 테스트되고 전달 될 준비가되면 이클립스를 사용하여 커밋 할 수 있습니다! 퍼티가 필요 없습니다!

그것이 도움이되기를 바랍니다!


0

Visual Studio에서 c # / mono 코드를 작성하고 GDB 원격 디버거 플러그인을 사용하여 VS 내에서 Linux 상자에서 원격으로 디버깅했습니다. 놀랍도록 잘 작동했습니다. Linux 설치가 로컬 VM (웹에 사용 가능한 멋진 VMWare Ubuntu 어플라이언스가 있음)에 있으면 더 빠르다고 생각하지만 랩톱에 설치되지 않은 Tesla GPU 카드 세트가 필요했습니다.

WinGDB를 찾으십시오. 무료는 아니지만 믿을 수 없을만큼 잘 작동합니다.

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