29

Windows ワークステーションから Linux アプリを開発するための最適なセットアップは何ですか? 現在、私は SSH 経由で Linux 開発サーバーに接続しており、PuTTY 経由で SSH 経由で転送された Eclipse を使用して、Windows ワークステーションで実行されている Xming のパブリック ドメイン バージョンに接続しています。それは機能しますが、素晴らしいものではありません。Eclipse の応答時間はきびきびとはほど遠く (はるかに遅い Windows ワークステーションでネイティブに実行されている Eclipse よりも明らかに悪い)、いくつかのダイアログ ボックスのサイズを変更できず、フォントを再構成する良い方法を見つけられませんでした。

利用可能なより良いセットアップはありますか?

編集:これは C/C++ 開発用です。

4

15 に答える 15

28

Linux on Windows のオプション:

ツールのみ

Eclipse を使用していることを考えると、完全な IDE が必要であると仮定しますが、GNU/Linux ツールだけでやっていける場合は、いくつかの選択肢があります。

  • cygwinは、X11 サーバーを含む多くのツールを備えた bash シェルを提供します。これはしばらく前からあり、成熟しています。
  • msysは、cygwin のより小型で軽量な代替手段です。
  • Win32 用の GNU ユーティリティは、もう 1 つの軽量な代替手段です。これらはツールのネイティブ バージョンであり、cygwin DLL を必要とする cygwin とは対照的に、そのツールを偽装して Linux 上で実行されていると認識させます。

Windows プロセス内の Linux

仮想化のように PC 全体をシミュレートせずに、Linux を Windows プロセスとして実行するパッケージがいくつかあります。彼らはCooperative Linux、別名 coLinux を使用していますが、これは 32 ビット システムに限定されています。これらには仮想化のオーバーヘッドがなく、仮想 PC を起動していないため起動が高速です。これはもう少し実験的なものであり、一部の仮想化オプションほど安定していない可能性があります。

仮想化

仮想化ソフトウェアを使用すると、ホスト OS とハードウェアを共有する仮想 PC で別の OS を起動できます。これはかなり実証済みです。ここには、特定の状態で Virtual PC のスナップショットを取得したり、仮想 PC を一時停止/再開したりするための優れたオプションがあります。仮想 PC を試し、いくつかのパッケージを追加してから、以前のスナップショットに戻して、 「きれいに始める」。

私の場合...

あなたの環境にはさまざまなパフォーマンス特性があるように聞こえますが、これが私の状況です: Windows ラップトップ (Rails 開発を行っている) で Eclipse から始めましたが、これが遅いことに気づき、パテを使用して高速な Linux ボックスに ssh することに切り替えました。Xmingを使用してWindowsに表示されたLinuxサーバーで実行されているemacsを介して編集を行います。または、Windows でネイティブの emacs を使用して、NFS 経由で共有されるファイルを編集します。後者は、保存が遅いため、私の環境では遅くなります。

自宅で仕事をしているときは、X はリモート クライアントでは遅すぎるのでやめてemacs -nw、パテ ウィンドウ内で実行するだけです。次に、GNU を使用screenして、複数の「ウィンドウ」を用意し、ネットワーク接続が不安定になった場合に中断したところから簡単に再開できるようにします。

于 2009-06-08T13:31:46.443 に答える
7

簡単にセットアップできるオプションは、Eclipse を Windows でネイティブに実行することですが、Samba 共有を介して Linux マシン (別のドライブとしてマウントできます) (SMB がオプションでない場合は SSH/SCP) にコードを展開してから実行します。そこにSSHコンソール経由で。

セットアップが簡単なもう 1 つのオプションは、本格的な X セッションの代わりに、freenxまたは同様のツールを使用して Linux で開発することです。 -linux/11372#11372

他のオプション (仮想化、Windows 内で実行される Linux、Cygwin) は確かに有効ですが、マシンの要求が高い、セットアップが難しい、または実際の Linux 環境と十分に同等ではないなどの欠点がありますが、あなたはマシンを持っており、シナリオはそれらの使用を正当化します。

マシンが Windows の場合、Linux 側ですべてを実行すると、常にいくつかの欠点があります。

私は個人的に、他の全員が Windows を使用し、VM 内で Windows dev を実行する Linux ボックスを持っていますが、多くの RAM とネットワーク設定の手間がかかりました。

于 2009-06-08T13:15:59.937 に答える
7

開発には通常、Windows ボックスで Linux 仮想マシンを使用します。おそらく Linux ユーザーは手を洗うためにトイレに行くことになるでしょうが、私はすべての開発を Visual Studio で行い、仮想マシンを介して G++ を呼び出し、出力を VS 出力ウィンドウにパイプするカスタム Visual Studio プラグインを持っています。 . コンボ ボックスをすばやく変更するだけで、Windows または Linux 用にビルドしてテストできます。

于 2009-06-08T13:18:03.443 に答える
5

coLinuxは、Linux 用の Windows で開発する場合に非常に役立ちます。基本的には、Windows OS と並行して (つまり、サービスとして) 実行される Linux システムであり、基本的に仮想マシンのように LAN 上に表示されるように構成できます。また、CygWin よりもはるかに多くの機能を備えており、そのパフォーマンスは本当に驚くべきものです。coLinux で重要な機能を簡単に実行でき、シミュレーターを 90+ fps で実行できます。

また、coLinux は X11 や gnome/KDE などのウィンドウ マネージャーを実行するように簡単にセットアップできるため、たとえば vnc などを使用して Linux デスクトップにアクセスできます。

Cooperative Linux は、Microsoft Windows 上で Linux をネイティブに最適に実行するための、最初の実用的なフリーでオープン ソースの方法です。より一般的に言えば、Cooperative Linux (短縮名は coLinux) は Linux カーネルのポートであり、単一のマシン上で別のオペレーティング システムと協調して実行できるようにします。たとえば、VMware などの商用の PC 仮想化ソフトウェアを使用せずに、Windows 2000/XP で Linux を自由に実行できます。これは、汎用の PC 仮想化ソフトウェアを使用するよりもはるかに最適な方法です。

colinux スクリーンショット
(出典: colinux.org )

于 2009-06-08T13:16:34.290 に答える
4

私はあなたがやりたいことをまったく同じ理由で行いました:出力を完全に制御し(現在のソリューションでフォントの問題が発生しています)、リモートのLinux開発ボックスよりもはるかに遅いWindowsマシンです。

ほとんどの答えは偽物です。「Linux開発環境」を持つことは、単に「IDEを持つこと」ではありません。それはあなたの指先で全体のUn*xパワーを持つことについてです。

ローカルまたはリモートのLinuxサーバーですか?帯域幅の問題?LAN上では、古い100 MBit / sのLANでさえ、FreeNXは飛ぶからです。そのLinuxサーバーの負荷はどうですか?

Linuxシステムに無料のFreeNXをセットアップし、Windowsマシンとビンゴに無料のFreeNXクライアントをインストールすると、Linux開発環境をすぐに利用できます。

FreeNXはVNCよりもはるかに効率的で、夜の日です(VNCは、Windowsのリモートデスクトップと比較しても、実際にはかなり悪いパフォーマンスです...しかしFreeNXは飛んでいます)。

速度に関しては、ずっと前に、IntelliJ IDEA(別のIDE)を使用してフルタイムで開発していたメインのLinuxワークステーション(当時はPentium 4 / 2GBのメモリでした)をセットアップして、フルサービスを提供していました別の開発者がリモートで表示していたXセッション(ウィンドウマネージャーなどを含む)...別のIntelliJインスタンスを実行します(そしてすべてのUn * x機能にアクセスします)。それはLAN100Mbit / s上にあり、アプリが他の開発者にとってローカルであるかのようでした。

とにかく、今日のハードウェアでは、これがどのように機能しないか想像できません。メインデスクトップとギガビットLANとしてCore 2 Duo/4GBのRAMがあります。

このような設定は4年前は完全に機能していましたが、今日は完全に機能します。

帯域幅に問題がある、アカウントを持っているLinuxマシンに高負荷がかかっている、またはLANにない、と言った場合は、状況が異なる可能性があります...

強力なUn*xシステムを必要としている若い開発者は、私が最近相談している会社(Windowsデスクトップしか持っていない)でどのようにそれを行っていますか?それらのほとんどは、光沢のあるMacBook Proを持ってきて、それを使って開発します;)

于 2010-03-04T20:00:49.273 に答える
4

Cygwinが役立つ場合があります。

于 2009-06-08T13:15:21.547 に答える
3

Linuxベースの開発環境を備えた仮想マシン、またはツールチェーンに依存しないIDEのローカルコピー(例:Notepad ++、可能な限りMinGWまたはCygWinを介してテストを行う)、またはNotepad++で書き込んでアップロードを続ける開発マシンとそこでのテスト、それが私がしていることです。

于 2011-01-03T17:01:56.990 に答える
3

xwin32 やハミングバードなど、Windows 上の他の X サーバーを試すこともできます。これらは商用の実装であることに注意してください。

もう 1 つの解決策は、Windows ボックスに VM サーバーをインストールし、VM に Linux をインストールすることです。オプションには、VMware (非無料) とMicrosoft Virtual PC (無料ダウンロード) があります。VMware は VirtualPC よりもはるかに優れています (64 ビットのサポート、Linux クライアント OS をサポートするインセンティブなど)。

編集:この投稿が最初に作成されてからの過去 13 年間で、Cygwin/X (および Xming) は大幅に改善されました。もう一度試す価値があります。今はまた日常の仕事に使っています。

于 2009-06-08T13:16:38.203 に答える
3

私もxmingを使用していますが、Eclipseでも同じ問題に苦しんでいます。どうやら、どちらも cygwin に切り替えても十分な速度にはなりません。最終的に、xming を介して vim での開発に切り替えました。すべてのキーの組み合わせに慣れるのに恐れていたほど時間はかからず、パフォーマンスは非常にスムーズです。実は今、ネイティブで作業しているときでもvimを使うことがあります。

于 2011-01-03T16:47:30.147 に答える
1

Linux ボックスに svn サーバーをセットアップしてから、TeamCityなどを使用してコミット時にビルドを行うことを検討できます。コードをローカルに記述し、コンパイルしたいときにコミットすることができます。

于 2009-06-08T13:30:24.743 に答える
0

Linuxを使用してください!私は通常、他の問題を抱えています。Linuxでwinを開発することです。そうしない理由はありません。私は今ではほとんどいつも仮想ボックスで勝っています。Linuxには多くの開発ツールが付属しています。

問題は:

グラフィカルインターフェイスですか?

  • いいえの場合、コードがSTD/ポータブルになるとすぐに問題は発生しません。(Xを使用すると、単純なものも使用できますが、今日の優れたアプリケーションには、もう少し必要です。)
  • はいの場合、実行中のプラットフォームに実際にコードを移植すると、多くの問題が発生します。

LinuxとWindowsの間で移植可能/交換可能である必要がありますか?

  • そうでない場合は、ネイティブOSで開発してください。はるかに少ない痛み。両方のプラットフォームにEclipseがあります。後の段階でコードを移植することを考えている場合でも、最初に1つの作業を行ってください。

私はLinuxでいくつかのグラフィカルアプリケーションを開発しましたが、実際には現在Windowsでのみ使用されています。私のレシピはGTK/GNOMEです。cygwinとmingwで実行しました。しかし、Qtも同じ使用可能な環境を持っていると思います。私のコードは変更なしで勝ちました![わかりました。ファイルパスに少し触れましたが、バグでした。]

winライブラリを使用しないことが確実でない限り、winで開発し、Linuxで実行することを希望する方法はありません。つまり、グラフィカルアプリケーションではほとんどチャンスがありません。または多くのチェック...または、勝利機能を使用しません。VisualStudioを忘れてください。

確かにwineとwinehqのページを確認してください。

問題が別のものでない限り、たとえば、チーム共有機能、またはsvnなどを使用します。これはコード開発の問題ではありませんが、組織側ではもう少し問題があります。

結論:無料のコードをwinに移植する方が、独自のコードを自由市場に移植するよりもはるかに簡単です。

于 2011-02-03T01:16:46.877 に答える