# [SOLVED] System z paczek a revdep-rebuild

## BeteNoire

Robi mi się coś takiego przy revdep-rebuild:

```
revdep-rebuild -a

Configuring search environment for revdep-rebuild

Checking reverse dependencies...

Packages containing binaries and libraries broken by a package update

will be emerged.

Collecting system binaries and libraries... done.

  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.

  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...

  broken /usr/lib/libavcodec.so.51.29.0 (requires  libfaad.so.0)

  broken /usr/lib/libcairo.so.2.11.0 (requires  libdirect-0.9.so.25 libdirectfb-0.9.so.25 libfusion-0.9.so.25)

  broken /usr/lib/libclamav.so.2.0.1 (requires  libcurl.so.3)

 done.

  (/root/.revdep-rebuild.3_rebuild)

Assigning files to ebuilds... done.

  (/root/.revdep-rebuild.4_ebuilds)

Evaluating package order... done.

  (/root/.revdep-rebuild.5_order)

Dynamic linking on your system is consistent... All done.
```

System jest instalowany z paczek budowanych na innej maszynce.

Jak widać, polecenie nic nie przebudowuje, chociaż wyszukuje błędy w bibliotekach.

Wszystko działa jak należy tylko zastanawia mnie po co/dlaczego revdep wyświetla "złamane" liby i jak się tego pozbyć.

----------

## timor

Miałem kiedyś coś podobnego i okazało się, że winnych było kilka bibliotek z paczek, których "już" nie miałem w systemie. Ręczne usunięcie odpadów załatwiło sprawę.

----------

## Redhot

Może depclean, a potem revdep-rebuild?

----------

## BeteNoire

Było robione.

----------

## Arfrever

Pokaż wyniki:

```
ls -aFhn /usr/lib/lib{avcodec,cairo,clamav}*

eix "^ffmpeg$|^cairo$|^clamav$"

emerge --info
```

Perduodu linkėjimus

Arfrever

----------

## BeteNoire

Dwa pierwsze

Ostatnie

----------

## Arfrever

 *BeteNoire wrote:*   

> 
> 
> ```
> lrwxrwxrwx 1 0 0   21 VII 16 19:56 /usr/lib/libavcodec.so.51 -> libavcodec.so.51.29.0*
> 
> ...

 

"/usr/lib/libavcodec.*" należą do "media-video/ffmpeg", które już nie jest zainstalowane, więc usuń te pliki.

"/usr/lib/libcairo.so.2.11.0" zostało zainstalowane przez jakąś wcześniejszą wersję "x11-libs/cairo" i z nieznanych przyczyn nie zostało usunięte podczas aktualizacji tego pakietu, więc usuń ten plik.

"/usr/lib/libclamav.so.2.0.1" zostało zainstalowane przez jakąś wcześniejszą wersję "app-antivirus/clamav" i z nieznanych przyczyn nie zostało usunięte podczas aktualizacji tego pakietu, więc usuń ten plik.

Perduodu linkėjimus

Arfrever

----------

## BeteNoire

Co do tych "nieznanych przyczyn"...

Może to być przez "ręczny revdep-rebuild"? Tzn. robię najpierw revdep na maszynie kompilującej, ręcznie robię paczki, potem kopiuję paczki na maszynkę docelową, następnie emerguję je z opcją --oneshot. A robię tak dlatego, że puszczenie revdep-rebuild na maszynie kompilującej nie tworzy paczek, a puszczenie revdep na docelowej nie używa tych paczek.

Dziwne jest jednak to, że nie dotyczy to wszystkich revdepowanych/oneshotowanych paczek...

A przede wszystkim pytanie: dlaczego Gentoo sobie z czymś nie radzi samo i zmusza do ręcznego usuwania plików?   :Twisted Evil: 

(btw. zrobiłem to chyba pierwszy raz od początku używania Gentoo)

----------

## Arfrever

 *BeteNoire wrote:*   

> Co do tych "nieznanych przyczyn"...
> 
> Może to być przez "ręczny revdep-rebuild"?

 

Bezpośrednio, nie.

`revdep-rebuild` tylko wyszukuje pliki odwołujące się do nieistniejących plików lub funkcji, sprawdza do jakich pakietów należa te pliki i uruchamia `emerge` z odpowiednimi argumentami. Ten problem mógł być spowodowany przez jakieś błędy w jakiejś starszej wersji Portage'u. Dawniej wystarczyło zmienić czas modyfikacji pliku na jakiś późniejszy od czasu zarejestrowanego podczas instalacji, by plik nie został usunięty podczas deinstalacji danego pakietu. Na szczęście obecnie istnieje domyślnie włączone FEATURES="unmerge-orphans".

 *BeteNoire wrote:*   

> puszczenie revdep-rebuild na maszynie kompilującej nie tworzy paczek, a puszczenie revdep na docelowej nie używa tych paczek.

 

Może robić te czynności. Poczytaj:

```
revdep-rebuild --help
```

Perduodu linkėjimus

Arfrever

----------

## BeteNoire

Faktycznie, nie zauważyłem przedostatniego zdania:

 *Quote:*   

> Calls emerge, all other options are used for it (e. g. -p, --pretend).

 

ale kto je czyta?   :Twisted Evil: 

Dziwi mnie jednak to, że revdep nie czyta EMERGE_DEFAULT_OPTS, bo przecież w niej mam --buildpkg.

----------

## Arfrever

 *BeteNoire wrote:*   

> Dziwi mnie jednak to, że revdep nie czyta EMERGE_DEFAULT_OPTS

 

Poszukaj "EMERGE_DEFAULT_OPTS" w pliku "/usr/bin/revdep-rebuild".

 *BeteNoire wrote:*   

> przecież w niej mam --buildpkg.

 

Poczytaj o FEATURES="buildpkg" w:

```
man make.conf
```

Perduodu linkėjimus

Arfrever

----------

