Страница 1 из 1
** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-26 19:00:45
goshanecr
ОС: FreeBSD 8.0 i386
Выдаётся такая ошибка:
portupgrade -arRn
Код: Выделить всё
** Makefile possibly broken: www/mod_perl:
[: -eq: argument expected
mod_perl-1.31_1
Появилась такая проблема совершенно внезапно... Ну может я комп некорректно выключил, что-то было примерно в эти же дни.
Смотрел Makefile этого порта.. брал с freebsd.org просто заново все файлы порта этого mod_perl. В инете советы с подобными ошибками порт переустановить.. Не понимаю как это может помочь, ведь при работе с портами файлы порта не изменяются.. но сделал, не помогло.
Как это вылечить? Уже несколько раз делал portsnap fetch update, тоже не даёт эффекта. Может уже надо снести папку /usr/ports и portsnap fetch extract?
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 2:46:24
ProFTP
для какого апача ставишь? для певрого?
если для второго, то должно быть www/mod_perl2
если, нет, то порт сбитый, попробуй другой найти
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 2:59:49
goshanecr
Версия апача 1.3.41
Порт не может быть битым, потому как
тут видно что порт не менялся как минимум несколько месяцев, и у меня такой проблемы не было до совсем недавнего времени. Не мог же этот порт быть нормальным, а потом не меняясь стать битым? Да и в
/usr/ports/UPDATING думаю отписались бы.
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 3:02:40
ProFTP
у меня работает:
Код: Выделить всё
# make
===> mod_perl-1.31_1 : Error from bsd.apache.mk. apache22 is installed (or APACHE_PORT is defined) and port requires 1.3.
*** Error code 1
Stop in /home/ports2/ports/www/mod_perl.
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 3:52:04
goshanecr
у меня вот так:
make
Причём дальше не обрывается ошибкой, а идёт сборка порта. Установка, деинсталляция и т.д. А вот portupgrade вылетает.
Как понять, где в этой системе портов что-то нарушилось?
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 3:53:35
ProFTP
goshanecr писал(а):у меня вот так:
make
Причём дальше не обрывается ошибкой, а идёт сборка порта. Установка, деинсталляция и т.д. А вот portupgrade вылетает.
Как понять, где в этой системе портов что-то нарушилось?
логично попробовать другой порт поставить какой-то, если он вылетает, то значит что-то нарушилось...
а зачем ты ставишь mod_perl? скоере всего в CGI можно запустить

Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 11:00:36
goshanecr
Я не ставлю mod_perl. Такая хренотень вылезла при очередном portsnap fetch update && portupgrade -arRn . mod_perl установлен видимо как зависимость чего-то установленного. В других портах ничего подобного нет. Ну в смысле ошибки не лезут при работе с ними.
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 14:59:37
ProFTP
goshanecr писал(а):Я не ставлю mod_perl. Такая хренотень вылезла при очередном portsnap fetch update && portupgrade -arRn . mod_perl установлен видимо как зависимость чего-то установленного. В других портах ничего подобного нет. Ну в смысле ошибки не лезут при работе с ними.
ну и что, что происходит?
обновлять надо по одному порту каждый, порт может бытый и нихрена не обновит portupgrade -arRn
вот попробуй это:
Код: Выделить всё
#!/usr/bin/perl
$nn = 0;
while (1) {
$nn++;
open( OPERN, "portversion |" );
@all = <OPERN>;
if ( $nn > 6 ) {
print "while 6 exit";
exit;
}
foreach (@all) {
my ( $pp, $st ) = split( / /, $_, 2 );
if ( $st =~ '<' ) {
print "UPDATE: $pp\n";
system("portupgrade -f $pp");
} else {
print "ok UPDATE";
exit;
}
}
}
а если много чего не обновленно, то этот:
(но конечно чтобы не очень критично было)
Код: Выделить всё
#!/usr/bin/perl
$nn = 0;
while (1) {
$nn++;
open( OPERN, "portversion |" );
my @all2 = <OPERN>;
close OPERN;
my @all;
for ( $i = 0 ; $i < @all2 ; $i++ ) {
my ( $pp, $st ) = split( / /, $all2[$i], 2 );
if ( $st =~ '<' ) {
push @all, $pp; # $all[$i] = $pp;
}
}
exit if ( !$all[0] || $nn > 2 );
while (1) {
last if !$all[0];
print "$all[0]\n";
logsave( get_time(), $all[0] );
system("portupgrade -rf $all[0]");
# system("portupgrade -Rf $all[0]");
# первый порт попробовать обновить вдоль и поперек
# (выше system нужно закомментировать)
# if ($nn == 1) {
# system("portupgrade -rRf $all[0]");
# } else {
# system("portupgrade -rf $all[0]");
# }
# экспериментально:
# можно добавить чтобы скрипт автоматически нажимал на энтер
# use IO::Select;
# my $select = IO::Select->new;
# for(@array)
# open my $pipe, "|$_";
# $select->add($pipe);
# }
# my @waiters = $select->can_write($timeout);
# print $_ "\x0a" for @waiters;
logsave( get_time(), $all[0] );
shift @all;
my @all = old(@all);
}
}
sub old {
my @all = @_;
open( OPEN2, "portversion |" );
my @all_all = <OPEN2>;
close OPEN2;
my @old;
my @no_old;
foreach my $p (@all_all) {
my ( $pname, $status ) = split( / /, $p, 2 );
if ( $status =~ '<' ) {
push @old, $pname;
}
else {
push @no_old, $pname;
}
}
my %seen;
@seen{@all} = ();
delete @seen{@no_old};
return keys %seen;
}
sub get_time {
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) =
localtime(time);
$mon++;
$year += 1900;
if ( $mday < 10 ) { $mday = "0$mday"; }
if ( $mon < 10 ) { $mon = "0$mon"; }
if ( $min < 10 ) { $min = "0$min"; }
my $date = "$mday $mon $year";
my $time = "$hour:$min:$sec";
my $cur_all_day = $mday + $mon * 30 + $year * 365;
my $radate = "$year-$mon-$mday $hour:$min:$sec";
return $radate;
}
sub logsave {
my ( $time, $ports ) = @_;
my $logfile;
$logfile = "\n time: $time \n ports: $ports \n\n";
system("touch /var/log/portupgrade.log");
open( DB2, "/var/log/portupgrade.log" ) || die "Cannot open file: $!";
my @base = <DB2>;
close(DB2);
open( DB, ">/var/log/portupgrade.log" ) || die "Cannot open file : $!";
print DB @base;
print DB $logfile;
close(DB);
}
http://www.lissyara.su/articles/freebsd ... t_upgrade/
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 15:38:12
goshanecr
Послушай друг, можно я попрошу тебя последовательно ответить на следующие вопросы, чтобы мистику тут не плодить:
1. Как порт этот может
ВДРУГ НИ С ТОГО, НИ С СЕГО стать битым, если последние изменения в этот порт вносились несколько месяцев назад и до недавнего момента с этим портом всё было в порядке, он стоял как зависимость OCS Inventory и не был битым?
2. Не отвечая на предыдущий вопрос, а лишь повторяя раз за разом, что порт может быть битым, ты тем самым предполагаешь что наша всеми любимая ОС FreeBSD имеет некую мистическую способность внезапно помирать?
Решил чтобы как-то избавиться от этой проблемы, снести ocsinventory чтоб зависимостью не ставился этот mod_perl. Так вот в нём при make deinstall также есть сообщение:
Может что-то нарушилось в системе портов? Если я сделаю:
Ничего же ужасного не должно произойти?
Re: ** Makefile possibly broken: www/mod_perl
Добавлено: 2009-12-27 15:43:11
ProFTP
1. Скорее всего
2. А другие порты ставятся?
3. rm -rf /usr/ports можно
вот архив
ftp://ftp2.ua.freebsd.org/pub/FreeBSD/p ... rts.tar.gz
удалить старые и разпаковать новые... или
portsnap fetch extract
ЗЫ если другие ставтся, то значит порты не битые, а битый только этот (вообще-то я не телепат, я не знаю что там у вас, у меня под рукой этого нету....)