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

libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-20 22:06:49
Gloft
После обновления libjpeg пересталим запускаться многие программы. Например:

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

% inkscape 
/libexec/ld-elf.so.1: Shared object "libjpeg.so.10" not found, required by "libpoppler-glib.so.4"
% locate libjpeg.so
/usr/compat/linux/usr/lib/libjpeg.so.62
/usr/compat/linux/usr/lib/libjpeg.so.62.0.0
/usr/local/diablo-jdk1.6.0/jre/lib/i386/libjpeg.so
/usr/local/jdk1.6.0/jre/lib/i386/libjpeg.so
/usr/local/lib/libjpeg.so
/usr/local/lib/libjpeg.so.11
/usr/ports/java/diablo-jdk16/work/diablo-jdk1.6.0_07/jre/lib/i386/libjpeg.so
% ls -al /usr/local/lib/libjpeg.so*
lrwxr-xr-x  1 root  wheel      13 20 фев 19:18 /usr/local/lib/libjpeg.so -> libjpeg.so.11
-rwxr-xr-x  1 root  wheel  235640 20 фев 19:18 /usr/local/lib/libjpeg.so.11
% ldconfig -r | grep jpeg
        279:-ljpeg.11 => /usr/local/lib/libjpeg.so.11
        483:-lopenjpeg.2 => /usr/local/lib/libopenjpeg.so.2
Как слинковать ljpeg.11 => /usr/local/lib/libjpeg.so.10?
Или есть решение другое?

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-20 22:27:00
Гость
вывод - не умеешь не берись

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-20 23:06:24
Gloft
Ну да, ну дв.
Волков бояться в лес не ходить.
С вашей позицией мы бы еще в каменных пещерах жили.

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-20 23:41:10
Гость
прежде чем что то делать неплохо бы изучить как и что кто делал до вас
вроде не америку открываете, как лучше обновляться и тем более такая проблема уже на форуме обсудали и не раз

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-20 23:49:17
Case
Поищите по форуму:
http://forums.freebsd.org
запрос: libjpeg, найдется целый ряд всевозможных обсуждений.

Я тоже попал в такую передрягу, пришлось выполнять:

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

sudo portupgrade -fr graphics/jpeg
это заняло целую кучу времени.
Возможно, это было и не лучшим решением.

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-21 0:08:33
Gloft
Именно после обновления
sudo portupgrade -fr graphics/jpeg
многое перестало работать.

Я читал форум http://forums.freebsd.org ничего нового по этому вопросу для себя там не нашол пока.

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-21 7:01:27
hodok
А всё не пробовал обновить, не только эту библиотеку?

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-21 10:33:31
Gamerman
многое перестало работать.
из-за того, что изменилась версия библиотеки. Нужно пересобрать все, что ссылается на нее.

Хотя не понимаю я логику софта, который привязку делает к версии библиотеки, а не к ее названию.

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-21 10:56:04
Gloft
софт пересобирал

Re: libjpeg.so.10 - Проблемы обновления libjpeg

Добавлено: 2010-03-21 11:07:13
ProFTP

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

portupgrade -fRr jpeg

или полностью :)

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

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