Perl + RedHat 5.4にPogoモジュールをインストールできませんでした


0

Personモジュール「use Person;」のインストール方法をアドバイスしてください。私のLinuxマシンでperlスクリプトが使用-オブジェクト指向

なぜ私は次のようになります:

 [root@linux /tmp/Pogo-0.10]# perl Makefile.PL
 Note (probably harmless): No library found for -lg++
 Note (probably harmless): No library found for -lgcc
 Note (probably harmless): No library found for -lclient
 Writing Makefile for Pogo


[root@linux /tmp/Pogo-0.10]# make


g++ -c  -I/usr/local/goods/inc -fno-strict-aliasing -pipe -Wdeclaration-after-statement -    
I/usr/local/include -D_LARGEFILE_SOURCE -Dc
/bin/sh: g++: command not found
make: *** [Pogo.o] Error 127

私のperlスクリプト:

#!/usr/bin/perl


use strict;
use warnings;
use Person;

 my $p = Person->new();

 $p->varName('Anna');

 $p->varAge(30);

 print $p->varName." is ".$p->varAge." years old.\n";

回答:


1

オブジェクト指向Perl

Pogoの学習ではなく、オブジェクト指向Perlの学習に重点を置いている場合は、次のコマンドを実行して、perlの組み込みチュートリアルのいずれかに従うことをお勧めしますperldoc perltoot。これにより、すぐに次の解決策に導かれます。

ファイルPerson.pm

パッケージ人;
厳格な使用;

sub new {
  私の$ self = {};
  $ self-> {NAME} = undef;
  $ self-> {AGE} = undef;
  $ selfを祝福します。
  $ selfを返します。
}

sub varName {
  私の$ self = shift;
  if(@_){$ self-> {NAME} = shift; }
  $ self-> {NAME}を返します
}

sub varAge {
  私の$ self = shift;
  if(@_){$ self-> {AGE} = shift; }
  $ self-> {AGE}を返します
}

1;

ファイルperson.pl

#!/ usr / bin / perl
厳格な使用;
警告を使用します。
使用人;

my $ p = Person-> new();
$ p-> varName( 'Anna');
$ p-> varAge(30);
print $ p-> varName。 "は"。$ p-> varAge。 "歳です。\ n";

実行する:

 $ perl person.pl
 Anna is 30 years old.

Perlモジュール

あなたが尋ねた

Personモジュールのインストール方法

「Person」という名前ではなく、Pogoという名前のモジュールをインストールしているようです。

なぜ私は次のようになります:... /bin/sh: g++: command not found

完全な開発キットがインストールされていないようです。Linuxディストリビューションのドキュメントを確認しましたか?それぞれの異なるディストリビューションには、開発キットのインストールに使用できる独自のパッケージマネージャーがあります。

このcpanコマンドを使用することもできますが、同じ問題が発生する可能性があります。


RHEL開発ツール

「純粋なperl」ではないperlモジュールをインストールするには、CまたはC ++コンパイラと他のいくつかのツールとライブラリが必要です。以下は、RHEL 5.4に一般的に適用されると思われるSlicehostの記事から抜粋したものです(私はCentOSを使用しているため、RHELパッケージをインストールした経験はありません)。

パッケージリポジトリ

RHELには、リポジトリの基本セットが付属しています。

以下を実行して、有効なリポジトリを確認します。

sudo yum repolist enabled

リストされている各リポジトリには、そのソースから入手可能な簡単な説明とパッケージの数が含まれている必要があります。

各リポジトリを指す設定ファイルを確認したい場合、これらはこのディレクトリに保存されます。

/etc/yum.repos.d

そこにあるファイルの1つに目を通すと、各リポジトリには、使用するミラーと使用するgpgキー(および実際にはパッケージの署名をチェックするかどうか)を含む一連の定義があります。

もちろん、必要なときにいつでもリポジトリを追加できますが、注意するだけです。利用可能なリポジトリの一部は公式にサポートされておらず、欠陥が発見された場合にセキュリティ更新プログラムを受け取らない場合があります。

更新

これで、yumが使用するパッケージリストを更新できます。

次のコマンドは、更新されたパッケージのインストールも提供します。すべてのインストールと同様に、リストを注意深く見て、満足したら、「y」を押して続行します。

sudo yum update

アップデートがインストールされたら、いくつかの重要なパッケージのインストールに進むことができます。

開発ツール

RHELには、単一の目的に必要な事前定義プログラムのセットを含む便利なメタパッケージがいくつかあります。

したがって、1ダースの異なるパッケージ名をインストールする代わりに、メタパッケージを1つだけインストールできます。そのようなパッケージの1つは「開発ツール」と呼ばれます。次のコマンドを発行します。

sudo yum groupinstall 'Development Tools'

インストールするプログラムには、gcc、make、patchなどが含まれていることに注意してください。これらはすべて、他の多くのプログラムが正しくインストールされるために必要です。確かにきちんとしたシステム。

「y」を入力してインストールします。

これで、ソースからアプリケーションを構築するために必要なパッケージができました。

完了


CentOS

RHELサブスクリプションの料金を支払って登録していない場合、RedHatパッケージリポジトリにアクセスできない可能性があります。したがって、開発ツールなどのパッケージをインストールすることはできません。これを回避する方法はありますが、賢明な行動方針は代わりにCentOSをインストールすることです-RedHatとほぼまったく同じです(RedHatの商標や著作権で保護された画像などは不要です)が、サブスクリプション料金を支払うことなく使用できる作業リポジトリがあります。


@RedGrittyBrickこんにちは、「フル開発キット」を見つけることができますか?
-yael

@yael、どのLinuxディストリビューションとバージョンを使用していますか?Ubuntu 10.10デスクトップ?もしそうならsudo aptitude update && sudo aptitude install g++
RedGrittyBrick

私のLinux-Red Hat OS
release.5.4

@Yael:RHEL 5.4のyum groupinstall "Development Tools"場合、が必要な場合もありyum groupinstall "Development Libraries"ます。
RedGrittyBrick

しかし、私は得る-yum groupinstall "開発ツール"ロードされたプラグイン:セキュリティグループプロセスのセットアップ警告:グループ開発ツールは存在しません。リクエストされたグループにインストールまたは更新できるパッケージがありません
-yael
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.