1

インターネットにアクセスできないLinuxサーバーがあります(ファイアウォールによってアクセスが阻止されています)。新しいPerlをインストールしたいのですが。私の選択肢は何ですか?これを行うための最良の方法は何ですか?システムPerl(OSインストールに含まれる)は変更しないでおく必要があります。

私はperlbrewを使用していますが、これがオンラインインストールを行うための最良の方法だと思います。しかし、perlbrewに関連するすべての手順には、インターネットアクセスが必要なようです。ネットからダウンロードしたり、ネットから新しいPerlバージョンをダウンロードしたりするなど、オフラインで機能させる方法がわかりません。

perlbrewに問題がない場合は、Perlをソースからサーバー上のカスタムの場所にビルドできます。これは、複雑で時間がかかり、エラーが発生しやすくなる可能性があると思います。そして、Perlを更新するたびに、手動で新しいビルドを作成しました。

私が現在気付いていない他のインストール方法もあります。そしてもちろん、私はシステムPerlを使い続けることができましたが、それは古いバージョンであり、私はすでに新しい構文機能を使用しています。または、perlbrewのインターネットアクセスを許可するようにファイアウォールポリシーを変更するための交渉を開始することもできます。

4

4 に答える 4

5

しかし、perlbrewに含まれるすべてのステップはインターネットアクセスを必要とするようです

適切に構成されていない場合。

perlbrew自体をオフラインでインストールするには、App-perlbrewdistをインストールします。依存関係を手動で追跡するのは面倒なので、代わりにMiniCPANミラー-pPerl distsを含める)を準備し、それをターゲットマシンに引き継いで、ローカルミラーを使用するようにCPANを構成します。実行cpan App::perlbrewしてインストールします。

perlbrewをインストールしたら、そのmirrorコマンドを実行してCPANミラーをに設定します$PERLBREWROOT/Config.pm。このファイルを編集して、ローカルのMiniCPANミラーに変更します。Perlのdisttarballをにドロップし$PERLBREWROOT/dists/ます。


Perlをコンパイルするには、動作するCコンパイラツールチェーンと、オプションでlibdb(BerkeleyDB)およびgdbmの開発ファイルが必要であることに注意してください。(INSTALLperlbrewの自動構成とPerlのconfigure.SHデフォルトではこれらの詳細が隠されていますが、ファイルをもう一度読んでください。)

コンパイラツールチェーンは、他のCのものをコンパイルするためにOSのインストールがすでに使用されていない限り、オフラインで調達するのがおそらくはるかに困難です。

于 2012-04-20T09:06:01.663 に答える
2

perlbrewについて特別なことは何もありません。Perlソースをダウンロードするためにそれを使用するつもりがないのであれば、それはあなたをそれほど節約しません。Perlソースを入手したら、それを構成してインストールするだけです。

% ./Configure -des -Dprefix=/path/to/installation
% make install

完了すると、そのPerlのすべてがそのインストールパスの下にあります。

私はperlbrewが嫌いです。なぜなら、このタスクが驚くほど単純であることが人々から隠されているため、彼らは自分でそれを行うことができないと感じているからです。

于 2012-04-20T11:39:46.433 に答える
1

別の方向から攻撃することを検討しましたか?毎回インターネットアクセスを要求する必要がある場合、これを最新の状態に保つのは面倒です。同様に、CPANミラー内のパッケージを見逃したり、誤って構成したりした場合、実際にそれらを使用しようとすると、修正するのは困難です。

おそらく、Linux +Perl+モジュールを削減した小さなVMを構築するだけです。あなたの側でそれを最新の状態に保ち、USBスティックにすべてを取り入れてください。既知の動作をする、セットアップが簡単なインストールがあります。

于 2012-04-20T09:53:42.363 に答える
0

私が個人的に行っているのは、オフラインのとき(休暇中ではないとき)にgitcheckoutを使用することです。git作業ディレクトリ全体ができたら、タグをチェックしてリリースされたバージョンをビルドするのは簡単です。

git checkout v5.17.4
git clean -f # cleanup previously compiled .o files etc
sh ./Configure ...

git pushホストにファイルを転送する方法によっては、他のコンピューターがそこに新しいコミットを行えるようにプライベートgitリポジトリをセットアップすることもできるため、これは便利です。

于 2012-10-18T06:34:16.517 に答える