Посоветуйте пожалуйста, как установить модуль Person "use Person;" на моей машине linux Использование сценария perl - obj ориентированный

почему я получаю следующее:

 [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 ответ1

1

Объектно-ориентированный Perl

Если вы сосредоточены на изучении объектно-ориентированного Perl, а не на Pogo, я предлагаю вам просто следовать одному из встроенных руководств Perl, выполнив команду: perldoc perltoot . Это быстро приведет вас к следующему решению:

файл Person.pm

package Person;
use strict;

sub new {
  my $self = {};
  $self->{NAME} = undef;
  $self->{AGE}  = undef;
  bless $self;
  return $self;
}

sub varName {
  my $self = shift;
  if (@_) { $self->{NAME} = shift; }
  return $self->{NAME}
}

sub varAge {
  my $self = shift;
  if (@_) { $self->{AGE} = shift; }
  return $self->{AGE}
}

1;

файл person.pl

#!/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";

Запуск это:

 $ perl person.pl
 Anna is 30 years old.

Модули Perl

Вы спрашивали

как установить модуль Person

Вы, кажется, устанавливаете модуль с именем Pogo, а не с именем "Person".

почему я получаю следующее: ... /bin/sh: g++: command not found

Кажется, у вас не установлен полный комплект разработчика. Вы проверили документацию для своего дистрибутива Linux? У каждого отдельного дистрибутива есть свой менеджер пакетов, который вы можете использовать для установки комплекта разработки.

Вы можете попробовать использовать команду cpan но я ожидаю, что у вас может быть та же проблема.


Инструменты разработки RHEL

Для установки модулей Perl, которые не являются "чистыми perl", вам понадобится компилятор C или C++ и некоторые другие инструменты и библиотеки. Нижеследующее извлечено из статьи Slicehost, которая, на мой взгляд, применима в целом к RHEL 5.4 (я использую CentOS, поэтому у меня нет прямого опыта установки пакетов RHEL)

Репозитории пакетов

RHEL поставляется с базовым набором репозиториев.

Посмотрите на включенные репозитории, запустив:

sudo yum repolist enabled

Каждый перечисленный репозиторий должен содержать краткое описание и количество пакетов, доступных из этого источника.

Если вы хотите посмотреть файлы конфигурации, которые указывают на каждый репозиторий, они хранятся в этом каталоге:

/etc/yum.repos.d

Если вы посмотрите один из файлов там, вы увидите, что у каждого репозитория есть набор определений, в том числе какое зеркало использовать и какой ключ gpg использовать (и вообще, нужно ли вообще проверять подпись пакета).

Конечно, вы можете добавить больше репозиториев, когда захотите, но я бы хотел предупредить: некоторые из доступных репозиториев официально не поддерживаются и могут не получать никаких обновлений безопасности в случае обнаружения уязвимости.

Обновить

Теперь мы можем обновить список пакетов, который использует yum.

Следующая команда также предложит установить все обновленные пакеты. Как и во всех установках, внимательно посмотрите на список и, как только вы будете довольны, нажмите «y», чтобы продолжить:

sudo yum update

После установки каких-либо обновлений мы можем перейти к установке некоторых необходимых пакетов.

Инструменты разработки

У RHEL есть несколько удобных метапакетов, которые включают наборы предопределенных программ, необходимых для одной цели.

Таким образом, вместо установки дюжины разных имен пакетов, вы можете установить только один метапакет. Один из таких пакетов называется «Средства разработки». Выполните команду:

sudo yum groupinstall 'Development Tools'

Обратите внимание, что программы, которые должны быть установлены, включают gcc, make, patch и так далее. Все это необходимо для правильной установки многих других программ. Действительно аккуратная система.

Введите 'y' и установите их.

Теперь у нас есть необходимые пакеты, если мы хотим собрать приложение из исходного кода.

Готово


CentOS

Если вы не оплатили подписку RHEL и не зарегистрировали ее, я подозреваю, что у вас может не быть доступа к репозиториям пакетов RedHat. Поэтому вы не сможете установить такие пакеты, как инструменты разработки. Есть способы обойти это, но разумное решение - это установить CentOS вместо этого - он почти такой же, как RedHat (без учета товарных знаков RedHat, изображений, защищенных авторским правом и т.д.), Но имеет рабочие репозитории, которые можно использовать без оплаты абонентской платы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .