15

Perl ベースのソフトウェアを、インターネットに接続されていないネットワーク マシンにインストールする必要があります。したがって、Perl モジュールの特定のバージョンまたは最新バージョンをダウンロードしたいと思います。また、これらのモジュールに必要なインストール手順があるかどうかも知りたいです。

背景:
マシンはセキュリティ上の理由からインターネットに接続されておらず、インターネットも不要と見なされています。

ダウンロードしたモジュールを「インストール サーバー」と呼ぶマシンに配置します。このマシンには Perl ベースのソフトウェアが含まれており、Perl モジュールのローカル コピーも含まれています。

Perl ベースのソフトウェアをインストールしたいマシンを「ターゲット マシン」と呼びますが、これもインターネットに接続されていません。複数のターゲット マシンが存在する可能性があり、それぞれがインストールしたいこのソフトウェアを実行できます。ターゲット マシンにログオンし、ローカル ネットワーク経由でインストール マシンに接続するインストール スクリプトを実行して、Perl ベースのソフトウェアと依存する Perl モジュールを取得し、インストールします。

だから私は知る必要があります:

  1. CGI.pm などの特定のバージョンの Perl モジュールを入手する方法/場所
  2. これらの Perl モジュールのインストール方法。ライブラリ パスなどのどこかのディレクトリに配置し、このディレクトリ パスが @INC ライブラリ パス環境変数に含まれていることを確認するだけの場合ですか?

モジュールのインストールの一環として、make install などを行う必要はありません。モジュールをプリコンパイルまたは必要に応じて準備して、できるだけ簡単にインストールできるようにしたいと考えています。make やその構成などの追加の依存関係を避けたいのですが、その出力を解析して成功したかどうかを確認する必要があります。

インターネットに接続されていない「インストール マシン」と「ターゲット マシン」の概念を変更できないため、上記の特定の質問をして助けてください。この取り決め内で機能するソリューションを提供する必要があります。

4

3 に答える 3

14

「CPANからのものをインストールしたいがネットワークなしで」問題を解決する通常の方法は、DavidDorwardが彼の答えに書いたようにminicpanを使用することです。しかし、クライアント(ターゲット)マシンに実際のインストールをまったく行わず、可能であればプリコンパイルされたモジュールを使用したいということで、さらに一歩進んでいるので、PARをチェックして具体的には、 PAR :: Repository(サーバー)とPAR :: Repository::Clientです。

このアプローチは、理解する前に調査が必要なため、「Foo.pmが必要」のような問題についてはお勧めしません。少数の依存関係と少なくとも少数のクライアントについて話していると、それはより適切なソリューションになります。

それがどのように機能するかの概要については、YAPC :: EU 2008での私の講演のスライドをチェックしてください。また、クライアントでPAR :: Repository :: Clientモジュールを使用可能にするというブートストラップ問題の解決策についてもヒントを示します(ヒント:PAR自己完結型の実行可能ファイルを生成できます)。

于 2009-12-09T13:53:13.437 に答える
11

CPAN のすべての最新バージョンだけを含むMiniCPANを作成できます。CPAN::Mini::Injectを使用して、追加の非公開モジュールをそれに挿入できます。バージョンをより詳細に制御する必要がある場合 (つまり、最新バージョンを選択しない場合)、DPANを作成することをお勧めします。

これらのソリューションのいずれかを使用して、ローカル ソースからプルするように CPAN クライアントを構成できます。それは、事前に知っているディレクトリか、CD やサムドライブのように動的に把握するものです。構成を正しくセットアップするだけの問題です。

ほとんどの作業でオペレーティング システム パッケージを作成するだけで済む場合もありますが、それでも少なくとも最初はコンパイルする必要があります。

于 2009-12-09T15:01:19.703 に答える
6

1) CGI.pm などの特定のバージョンの Perl モジュールを入手する方法/場所

http://search.cpan.org/

最新バージョンが必要ない場合は、ブレッドクラムのリンクから以前のバージョンを入手できます。

http://img.skitch.com/20091209-bu7kt3bj65374k7iijfnhrue2y.png

2) これらの Perl モジュールのインストール方法。ライブラリ パスなどのどこかのディレクトリに配置し、このディレクトリ パスが @INC ライブラリ パス環境変数に含まれていることを確認するだけの場合ですか?

それはうまくいくこともありますが、実際にperl Makefile.PL && make && make test && make installプロセスを経る必要があります。

ただし、これを行うには、すべての依存関係を手動で追跡する必要があります。あなたはおそらくminicpanのようなものを使ったほうがいいでしょう。

于 2009-12-09T11:42:07.123 に答える