2012-03-05 7 views
11

私が開発し、50+スクリプトのバイオインフォマティクスアプリケーションスイートを維持し、その展開プロセスが混乱です:私のperlアプリケーションの展開プロセスをどのように改善すればよいですか?

  • スイート全体が一つの大きなgitリポジトリです。それには多くのCPAN依存性と数十の内部モジュールがあります。
  • 開発プラットフォームはLinuxです。
  • 展開プラットフォームは、Windows(20人以上のユーザー)、Mac(10+)、Linux(2-3)です。ほとんどが「パワーユーザー」ではありません。
  • 私は、イチゴperl +必須モジュール(Windowsの箱にイチゴをインストールし、すべてのモジュールをインストールし、c:\ strawberryを圧縮したもの)用のインストーラ(NSIS製) - 私はこのスイートを必要なモジュールのリストよりもずっと多く更新しました。
  • Macの場合、perl 5.14、すべての必要なcpanモジュール、およびアプリケーションスイートをダブルクリック可能なインストーラにバンドルします。私はperl b/cというシステムを使用していません。これは古くなる傾向があります。私はWindowsのb/cとは違って、すべて一緒にバンドルしています。
  • Linuxの場合は、手動でインストールするのは手作業でしかありません。なぜなら、それらはほんのわずかしかなく、異なるディストリビューションを使用するからです。

これは明らかに、数世代にわたる開発者によって有機的に成長した混乱です。理想的には、内部ライブラリと関連スクリプトのさまざまなグループからcpan-installableディストリビューションを作成し、モジュール依存関係を使用してcpanをインストールしてください。

しかし、私はこれについて最善のアプローチがb/cであるかどうかはまだわかりませんが、私はまだperlそのものを配布する必要があり、CPANに非コマンドラインインターフェイスを書いて、サードパーティのCPANモジュールのデフォルトでは、モジュールを格納する私の "DarkPan"、アップデートなどのプッシュ方法などを指します。

afaikからPerlAppまたはParを使用することはできません。単一のスクリプトをバンドルするためのものであり、それらのスイート全体ではありません。

アドバイスありがとうございます。言及した3つのプラットフォームのほか

答えて

2

(以上、あなたはLinuxの変種数えた場合)、あなたが本当にカップルの異なる問題を抱えて:標準の既知の良好なPerlの実行ファイルとライブラリ(CPANモジュール)の

  1. 展開。
  2. Perlスクリプトとモジュールの配備。

私は以前から、大きなSolaris Perlインストールをサポートしていました。私はしばらくの間、同じCPANモジュールを再利用してLinux Perlのインストールを「横並びに」立ち上げようとしました。うまくいきませんでした。私の大きな問題は、かなりの数のPerlモジュールがコンパイルを必要とすることです。つまり、特定のプラットフォームを対象としています。私はちょうど2つのインストールで終わり、常に両方の領域に新しいCPANモジュールをインストールすることを思い出しました。

私たちは100%Windowsですので、同じ問題はありません。しかし、私たちは共有ネットワークドライブからPerlを実行します。すべてのユーザーがこのドライブをマップし、.PLファイルをPerlのネットワークインストールに関連付けるレジストリスクリプトを実行します。 (this other Perl questionへの私の答えを参照してください。)

マップされたドライブとレジストリスクリプト以外に、ユーザーは何もインストールする必要はありません。 CPANモジュールであっても、ネットワークからピックアップされます。これは、項目#1を解決します(Windowsのみのユーザ用)。

同じことがアイテム#2に当てはまります。スクリプトはネットワークドライブ(同じもの)に保存され、ユーザーは別のレジストリスクリプトを実行してスクリプトPATHにスクリプトフォルダを含めます。私たちはスクリプトを1つの領域で編集し、ユーザーが指し示す領域へのスクリプトのチェックインやリリースに使用する「チェックイン・リリース」(「CINR」)を持っています。ユーザーは、エクスプローラでスクリプトをダブルクリックしたり、DOSで実行したり、エクスプローラなどのコンテキストメニューに追加することもできます(実際には、.NETアプリケーションを使用してドライブをマップし、ユーザーの設定が、それははるかに簡単に行うことができます。)


だから、どのように他のプラットフォーム、Linux、およびMacでこのヘルプはいますか?私がSolaris/Linuxの実験で遭遇したように、Perlのスクリプトとモジュールと同じネットワークドライブに到達できるはずですが、3つのプラットフォームすべてで異なるPerlインストールに悩まされていると思います。

Linuxユーザーの場合、ネットワークドライブでPerlのインストールが正常である可能性があります。おそらくWindowsユーザーよりも簡単です。 Macユーザーは厳しいです。私はホームMacネットワークを管理しており、Mac OS Xでは他のOSと比較してネットワークドライブが非常に難しいと思う。 NFSとSMBドライブをマッピングするのは非常に奇妙な問題があります。 AFPドライブは、ユーザーが手作業でマップするのが少し楽ですが、プログラムでマップするのは簡単ではありません。

私のMacでは、Platypusを試してみることをお勧めします。インターフェイスオプションは出力のみに制限されています(実行時にユーザー入力は許可されません)が、ダブルクリック可能なアプリケーションにスクリプトをバンドルすることは間違いありません。あなたがPlatypusアプリ全体にPerlインストールを置くことができるかどうかは確かではありませんが、もしあなたがそのパスを見つけ出すことができれば、可能性があります。

幸運を祈る!

+0

私はスクリプトの「ユーザー」の多くが異なる組織に属していますが、コンピュータを直接制御することはできません(半数は私と同じ建物にあります)。しかし、カワウソは有望に見える。編集:2番目の考えでは、たとえユーザーの半分であっても、マシン固有のインストールの問題について心配する必要がなければ、その価値はあるかもしれません... – user1481

+0

おそらくあなたのユーザーはあなたのスクリプトの実行に興味があります。言い換えれば、彼らはやりたいこと、彼らはむしろスキップするだろう何かをすることを余儀なくされていません。私は世界中の200人のユーザーのために、それらを実行したいので、セットアップスクリプトを実行して必要なドライブをマップし、.PLファイルなどを関連付けることを望んでいます。これが人々が必要とするものではない走って、この余分なセットアップを通過することはさらに厳しいかもしれません!しかし、Perl、CPANモジュール、およびあなたのカスタムスクリプトとモジュールのセットアップスクリプトやネットワークインストールの中には素晴らしいスタートです。 – jimtut

0

CAVAパッケージャをチェックアウトすることができます。 1つのパッケージで複数のスクリプトを扱うことができます。

関連する問題