dポイントプレゼントキャンペーン実施中!

■はじめに
Perlについて初心者(これから勉強するレベル)ですが、以下、
ご教示程宜しくお願いします。
(現在、サイト等で調査しておりますが、わかっていません。
ここをみてくださいといったサイト(URL)のご紹介でも結構です。)
■質問
(1)UNIXマシン上でOSバンドルのPerlがありますが、
   これとは別のバージョン(上位)をインストールしたいのですが
   まず、このようなこと(同一筐体で複数のPerlを共存させること)はできますでしょうか?
  →Perl・CGIのアプリケーション毎に見るライブラリを
   Perl5.8.0だったり、5.8.3だったりスクリプト上の定義を
  変えるといった対応?

(2)(1)ができる場合、そのインストール~設定・確認手順
  についてご教示願います。

(3)(1)ができる場合、逆に、1つのUNIXサーバに複数のPerl
  があるかどうかを確認する方法を教えてください。

  >Perl -v で行うと、1つしか出ない。
  これは
   (1)本当に1つのバージョンしか存在しない
   (2)複数存在するが、バージョンアップした現在のバージョンが
    表示されている
  の(2)も考えられます。
  そこで、旧バージョン(バージョンアップ前に入っていた
  Perlのバージョンを確認することはできませんか?)

  コマンドベースで教えていただけると助かります。

以上です。

A 回答 (4件)

>perlソース(5.8.0)のダウンロードを行おうとしています。


>OSはHP-UXのため、HPのサイトを見ているのですが対象
>バージョンのソースが見当たりません。
>(OSにバンドルされているものは、公開されていないのでしょうか?)

えーと・・・
ソースをコンパイルするという意味を理解されていますが?
ソースというのはバイナリにする以前のもので、この時点でHP-UX用とかSolaris用とかLinux用という区別はありません。なのでどこから落としてもいいですが、普通はメーカーのサイトには置いてありません。
もし置いてあったとしても、それはその環境用にコンパイルされたバイナリ(もしくはsrpm)でしょうし、HP-UXのような商用OSの場合はサポート契約した人しかダウンロードできないところにあるのではないでしょうか(HP-UXを使ったことがないので不明)。
またOSバンドルされていた旧バージョンのバイナリが手に入ったとしても、おそらく今のより新しいバージョンと同じディレクトリにインストールしようとすると思うので共存は出来ないかもしれません。だから「ソースからコンパイル」するのです。

たぶんこれからの作業でいろいろ問題が起きると思いますが、ネットで検索するスキルを身につけてないと大変ですよ。

一応ダウンロードできるサイトの「一例」を書いておきます。
http://search.cpan.org/~jhi/perl-5.8.0/
    • good
    • 0
この回答へのお礼

長々と小職のような初心者に大変丁寧なご回答をいただきありがとうございました。
これから頑張ってスキルアップに励みます。

以上です。

お礼日時:2007/01/19 17:00

ちょっと勘違いされているかもしれません。


先に言及したモジュールというのはperlスクリプトで使用しているpmというものです。
use DBI; などと呼び出されているモジュールのことです。
なので、コンパイルまでは必要ありません。スクリプト実行時に必要になりますが、どのモジュールが必要かはスクリプト次第です。

コンパイル~インストールに必要なのは「ソース」と呼びます。
インストール後に、
perl -MCPAN -e shell
などで必要なモジュールをインストールできます。
この場合も、新たにインストールしたperlを呼び出すため
/usr/local/bin/perl -MCPAN -e shell
などとすればOKです。

<インストール~環境設定手順(概要)>
 1.perlソース(5.8.0)ダウンロード
 2.サーバへ格納~解凍
 3.configure ~ make ~ make install
 4.アプリ(*.plスクリプトの1行目)に実行環境(3.でインストール・作成したperl bin環境)のパス設定する。
 5.必要なモジュールのインストール

という流れになります。

この回答への補足

大変丁寧なご回答ありがとうございます。
環境設定までの手順について理解いたしました。

下記質問させてください。
 #最後といいながら、すみません。
perlソース(5.8.0)のダウンロードを行おうとしています。
OSはHP-UXのため、HPのサイトを見ているのですが対象
バージョンのソースが見当たりません。
(OSにバンドルされているものは、公開されていないのでしょうか?)

ダウンロード可能なサイトなどおわかりであれば、ご教示程宜しく
お願いいたします。

以上です。

補足日時:2007/01/19 01:17
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
大変参考になりました。
なお、複数Perlを入れようとしましたが、MAKE、インストールにて多数のエラーが出てしまい、今回は断念しました。
(こちらの都合により、あまり既存環境を触れないこと、開発期間の問題等)

別途、別のサーバに新規にPerlを入れる方向で作業を進めることにしました。
また何か不明点等ありましたら投稿させていただきます。

以上です。

お礼日時:2007/02/16 11:27

スクリプト1行目のperlへのパスを書き換えるだけでOKです。


ただし探しにいくディレクトリ(@INC)も変わるので、モジュール類がそこにちゃんと入っているか確認してください。

この回答への補足

lowrider_2005様
 ご回答ありがとうございます。
 机上だけでなく、実際やってみることですね。。
 サンプルや既存で動作しているplスクリプトを参考にしてみます。

最後に質問です。
 既存のperl(5.8.3)とは別に、新規perl(5.8.0※都合により古いですが)をインストールし、新規の方で動作するアプリを作成するにあたり、インストール・設定手順および注意事項がありましたらご教示願います。(特に下部★部分)
<インストール~環境設定手順(概要)>
 1.perlモジュール(5.8.0)ダウンロード
 2.サーバへ格納
 3.installおよびmake
 4.アプリ(*.plスクリプトの1行目)に実行環境(3.でインストール・作成したperl bin環境)のパス設定する。
  ※実行ユーザにおける環境変数の設定でも可
■注意事項
 (1)新規インストール・makeする際、実行環境にモジュール類が全て入っていることを確認 ★
 (2)新規インストール・makeする前に既存のperl環境をバックアップしておく。★

以上です。

補足日時:2007/01/18 19:41
    • good
    • 0

(1)インストールパスを変えれば出来ます。


(2)コンパイル時のオプションで--prefixを付けてディレクトリ指定
(3)findで探すしかないのでは・・
 find / -name perl -print など。
 perl -vで一つしか出ないのは当然です。環境変数(PATH)のディレクトリを順番に探し、最初にあった物が実行されます。なので、
/usr/bin/perl、 /usr/local/bin/perl という2つのperlが存在していたとしても、環境変数で先に書いてあるほうのperlが呼び出されるのです。
findで探し複数のperlが見つかったら、フルパスで叩いてみればわかります。
/usr/bin/perl -v
/usr/local/bin/perl -v

ちなみにモジュールを見に行くディレクトリはperlが勝手に判断してくれます。
perl -V として@INC:に表示されるパスです。
(もちろん都度変更することも可能)

この回答への補足

ご回答ありがとうございます。

(3)findで探した結果、複数のperlが夫々のbin配下にありました。

初歩的で申し訳ございませんが、もう1点確認させてください。

夫々のバージョンでpl(アプリケーション)を起動したい場合は起動(シェル、コマンド等)の頭に実行するperlのPATHを設定若しくは実行ユーザのenvに予めPATHを追加し、どのPerlモジュールを使用するか指定することで可能、と考えて宜しいでしょうか?

以上、ご回答をお待ちしております。

補足日時:2007/01/18 16:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!