2013-06-20 10 views
11

LinuxサーバーにDateTimeマシンをインストールしようとしています。残念ながら、このLinuxサーバーには、CPANシェルを直接使用してコンテンツをダウンロードしたり、cpanminusをインストールしたりすることを妨げる、制限されたネットワークアクセスポリシーがあります。アクセスポリシーを変更することは私がコントロールできないため、回避策を探しています。私はこのLinuxサーバーへのrootアクセスも持っていません。CPANネットワークアクセスのないマシンに多くの依存関係を持つPerlモジュールをインストールします

私は自分の作品のウィンドウマシンに何かをダウンロードし、このサーバのファイル共有にアップロードすることができます。だから、私はDateTime依存関係を一つずつプルダウンし始めました。私はモジュールをダウンロードし、いつかはMakefile.PLを持っていますが、いつかはBuild.PLを持っています。次に、各ビルドまたはMakefileをINSTALL_BASEにリベースし、各モジュールをテストします。私は約20のモジュールのためにそれを行いました。そして、木は視界に終わりのないもっと小さなクラスに拡大するようです...

私はより良い方法を教えてください。すべてのDateTime依存関係のCPANアクセス(つまり、私のWindowsボックス)から1つの巨大なPerlパッケージにダウンロードを開始し、それをLinuxサーバーにアップロードし、(ネットワークアクセスなしで)CPANを実行する方法はありますか?物を正しい場所に置く?ありがとう。はるかに

+2

このロックされたマシンにビルド環境があることを確認しましたか?それが対処するツールがない場合は、配布を転送するのに多くの時間を費やすことになると残念です。 – innaM

答えて

10

最も効率的な方法は、minicpanを作ることです、このようなLinuxマシンとエイリアスlocalcpanm何かにcpanmをインストールします。私はと斑状ネットワークアクセスの長い列車の旅でこの技術を使用している

alias localcpanm='cpanm --mirror file:///Users/Shared/cpan/ --mirror-only' 

大成功。

+0

ありがとうございます。 minicpanを利用してCPANのサブセットのみのミラーを作成する方法がありますか?単一のDateTimeモジュールとそのすべての依存関係に?そして、後で、私たちが興味を持っている追加のモジュールだけをそのミラーに追加することができますか?私はCPAN全体をミラーリングすることは大丈夫だと思いますが、全体より少ないものでできることは良い選択です。 – frank

+0

CPAN :: Mini :: FromListのように見えるかもしれませんが、cpanratingsのレビューは信頼を促しません。 – singingfish

+0

cpanmは、この質問への私の答えに示されている、必要な "ミニパン"を作成することができます –

1

この問題の解決策がいくつかあります。たとえば、Cartonはrubyのバンドラのようです。それ以外の場合はPinto(私が理解しているように)自分のプライベートCPANを目指しています。

1

私が仕事で使う解決策の1つは、perlbrew、1つのPerl +モジュール、アプリごとの開発サーバーとすべてのgit repoを持つことです。 本番マシンでは、gitリポジトリへのアクセスは、タグを使用してアプリケーションを配備し、バージョン間を切り替えるために必要なものです。

7

最初の手順は、すべての依存関係を自動的にダウンロードすることです。

cpanm -L /dev/null --save-dists dists --scandeps DateTime

これは、依存関係のリストの両方を生成しますが、もっと重要なdistsディレクトリにそれらをダウンロードします。あなたのネットワーク接続されているマシン上でこれを行うにはcpanmを使用することができます。 -L /dev/nullは、既にインストールされているモジュールに注意を払わないようにします。

distsを制限付きボックスにコピーします。その後

、ローカルインストールを実行するために、あなたの制限されたボックスにcpanmを使用します。

cpanm --mirror file:///path/to/dists -L foo DateTime

/path/to/distsdistsディレクトリへの絶対パスです。これにより、fooディレクトリにインストールされます。

+0

ありがとう、これは私が探していたものと一致しています。 – frank

関連する問題