Страница 1 из 1

Убил "Правильный ОС"

Добавлено: 2009-11-26 7:29:58
goshanecr
Привет товарищи!
На днях лбновился до 8.0-PRERELEASE. Делал так:

Код: Выделить всё

make -j6 buildworld
make buildkernel KERNCONF=MY
make installkernel KERNCONF=MY
reboot
make installworld
После этого всё норм (даже без пересборки всех портов), одна проблема это hald поджирает проц.
Поискав в интернете, нашёл что в 8-ке libusb имеется в системе, поэтому порт такой не нужен. Надо удалить libusb из портов, затем почистить старые библиотеки от 7-ки.

Код: Выделить всё

make delete-old
make delete-old-libs
На все вопросы ответил да.
и затем пересобрать hal.
Пересобирая hal получаю вот что:

Код: Выделить всё

probe-hiddev.c: In function 'main':
probe-hiddev.c:81: error: 'USB_GET_REPORT_ID' undeclared (first use in this function)
probe-hiddev.c:81: error: (Each undeclared identifier is reported only once
probe-hiddev.c:81: error: for each function it appears in.)
gmake[5]: *** [probe-hiddev.o] Error 1
gmake[5]: Leaving directory `/usr/ports/sysutils/hal/work/hal-0.5.11/hald/freebsd/probing'
gmake[4]: *** [all-recursive] Error 1
gmake[4]: Leaving directory `/usr/ports/sysutils/hal/work/hal-0.5.11/hald/freebsd'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/usr/ports/sysutils/hal/work/hal-0.5.11/hald'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/ports/sysutils/hal/work/hal-0.5.11/hald'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/sysutils/hal/work/hal-0.5.11'
gmake: *** [all] Error 2
*** Error code 1

Stop in /usr/ports/sysutils/hal.
*** Error code 1

Stop in /usr/ports/sysutils/hal.
*** Error code 1

Stop in /usr/ports/sysutils/hal.
Ну я попробовал

Код: Выделить всё

cd /usr/ports/sysutils/hal
make deinstall
после перезагрузки не работают никакие программы из портов. Ругаются на отсутствие разных библиотек, которые видимо и были удалемы при make delete-old
например:

Код: Выделить всё

/usr/local/etc/rc.d/mpd5 restart
mpd5 not running? (check /var/run/mpd5.pid).
Starting mpd5.
/libexec/ld-elf.so.1: Shared object "libwrap.so.5" not found, required by "mpd5"
На всякий случай пересобрал ещё раз мир (думал может библиотеки новые установятся и поправится дело) но не помогло. Пересобрать все порты не удаётся, идёт такая вот ругань:

Код: Выделить всё

serv# portupgrade -af
No such file or directory - /var/db/pkg/hal-0.5.11_26/+REQUIRED_BY
Command failed [exit code 1]: /usr/local/sbin/pkgdb -aFOQ
Подскажите друзья пожалуйста как починить ОСю?

Re: Убил "Правильный ОС"

Добавлено: 2009-11-26 7:45:17
goshanecr
Что-то непонятно.. ещё раз перезагрузился, теперь зашёл в sysutils/hal make install clean сработало. portupgrade -af после этого тоже работает... ну видимо подожду пересборки всего что есть.

Re: Убил "Правильный ОС"

Добавлено: 2009-11-26 7:58:02
ProFTP
если не получиться. то попробуй тут почитать http://www.lissyara.su/?id=1957

вот так можно обновить 100%, обновит без телодвижений и масимально быстро

Код: Выделить всё

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

        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);
}

 

Re: Убил "Правильный ОС"

Добавлено: 2009-11-26 8:45:17
ADRE
hal обнови )

Re: Убил "Правильный ОС"

Добавлено: 2009-11-26 12:39:45
manefesto
надо грохнуть libusb, он теперь включен в базовую систему.
Привет зЁма.

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 11:13:50
H079CH
была у меня похожая проблемка, решал вот так:
ee /etc/libmap.conf, и через пробел старая - новая....
пример:
libmd.so.4 libmd.so.5
libcom_err.so.4 libcom_err.so.5
libopie.so.5 libopie.so.6

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 11:34:15
goshanecr
Товарищи! Спасибо, всё уже и так пересобирается вроде без проблем. Вопрос у меня такой, как бы сделать чтобы при пересборке всего как-нибудь отвечалось автоматом на вопросы типа: dovecot сейчас запущен, остановить ли его перед переустановкой? Ещё постфикс тоже спрашивает activate in mailer.conf. Как от этих вопросов избавиться? А то запустил portupgrade -af и забыл на день а сегодня смотрю он собака стоит и ждёт ответа :)

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 12:04:00
ProFTP
по-моиму никак :)

можно посмотреть http://search.cpan.org/~adamk/IPC-Run-0 ... IPC/Run.pm
может что-то получиться, т.е. тогда когда он ждет, то нажать энтер автоматом


чтобы окошко вылазило, то

Код: Выделить всё

WITCH=BATCH=yes
BATCH=yes

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 13:50:55
manefesto
не, batch тут не поможет

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 16:59:54
ProFTP
как-то так, точно что-то может получиться....

Код: Выделить всё

my $select = IO::Select->new;
for(@array)
    open my $pipe, "|$_";
    $select->add($pipe);
}
my @waiters = $select->can_write($timeout);
print $_ "\x0a" for @waiters;

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 18:05:03
qwerty_sequence
Если Вы собирали мир с это опцией -j6 наверное следует инсталить его тоже с ней?

Re: Убил "Правильный ОС"

Добавлено: 2009-11-27 19:11:05
Neus
qwerty_sequence писал(а):Если Вы собирали мир с это опцией -j6 наверное следует инсталить его тоже с ней?
поржал

Re: Убил "Правильный ОС"

Добавлено: 2010-01-01 16:32:33
ski
goshanecr писал(а):Товарищи! Спасибо, всё уже и так пересобирается вроде без проблем. Вопрос у меня такой, как бы сделать чтобы при пересборке всего как-нибудь отвечалось автоматом на вопросы типа: dovecot сейчас запущен, остановить ли его перед переустановкой? Ещё постфикс тоже спрашивает activate in mailer.conf. Как от этих вопросов избавиться? А то запустил portupgrade -af и забыл на день а сегодня смотрю он собака стоит и ждёт ответа :)

Код: Выделить всё

yes | portupgrade -af
не поможет, случайно?

Re: Убил "Правильный ОС"

Добавлено: 2010-01-01 17:22:49
zg
goshanecr писал(а):make delete-old-libs
это можно делать только после пересборки всего софта на обновлённой машине
ProFTP писал(а):по-моиму никак
конкретно порт-апгрейд можно

Код: Выделить всё

%man portupgrade | col -b | grep -i batch
     --batch                Run an upgrading process in a batch mode (with
                            BATCH=yes).
qwerty_sequence писал(а):Если Вы собирали мир с это опцией -j6 наверное следует инсталить его тоже с ней?
нельзя ставить мир в несколько потоков, поскольку порядок установки имеет значение
ski писал(а):не поможет, случайно?
нет, не поможет, лучше обратитесь к ману

Re: Убил "Правильный ОС"

Добавлено: 2010-01-03 21:10:45
FreeBSP
/usr/ports/misc/compat7x

Re: Убил "Правильный ОС"

Добавлено: 2010-03-28 14:16:43
adminnu
Мне помогло portinstall hal