Windowsで開発し、Linuxでテストして実行する方法は?


12

私は、社内のいくつかの内部ソフトウェア(Pythonで作成)の2人の開発者のうちの1人です。ソフトウェアは、専用のLinuxボックスで実行するように設計されたサーバーアプリケーションです。現在、SVNリポジトリを保持するボックスが1つあり、このボックスはテストにも使用されます。問題は、Windows上のEclipseを使用してワークステーションで開発しているため、このアプリをWindowsで実行できないことです。

このような環境を適切に整理して、プロジェクトとコードの転送に貴重な時間を無駄にしないようにして、テストできるようにする方法は?

現在、私はsvnチェックアウトを行っており、いくつかのコードを変更してから、テスト用に開発サーバーにアップロードしています(svn経由ではありません)。サーバー上でテストし、何かを変更し、再度テストします。すべてがコミットされます。この絶え間ないアップロードとテストは、私を夢中にさせます。プロジェクトをサーバー上に保持しようとしました(ホームディレクトリにチェックアウトします)が、これによりEclipseで多くの問題が発生します。

明らかに私はこれについて多くの経験を持っていないので、この種の問題に関するベストプラクティスは何ですか?

回答:


14

Linuxボックスにフォルダーをマウントします。そうすれば、コードを直接操作できます。魅力的です!


これは正しい答えです。特に、WindowsボックスでCygwinを実行できる場合。Cygwinを使用して、Linux X-Windows(Gnome、KDE、最近のクールな子供が使用しているものは何でも)をウィンドウボックスに表示できます。LinuxボックスでEclipseを直接プログラミングし、すぐにテストできます。
クリストファーホッホ

3
ファイルシステムの違いに注意してください。Windowsは、大文字と小文字を区別するファイル名(「filename」と「FILENAME」は2つの異なるファイル)、ファイル名としての一部の文字(つまり「/」)、またはソフトリンクをサポートしていません。
bitsoflogic

同意する、これは実装するのに最も便利で簡単なオプションです。VMを思い通りに設定するには、時間がかかりすぎます。
c0ldcrow

@ c0ldcrow:ファイルシステムの問題を除いて、何をしているのかによっては、ネットワーク経由でファイルにアクセスして開発作業を行うのが非常に遅くなることに注意してください。特に、一部のバージョン管理システムはネットワークドライブで使用すると非常に遅いことに気づきましたが、この特定のケースは問題になりません(すべてのソース管理をローカルで行います)。
マシューシャーリー

10

私の意見では、ローカルPCに実行するリソースがある場合は、仮想化環境をテストに使用するのが最良のソリューションです。

特定の製品に関するいくつかの推奨事項については、StackOverflowの質問に対する私の答えを見ることができますが、一般的に、これは、現在のPC内で2台目のLinux PCを実行することを意味します。私はこれをWindowsでのPHP開発に常に使用しており、私にとって非常にうまく機能しています。コードベースをSSH / ExpanDriveと共有するか、VirtualBoxを使用している場合は共有フォルダーをチェックアウトします


6

提案1:学習する時間があれば、Linuxで直接作業してください。別のオペレーティングシステムがどのように機能するかを学習することは、個人的な経験にとって本当に素晴らしいことであり、Linuxの使用方法を知っていることを履歴書に追加しても害はありません。また、EclipseはLinuxに存在するため、Windowsと比べて何も失われません。

提案2:Linuxを仮想マシンにローカルにインストールします。毎回遠くのサーバーに公開することなく、アプリケーションをテストできます。

注:Windowsを使用している場合、Linuxを対象とするアプリケーションをどのように作成できますか?悪夢です!


テスターがいる場合でも、実際にコンパイル/実行されるかどうかを確認するだけの場合でも、自分の作業で限定的なテストを行う必要があります。Windowsボックスで開発しているのにLinuxアプリケーションを開発している場合、これは少し難しくなります。どのようにそれを行うことができるかについては、適切なセットアップで行うのは十分簡単です。私は自分の仕事でVMを広範囲に使用しています(LinuxエンドサーバーをターゲットとするPHP / MySQL)。実際に動作します。
マシューシャーリー

私はすでにLinuxに非常に優れています(テストとSVNサーバーをセットアップしました)。また、Windowsコーディング(Visual Studioが必要)を行い、一般的にWindowsが好きです:)ソフトウェア開発は私の会社の中核ビジネスではありません。LinuxをVMにインストールすることを受け入れることができると思う
-c0ldcrow

@マシュー・シャーリー:そうですね。2番目のメモを削除しました。
アルセニムルゼンコ

@ c0ldcrow:したがって、このアプリケーションを開発するためだけに(またはWindowsでコードを記述しながらテストするためだけに)仮想環境を用意することは問題になりません。
アルセニムルゼンコ

2

Eclipseを使用している場合は、完璧なプラグインがあります。Filesync 私はいつもそれを使用しているので、きっと気に入っていただけると思います。

私はあなたと同じ条件で働いているので、通常私がすることはここにあります。

私のマシンでEclipseを使用してSVNからプロジェクトをチェックアウトします。次に、.projectなどのファイルを除外して、ローカルプロジェクトをリモートdev | testサーバーに同期します。また、接続を高速化するために、リモートサーバーにSSHキーを配置することをお勧めします。

そしてほら!これでローカルで作業できるようになり、Eclipseはリモートサーバーで行った変更を自動的に同期します。すべてが十分にテストされ、配信の準備ができたら、Eclipseを使用してコミットすることもできます!パテは必要ありません!

それが役に立てば幸い!


0

Visual Studioでc#/ monoコードを記述し、GDBリモートデバッガープラグインを使用して、VS内からLinuxボックスでリモートデバッグできました。驚くほどうまくいきました。LinuxのインストールがローカルVMにある場合(Webには素敵なVMWare Ubuntuアプライアンスがあります)は高速になると思いますが、ラップトップにインストールされていないTesla GPUカードのセットが必要でした。

WinGDBを探します。無料ではありませんが、非常にうまく機能します。

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