
■はじめに
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のバージョンを確認することはできませんか?)
コマンドベースで教えていただけると助かります。
以上です。
No.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/
長々と小職のような初心者に大変丁寧なご回答をいただきありがとうございました。
これから頑張ってスキルアップに励みます。
以上です。
No.3
- 回答日時:
ちょっと勘違いされているかもしれません。
先に言及したモジュールというのは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にバンドルされているものは、公開されていないのでしょうか?)
ダウンロード可能なサイトなどおわかりであれば、ご教示程宜しく
お願いいたします。
以上です。
ご回答ありがとうございました。
大変参考になりました。
なお、複数Perlを入れようとしましたが、MAKE、インストールにて多数のエラーが出てしまい、今回は断念しました。
(こちらの都合により、あまり既存環境を触れないこと、開発期間の問題等)
別途、別のサーバに新規にPerlを入れる方向で作業を進めることにしました。
また何か不明点等ありましたら投稿させていただきます。
以上です。
No.2
- 回答日時:
スクリプト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環境をバックアップしておく。★
以上です。
No.1
- 回答日時:
(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モジュールを使用するか指定することで可能、と考えて宜しいでしょうか?
以上、ご回答をお待ちしております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- Perl perlについて 2 2022/11/18 19:38
- Ruby WIN11にオフイスを複数入れることは可能でしょうか 4 2023/04/04 21:05
- その他(Microsoft Office) Excel、Wordのファイル 3 2023/05/07 04:58
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Image::Magickのインストールに...
-
XAMPPでApacheが起動しない
-
ビルドとインストールの違いが...
-
makeしようとするとcolon expec...
-
Excel VBA 定義されたプロージ...
-
Excel VBAでリンク切れをチェッ...
-
LCD ディスプレイを Raspberry ...
-
「デバイスは PRN を初期化でき...
-
モジュールの最大数はいくつな...
-
プロキシ経由でjavamailを使っ...
-
ユーザー定義関数に#NAME?が返...
-
AddressOf と同じ機能を持った...
-
例外処理のフローチャートの記...
-
UWSCのスクリプトにラグが発生...
-
EXCELのVBAで、あるワークシー...
-
Excel VBAで、ユーザーフォーム...
-
ExcelでTelnetを動かしたい
-
Excel VBA 『Call』で呼び出す...
-
プログラムの「生産性」について
-
SMTP-AUTH でメール送信
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PerlにてCPANを使用し、モジュ...
-
sys/wait.hが見つかりません
-
Perl モジュールのアンインスト...
-
Windows版のPerlについて
-
同一筐体におけるPerlの複数バ...
-
Net::Telnetモジュールをインス...
-
Perlモジュールのインストール...
-
ビルドとインストールの違いが...
-
lib/*.pm というファイルに必要...
-
XAMPPでApacheが起動しない
-
ActivePerlが起動しない
-
Cygwin インストール Perlを使...
-
makeしようとするとcolon expec...
-
Image::Magickのインストールに...
-
perlからMicrosoft Visual Stud...
-
perlでppmを利用せずPKGを手動...
-
PerlMagickで「JPEG」、「PNG」...
-
Pythonのバージョンアップについて
-
CGIがエラーになります。
-
Pythonでタートルが使えません
おすすめ情報