# automatyczne --skipfirst --resume

## Eeeyeore

Mam takie pytanko , bo za chiny nie mogę wyglowkowac rozwiazania tego malutkiego problemiku, a mianowicie, jestem szalencem i korzystam z 

ACCEPT_KEYWORDS="~x86"

Wiadomo, ze cos moze sie zadrzyc ze pojdzie nie tak. Sa bugi i bugsiki, a ja tez mocarzem intelektualnym nie jestem....

Ale wcale tak nie jest zle....

Wczoraj robilem #emerge -uDNe world (hmm ponad 600 pakietow)

I przeszlo bez mialkniecia, ale nie do konca 3 x stanelo i musialem robic

#emerge -uDNe --skipfirst --resume

Jak by mozna zrobic zeby w przypadku wlasnie padnietego pakietu automatycznie i samo robilo sie --skipfirst --resume

A ja bym sobie pozniej popatrzyl w log zeby sprawdzic co sie nie zemergizowalo i zastanowil sie co poszlo nie tak...?

Czy ktos moglby mnie naprowadzic na rozwiazanie tego porblemu ?

Bo tak zostawil bym sobie aktualizacje systemu na sobote niedziele a w poniedzialek zajrzalbym do loga , poprawil i dokonczyl ewentualna aktualizacje "worlda" 

 :Question: 

----------

## BeteNoire

```
emerge costam ; emerge --skipfirst --resume ; emerge --skipfirst --resume
```

I tak kilkanaście razy, jeśli przewidujesz, że Ci się często będzie wywalać   :Laughing: 

Więcej w man bash, sekcja "Listy".

----------

## Aktyn

Tyko że czasem dlasze emergowanie może nie mieć sensu, masz trzy pakiety A B C

C zależy od B, B zależy od A. Komilacja A sie nie powiodła. Po co wiec emrgować B i C.

Oczywiście z drugiej strony przecież są pakiety D E F itd Wiec zawsze też już byłoby to zrobione.

I można je po weekendzie te A B C doszlifować.

W sumie nie ukrywam że też przydałoby sie oczywiście logować, co poszło OK a co nie tak.

Ale jak zemergujesz A bo wywaliłoby błąd, to trzaby znależć i przekomilować B i C

----------

## YANOUSHek

Hmm...

można spróbować coś takiego:

```
emerge uDe world;

result="";

while $result != "emerge: It seems we have nothing to resume..."; do

  result=`emerge --skipfirst --resume`;

done
```

Oczywiście skrypt trzeba przerobić tak, żeby działał :P -- napisałem na poczekaniu.

 EDIT

A może coś takiego:

```
emerge -uDe world;

while (( 1 )); do

  emerge --skipfirst --resume && break;

done
```

Tylko trzeba sprawdzić jaki wynik zwraca emerge --resume.

----------

## Eeeyeore

Kurcze jestem cieniasem w Bash-u, ale obiecuje kupic ksiazke i sie naumiec...

Ale raz ze mam pecha bo po --syncu przeemergizowalo sie 20 pakietow bez zadnego bledu do konca.

A po drugie to ten Twoj skrypcik wpada w petelke i po skonczonej pracy zaczyna od zera....

W każdym razie na razie ja mam problem z glowy bo system zaktualizowany, ale problem pomijania istnieje, dlatego nie solveduje.

Moze ktos cos jeszcze wymysli, ja wroce do problemu za jakis miesiac.

Fajnie by go bylo rozwiazac.

Bo skoro nie widac problemu -> to znaczy ze go nie ma

CU

PS Log z emerge wyglada normalnie nie ma o czym gadac tak mi sie wydaje poza tym ze wpada w petelke..

```

1144142365: Started emerge on: Apr 04, 2006 11:19:25

1144142365:  *** emerge --update --deep --newuse world

1144142372:  >>> emerge (1 of 20) x11-libs/libXfont-1.1.0 to /

1144142372:  === (1 of 20) Cleaning (x11-libs/libXfont-1.1.0::/usr/portage/x11-libs/libXfont/libXfont-1.1.0.ebuild)

1144142372:  === (1 of 20) Compiling/Merging (x11-libs/libXfont-1.1.0::/usr/portage/x11-libs/libXfont/libXfont-1.1.0.ebuild)

1144142496:  >>> AUTOCLEAN: x11-libs/libXfont

1144142502: === Unmerging... (x11-libs/libXfont-1.0.0)

1144142503:  >>> unmerge success: x11-libs/libXfont-1.0.0

1144142503:  === (1 of 20) Post-Build Cleaning (x11-libs/libXfont-1.1.0::/usr/portage/x11-libs/libXfont/libXfont-1.1.0.ebuild)

1144142503:  ::: completed emerge (1 of 20) x11-libs/libXfont-1.1.0 to /

1144142503:  >>> emerge (2 of 20) app-text/ghostscript-esp-8.15.1-r1 to /

1144142503:  === (2 of 20) Cleaning (app-text/ghostscript-esp-8.15.1-r1::/usr/portage/app-text/ghostscript-esp/ghostscript-esp-8.15.1-r1.ebuild)

1144142504:  === (2 of 20) Compiling/Merging (app-text/ghostscript-esp-8.15.1-r1::/usr/portage/app-text/ghostscript-esp/ghostscript-esp-8.15.1-r1.ebuild)

1144142796:  >>> AUTOCLEAN: app-text/ghostscript-esp

1144142801: === Unmerging... (app-text/ghostscript-esp-8.15.1)

1144142803:  >>> unmerge success: app-text/ghostscript-esp-8.15.1

1144142803:  === (2 of 20) Post-Build Cleaning (app-text/ghostscript-esp-8.15.1-r1::/usr/portage/app-text/ghostscript-esp/ghostscript-esp-8.15.1-r1.ebuild)

1144142803:  ::: completed emerge (2 of 20) app-text/ghostscript-esp-8.15.1-r1 to /

1144142803:  >>> emerge (3 of 20) app-text/poppler-0.5.1-r1 to /

1144142803:  === (3 of 20) Cleaning (app-text/poppler-0.5.1-r1::/usr/portage/app-text/poppler/poppler-0.5.1-r1.ebuild)

1144142803:  === (3 of 20) Compiling/Merging (app-text/poppler-0.5.1-r1::/usr/portage/app-text/poppler/poppler-0.5.1-r1.ebuild)

1144142958:  >>> AUTOCLEAN: app-text/poppler

1144142963: === Unmerging... (app-text/poppler-0.5.1)

1144142964:  >>> unmerge success: app-text/poppler-0.5.1

1144142964:  === (3 of 20) Post-Build Cleaning (app-text/poppler-0.5.1-r1::/usr/portage/app-text/poppler/poppler-0.5.1-r1.ebuild)

1144142964:  ::: completed emerge (3 of 20) app-text/poppler-0.5.1-r1 to /

1144142964:  >>> emerge (4 of 20) media-libs/lcms-1.15 to /

1144142964:  === (4 of 20) Cleaning (media-libs/lcms-1.15::/usr/portage/media-libs/lcms/lcms-1.15.ebuild)

1144142964:  === (4 of 20) Compiling/Merging (media-libs/lcms-1.15::/usr/portage/media-libs/lcms/lcms-1.15.ebuild)

1144143053:  >>> AUTOCLEAN: media-libs/lcms

1144143058: === Unmerging... (media-libs/lcms-1.14-r1)

1144143059:  >>> unmerge success: media-libs/lcms-1.14-r1

1144143059:  === (4 of 20) Post-Build Cleaning (media-libs/lcms-1.15::/usr/portage/media-libs/lcms/lcms-1.15.ebuild)

1144143059:  ::: completed emerge (4 of 20) media-libs/lcms-1.15 to /

1144143059:  >>> emerge (5 of 20) media-libs/libmng-1.0.8-r2 to /

1144143059:  === (5 of 20) Cleaning (media-libs/libmng-1.0.8-r2::/usr/portage/media-libs/libmng/libmng-1.0.8-r2.ebuild)

1144143060:  === (5 of 20) Compiling/Merging (media-libs/libmng-1.0.8-r2::/usr/portage/media-libs/libmng/libmng-1.0.8-r2.ebuild)

1144143138:  >>> AUTOCLEAN: media-libs/libmng

1144143143: === Unmerging... (media-libs/libmng-1.0.8-r1)

1144143145:  >>> unmerge success: media-libs/libmng-1.0.8-r1

1144143145:  === (5 of 20) Post-Build Cleaning (media-libs/libmng-1.0.8-r2::/usr/portage/media-libs/libmng/libmng-1.0.8-r2.ebuild)

1144143145:  ::: completed emerge (5 of 20) media-libs/libmng-1.0.8-r2 to /

1144143145:  >>> emerge (6 of 20) media-libs/mesa-6.4.2-r3 to /

1144143145:  === (6 of 20) Cleaning (media-libs/mesa-6.4.2-r3::/usr/local/xgl-coffee/media-libs/mesa/mesa-6.4.2-r3.ebuild)

1144143145:  === (6 of 20) Compiling/Merging (media-libs/mesa-6.4.2-r3::/usr/local/xgl-coffee/media-libs/mesa/mesa-6.4.2-r3.ebuild)

1144143334:  >>> AUTOCLEAN: media-libs/mesa

1144143339: === Unmerging... (media-libs/mesa-6.5.0_p20060326)

1144143341:  >>> unmerge success: media-libs/mesa-6.5.0_p20060326

1144143341:  === (6 of 20) Post-Build Cleaning (media-libs/mesa-6.4.2-r3::/usr/local/xgl-coffee/media-libs/mesa/mesa-6.4.2-r3.ebuild)

1144143341:  ::: completed emerge (6 of 20) media-libs/mesa-6.4.2-r3 to /

1144143341:  >>> emerge (7 of 20) kde-base/kdelibs-3.5.2-r1 to /

1144143341:  === (7 of 20) Cleaning (kde-base/kdelibs-3.5.2-r1::/usr/portage/kde-base/kdelibs/kdelibs-3.5.2-r1.ebuild)

1144143342:  === (7 of 20) Compiling/Merging (kde-base/kdelibs-3.5.2-r1::/usr/portage/kde-base/kdelibs/kdelibs-3.5.2-r1.ebuild)

1144149584:  >>> AUTOCLEAN: kde-base/kdelibs

1144149589: === Unmerging... (kde-base/kdelibs-3.5.2)

1144149597:  >>> unmerge success: kde-base/kdelibs-3.5.2

1144149597:  === (7 of 20) Post-Build Cleaning (kde-base/kdelibs-3.5.2-r1::/usr/portage/kde-base/kdelibs/kdelibs-3.5.2-r1.ebuild)

1144149597:  ::: completed emerge (7 of 20) kde-base/kdelibs-3.5.2-r1 to /

1144149597:  >>> emerge (8 of 20) sci-libs/fftw-3.1.1 to /

1144149597:  === (8 of 20) Cleaning (sci-libs/fftw-3.1.1::/usr/portage/sci-libs/fftw/fftw-3.1.1.ebuild)

1144149598:  === (8 of 20) Compiling/Merging (sci-libs/fftw-3.1.1::/usr/portage/sci-libs/fftw/fftw-3.1.1.ebuild)

1144150437:  >>> AUTOCLEAN: sci-libs/fftw

1144150442: === Unmerging... (sci-libs/fftw-3.1)

1144150446:  >>> unmerge success: sci-libs/fftw-3.1

1144150446:  === (8 of 20) Post-Build Cleaning (sci-libs/fftw-3.1.1::/usr/portage/sci-libs/fftw/fftw-3.1.1.ebuild)

1144150446:  ::: completed emerge (8 of 20) sci-libs/fftw-3.1.1 to /

1144150446:  >>> emerge (9 of 20) app-text/enchant-1.2.5 to /

1144150446:  === (9 of 20) Cleaning (app-text/enchant-1.2.5::/usr/portage/app-text/enchant/enchant-1.2.5.ebuild)

1144150446:  === (9 of 20) Compiling/Merging (app-text/enchant-1.2.5::/usr/portage/app-text/enchant/enchant-1.2.5.ebuild)

1144150515:  >>> AUTOCLEAN: app-text/enchant

1144150520: === Unmerging... (app-text/enchant-1.2.3)

1144150521:  >>> unmerge success: app-text/enchant-1.2.3

1144150521:  === (9 of 20) Post-Build Cleaning (app-text/enchant-1.2.5::/usr/portage/app-text/enchant/enchant-1.2.5.ebuild)

1144150521:  ::: completed emerge (9 of 20) app-text/enchant-1.2.5 to /

1144150521:  >>> emerge (10 of 20) kde-base/kdemultimedia-3.5.2-r1 to /

1144150521:  === (10 of 20) Cleaning (kde-base/kdemultimedia-3.5.2-r1::/usr/portage/kde-base/kdemultimedia/kdemultimedia-3.5.2-r1.ebuild)

1144150522:  === (10 of 20) Compiling/Merging (kde-base/kdemultimedia-3.5.2-r1::/usr/portage/kde-base/kdemultimedia/kdemultimedia-3.5.2-r1.ebuild)

1144153904:  >>> AUTOCLEAN: kde-base/kdemultimedia

1144153909: === Unmerging... (kde-base/kdemultimedia-3.5.2)

1144153913:  >>> unmerge success: kde-base/kdemultimedia-3.5.2

1144153913:  === (10 of 20) Post-Build Cleaning (kde-base/kdemultimedia-3.5.2-r1::/usr/portage/kde-base/kdemultimedia/kdemultimedia-3.5.2-r1.ebuild)

1144153913:  ::: completed emerge (10 of 20) kde-base/kdemultimedia-3.5.2-r1 to /

1144153913:  >>> emerge (11 of 20) kde-base/kdeaddons-3.5.2-r1 to /

1144153913:  === (11 of 20) Cleaning (kde-base/kdeaddons-3.5.2-r1::/usr/portage/kde-base/kdeaddons/kdeaddons-3.5.2-r1.ebuild)

1144153914:  === (11 of 20) Compiling/Merging (kde-base/kdeaddons-3.5.2-r1::/usr/portage/kde-base/kdeaddons/kdeaddons-3.5.2-r1.ebuild)

1144155762:  >>> AUTOCLEAN: kde-base/kdeaddons

1144155767: === Unmerging... (kde-base/kdeaddons-3.5.2)

1144155770:  >>> unmerge success: kde-base/kdeaddons-3.5.2

1144155770:  === (11 of 20) Post-Build Cleaning (kde-base/kdeaddons-3.5.2-r1::/usr/portage/kde-base/kdeaddons/kdeaddons-3.5.2-r1.ebuild)

1144155770:  ::: completed emerge (11 of 20) kde-base/kdeaddons-3.5.2-r1 to /

1144155770:  >>> emerge (12 of 20) app-text/poppler-bindings-0.5.1-r1 to /

1144155770:  === (12 of 20) Cleaning (app-text/poppler-bindings-0.5.1-r1::/usr/portage/app-text/poppler-bindings/poppler-bindings-0.5.1-r1.ebuild)

1144155771:  === (12 of 20) Compiling/Merging (app-text/poppler-bindings-0.5.1-r1::/usr/portage/app-text/poppler-bindings/poppler-bindings-0.5.1-r1.ebuild)

1144155873:  >>> AUTOCLEAN: app-text/poppler-bindings

1144155879: === Unmerging... (app-text/poppler-bindings-0.5.1)

1144155880:  >>> unmerge success: app-text/poppler-bindings-0.5.1

1144155880:  === (12 of 20) Post-Build Cleaning (app-text/poppler-bindings-0.5.1-r1::/usr/portage/app-text/poppler-bindings/poppler-bindings-0.5.1-r1.ebuild)

1144155880:  ::: completed emerge (12 of 20) app-text/poppler-bindings-0.5.1-r1 to /

1144155880:  >>> emerge (13 of 20) media-libs/libexif-0.6.13-r1 to /

1144155880:  === (13 of 20) Cleaning (media-libs/libexif-0.6.13-r1::/usr/portage/media-libs/libexif/libexif-0.6.13-r1.ebuild)

1144155881:  === (13 of 20) Compiling/Merging (media-libs/libexif-0.6.13-r1::/usr/portage/media-libs/libexif/libexif-0.6.13-r1.ebuild)

1144155929:  >>> AUTOCLEAN: media-libs/libexif

1144155935: === Unmerging... (media-libs/libexif-0.6.12-r4)

1144155936:  >>> unmerge success: media-libs/libexif-0.6.12-r4

1144155936:  === (13 of 20) Post-Build Cleaning (media-libs/libexif-0.6.13-r1::/usr/portage/media-libs/libexif/libexif-0.6.13-r1.ebuild)

1144155936:  ::: completed emerge (13 of 20) media-libs/libexif-0.6.13-r1 to /

1144155936:  >>> emerge (14 of 20) app-text/gnome-spell-1.0.7-r1 to /

1144155936:  === (14 of 20) Cleaning (app-text/gnome-spell-1.0.7-r1::/usr/portage/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild)

1144155936:  === (14 of 20) Compiling/Merging (app-text/gnome-spell-1.0.7-r1::/usr/portage/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild)

1144155998:  >>> AUTOCLEAN: app-text/gnome-spell

1144156003: === Unmerging... (app-text/gnome-spell-1.0.6)

1144156006:  >>> unmerge success: app-text/gnome-spell-1.0.6

1144156006:  === (14 of 20) Post-Build Cleaning (app-text/gnome-spell-1.0.7-r1::/usr/portage/app-text/gnome-spell/gnome-spell-1.0.7-r1.ebuild)

1144156006:  ::: completed emerge (14 of 20) app-text/gnome-spell-1.0.7-r1 to /

1144156006:  >>> emerge (15 of 20) media-video/mplayer-1.0.20060302 to /

1144156006:  === (15 of 20) Cleaning (media-video/mplayer-1.0.20060302::/usr/portage/media-video/mplayer/mplayer-1.0.20060302.ebuild)

1144156008:  === (15 of 20) Compiling/Merging (media-video/mplayer-1.0.20060302::/usr/portage/media-video/mplayer/mplayer-1.0.20060302.ebuild)

1144156498:  >>> AUTOCLEAN: media-video/mplayer

1144156503: === Unmerging... (media-video/mplayer-1.0_pre7-r1)

1144156506:  >>> unmerge success: media-video/mplayer-1.0_pre7-r1

1144156506:  === (15 of 20) Post-Build Cleaning (media-video/mplayer-1.0.20060302::/usr/portage/media-video/mplayer/mplayer-1.0.20060302.ebuild)

1144156506:  ::: completed emerge (15 of 20) media-video/mplayer-1.0.20060302 to /

1144156506:  >>> emerge (16 of 20) app-doc/xorg-docs-1.1 to /

1144156506:  === (16 of 20) Cleaning (app-doc/xorg-docs-1.1::/usr/portage/app-doc/xorg-docs/xorg-docs-1.1.ebuild)

1144156507:  === (16 of 20) Compiling/Merging (app-doc/xorg-docs-1.1::/usr/portage/app-doc/xorg-docs/xorg-docs-1.1.ebuild)

1144156604:  >>> AUTOCLEAN: app-doc/xorg-docs

1144156609: === Unmerging... (app-doc/xorg-docs-1.0.1)

1144156611:  >>> unmerge success: app-doc/xorg-docs-1.0.1

1144156611:  === (16 of 20) Post-Build Cleaning (app-doc/xorg-docs-1.1::/usr/portage/app-doc/xorg-docs/xorg-docs-1.1.ebuild)

1144156611:  ::: completed emerge (16 of 20) app-doc/xorg-docs-1.1 to /

1144156611:  >>> emerge (17 of 20) x11-proto/scrnsaverproto-1.1.0 to /

1144156611:  === (17 of 20) Cleaning (x11-proto/scrnsaverproto-1.1.0::/usr/portage/x11-proto/scrnsaverproto/scrnsaverproto-1.1.0.ebuild)

1144156612:  === (17 of 20) Compiling/Merging (x11-proto/scrnsaverproto-1.1.0::/usr/portage/x11-proto/scrnsaverproto/scrnsaverproto-1.1.0.ebuild)

1144156621:  >>> AUTOCLEAN: x11-proto/scrnsaverproto

1144156626: === Unmerging... (x11-proto/scrnsaverproto-1.0.2)

1144156628:  >>> unmerge success: x11-proto/scrnsaverproto-1.0.2

1144156628:  === (17 of 20) Post-Build Cleaning (x11-proto/scrnsaverproto-1.1.0::/usr/portage/x11-proto/scrnsaverproto/scrnsaverproto-1.1.0.ebuild)

1144156628:  ::: completed emerge (17 of 20) x11-proto/scrnsaverproto-1.1.0 to /

1144156628:  >>> emerge (18 of 20) app-emulation/wine-0.9.11 to /

1144156628:  === (18 of 20) Cleaning (app-emulation/wine-0.9.11::/usr/portage/app-emulation/wine/wine-0.9.11.ebuild)

1144156629:  === (18 of 20) Compiling/Merging (app-emulation/wine-0.9.11::/usr/portage/app-emulation/wine/wine-0.9.11.ebuild)

1144158306:  >>> AUTOCLEAN: app-emulation/wine

1144158311: === Unmerging... (app-emulation/wine-0.9.10)

1144158314:  >>> unmerge success: app-emulation/wine-0.9.10

1144158314:  === (18 of 20) Post-Build Cleaning (app-emulation/wine-0.9.11::/usr/portage/app-emulation/wine/wine-0.9.11.ebuild)

1144158314:  ::: completed emerge (18 of 20) app-emulation/wine-0.9.11 to /

1144158314:  >>> emerge (19 of 20) app-portage/gentoolkit-0.2.2_pre4 to /

1144158314:  === (19 of 20) Cleaning (app-portage/gentoolkit-0.2.2_pre4::/usr/portage/app-portage/gentoolkit/gentoolkit-0.2.2_pre4.ebuild)

1144158315:  === (19 of 20) Compiling/Merging (app-portage/gentoolkit-0.2.2_pre4::/usr/portage/app-portage/gentoolkit/gentoolkit-0.2.2_pre4.ebuild)

1144158321:  >>> AUTOCLEAN: app-portage/gentoolkit

1144158326: === Unmerging... (app-portage/gentoolkit-0.2.2_pre3)

1144158327:  >>> unmerge success: app-portage/gentoolkit-0.2.2_pre3

1144158327:  === (19 of 20) Post-Build Cleaning (app-portage/gentoolkit-0.2.2_pre4::/usr/portage/app-portage/gentoolkit/gentoolkit-0.2.2_pre4.ebuild)

1144158327:  ::: completed emerge (19 of 20) app-portage/gentoolkit-0.2.2_pre4 to /

1144158327:  >>> emerge (20 of 20) dev-libs/boehm-gc-6.7 to /

1144158327:  === (20 of 20) Cleaning (dev-libs/boehm-gc-6.7::/usr/portage/dev-libs/boehm-gc/boehm-gc-6.7.ebuild)

1144158328:  === (20 of 20) Compiling/Merging (dev-libs/boehm-gc-6.7::/usr/portage/dev-libs/boehm-gc/boehm-gc-6.7.ebuild)

1144158380:  >>> AUTOCLEAN: dev-libs/boehm-gc

1144158385: === Unmerging... (dev-libs/boehm-gc-6.6)

1144158386:  >>> unmerge success: dev-libs/boehm-gc-6.6

1144158387:  === (20 of 20) Post-Build Cleaning (dev-libs/boehm-gc-6.7::/usr/portage/dev-libs/boehm-gc/boehm-gc-6.7.ebuild)

1144158387:  ::: completed emerge (20 of 20) dev-libs/boehm-gc-6.7 to /

1144158387:  *** Finished. Cleaning up...

1144158397:  *** exiting successfully.

1144158398:  *** terminating.

1144158399: Started emerge on: Apr 04, 2006 15:46:39

1144158399:  *** emerge --skipfirst --resume

1144158400:  *** Resuming merge...

1144158401:  >>> emerge (1 of 19) app-text/poppler-0.5.1-r1 to /

```

----------

## Aktyn

 *Eeeyeore wrote:*   

> Kurcze jestem cieniasem w Bash-u, ale obiecuje kupic ksiazke i sie naumiec...

 

Ja mam mała ksiazka, ale coś po cieżkiemu wytłumaczone  i słabo kminiam  :Smile: 

Był tu skrypt gdzieś na forum, najpierw robiło sie liste pakietów, potem emergowało, z tego co zauważyłem, jeżeli pakiet wywalił błąd to emeergował dalej, (z opcją -one-shoot). Ale nie robił listy nie zupdatowanych pakietów, czyli tych z błędem

Może go znajdziesz, chwiloow nie mam czasu szukać, ale pod skrypty zdajesie był.

Ja sam u siebie ponieważ tez robie czasem update, a skrypt ma swoje cechy, że pomija, a normalnie emerge przy emerge -e world przy błędzie to potem znowu chce wszystko aktualizować, napisałem (w C) krótki program który robi aktualizacje, ale przy błędzie na końcu sie zatrzymuje. Z tym że machłem go szybko i nie ma zbyt wielu funkcji, Czyta z listy którą normalnie można zrobić. Ponieważ samemu by mi się też coś takiego przydało, moge dorobić małe co nie co, i go rzucić na stronke, będzie gotowy to dam znać.

Chyba że man emerge, i jest tam jakaś opcja. np. -i emerguj inteligentnie -z zapisz które pakiety błędne i nie emerguj zależności:)

----------

## YANOUSHek

 *Eeeyeore wrote:*   

> [...] A po drugie to ten Twoj skrypcik wpada w petelke i po skonczonej pracy zaczyna od zera.... [...]

 

Hmm... prawdę mówiąc nie zastanawiałem się, czy to będzie działać -- powiedziałem tylko, żeby ktoś podłapał i może napisał.

U mnie emerge --resume nic nie robi jeśli nie ma nic do roboty, więc skrypt nie powinien wpadać w pętlę, ale może się mylę :)

----------

## Eeeyeore

lol @aktyn

 *Quote:*   

> Chyba że man emerge, i jest tam jakaś opcja. np. -i emerguj inteligentnie -z zapisz które pakiety błędne i nie emerguj zależności:)
> 
> 

 

ooo cheche , przepraszam usmialem sie, to bylo fajne

Wiesz, ale nie nie bede szukal nie ma sensu, lepiej sobie muzyki poskuchac lub ksiazke wydrukowac, pogadac z ludzmi na kompie... nie nie.

Nie ma sensu, czymze jest jedno #emerge world wobec kosmosu... skoro kosmos dziala...

W kazdym razie problem niby nie rozwiazany ale jestem za leniwiec zeby go drazyc. Ale ksiazke od basha sobie kupie wprwdzie sciagnalem cos z netu po jakies 600-800 stron - a co to kurcze na medycynie jestem...

Dziekuje za pomoc. Naprwde szkoda nafty, albo cos dziala, albo nie dziala, nie ma sensu drazyc 

W sumie to bez sensu zlozylem ten temat...

Przepraszam.

Ale fakt jest faktem ze to co kolega @YANOUSHek dal to po skonczonym emerge --blah --blah zaczynalo od nowa...

Naprawde....

Dla mnie temat CLOSED ale nie moge dac SOLVED bo do niczego sensownego nie doszlismy, a moze ktos ten temat pociagnie

CU

----------

## Aktyn

 *Eeeyeore wrote:*   

> lol @aktyn
> 
> Nie ma sensu, czymze jest jedno #emerge world wobec kosmosu... skoro kosmos dziala...
> 
> Dziekuje za pomoc. Naprwde szkoda nafty, albo cos dziala, albo nie dziala, nie ma sensu drazyc 
> ...

 

1. może i kosmos działa ... ale my mówimy o Gentoo

2. Czemu nie ma sensu? (pytanie retoryczne) Sam mam ten programik, i też myślałem żeby kilka rzeczy usprawnić, po to by mieć właśnie troche wolnego czasu.

W zasadzie samo emerge dosyć dobrze spełnia zadanie, ale niektóre kwestie możnaby dopasować do siebie. Ja robiłem własnie aktualizacje, i właśnie po to napisałem małe co nie co. Dzieki temu wiem co sie namieszało, ale gdybym poszedł np godzine wcześniej spać, to rano miałbym nie zaktualizowany system, nic wielkiego kosmos będzie istniał dalej, ale ja miałbym jeszcze kilka rzeczy do roboty.

Wiec czemu nie? Nie widze przeszkód.

----------

## damjanek

 *Eeeyeore wrote:*   

> PS Log z emerge wyglada normalnie nie ma o czym gadac tak mi sie wydaje poza tym ze wpada w petelke..
> 
> 

 

Warto byłoby to załatwić tak: 

```
emerge pakiet || emerge --skipfirst --resume
```

 emerge --skipfirst --resume zostanie wykonane tylko wówczas, jeśli komenda emerge pakiet zakończy się błędem.

----------

## YANOUSHek

 *damjanek wrote:*   

> Warto byłoby to załatwić tak: 
> 
> ```
> emerge pakiet || emerge --skipfirst --resume
> ```
> ...

 

No to chyba mniej więcej coś takiego zrobiłem... Problem w tym, że trzeba uruchamiać emerge --skipfirst --resume za każdym razem jak emerge się wywali (czyt. do zakończenia kompilacji).

Jeśli chcecie, to napiszę taki skrypt, ale muszę wiedzieć, że komuś na prawdę na tym zależy, bo nie chce mi się siedzieć nad tym tylko dla samego siedzenia, chociaż czasami to robię :P

----------

## waltharius

Ja bym był za  :Very Happy:  Więc jak możesz to napisz  :Smile:  Może się z tego zrobi jakiś większy programik z czasem  :Very Happy:  Taka nakładka na emerge z dodatkową funkcjonalnością cobyśmy mieli więcej czasu żeby "psuć"/badać wszechświat  :Wink: 

----------

## YANOUSHek

 *waltharius wrote:*   

> Ja bym był za :D Więc jak możesz to napisz :-) Może się z tego zrobi jakiś większy programik z czasem :D Taka nakładka na emerge z dodatkową funkcjonalnością cobyśmy mieli więcej czasu żeby "psuć"/badać wszechświat ;-)

 

Dobra... przyznaję się... sprawdzałem skrypt mimo, że go nie potrzbuję :P

Robiąc kilk krótkich testów doszedłem do wniosku, że skrypt:

```
emerge <cokolwiek>;

while (( 1 )); do

  emerge --resume --skipfirst && break;

done
```

działa przy założeniu, że emerge zwraca do powłoki wynik błedy jeśli kompilacja się nie powiedzie -- niestety nie mam czasu przetestować tego dla prawdziwego psującego się pakietu (psułem je poprzez wydanie CTRL+C), ponieważ nie posiadam żadnego takiego :P. Jeśli ktoś ma ochotę to sprawdzić, to zachęcam. Przez <cokolwiek> rozumiem dowolny pakiet tudzież update system/world. 

Aby łatwiej z tego korzystać należy wkleić poniższą zawartość do dowolnego pliku, nadać mu prawa do wykonywania (man chmod) i używać zamiast normalnego emerge:

```
#! /bin/bash

emerge $*;

while (( 1 )); do

  emerge --resume --skipfirst && break;

done
```

Zakładając, że skrypt znajduje się w pliku ~/.scripts/emerge-autoskip w celu jego uruchomienia należy wydać komendę:

```
~/.scripts/emerge-autoskip <tutaj_dowolne_informacje_przekazywane_do_emerge>
```

Przykład użycia:

```
~/.scripts/emerge-autoskip -uD world
```

Najciekawszym rozwiązaniem jednak wydaje się zrobienie aliasu w bashu:

```
alias emerge-autoskip="sh ~/.scripts/emerge-autoskip"
```

Taką linię należy dodać do ~/.bashrc i wtedy można posługiwać się nowopowstałą ,,komendą'' emerge-autoskip np.:

```
emerge-autoskip -e world
```

Dla potwierdzenia działania skryptu w wyniku błedów załączam log:

```
1144190012:  *** emerge  wormux

1144190012:  >>> emerge (1 of 4) media-libs/sdl-gfx-2.0.13-r1 to /

1144190012:  === (1 of 4) Cleaning (media-libs/sdl-gfx-2.0.13-r1::/usr/portage/media-libs/sdl-gfx/sdl-gfx-2.0.13-r1.ebuild)

1144190013:  *** terminating.

1144190014: Started emerge on: Apr 05, 2006 00:33:34

1144190014:  *** emerge --skipfirst --resume

1144190014:  *** Resuming merge...

1144190014:  >>> emerge (1 of 3) dev-games/clanlib-0.7.8-r1 to /

1144190014:  === (1 of 3) Cleaning (dev-games/clanlib-0.7.8-r1::/usr/portage/dev-games/clanlib/clanlib-0.7.8-r1.ebuild)

1144190015:  === (1 of 3) Compiling/Merging (dev-games/clanlib-0.7.8-r1::/usr/portage/dev-games/clanlib/clanlib-0.7.8-r1.ebuild)

1144190016:  *** terminating.

1144190017: Started emerge on: Apr 05, 2006 00:33:37

1144190017:  *** emerge --skipfirst --resume

1144190017:  *** Resuming merge...

1144190017:  >>> emerge (1 of 2) dev-cpp/libxmlpp-1.0.4-r2 to /

1144190017:  === (1 of 2) Cleaning (dev-cpp/libxmlpp-1.0.4-r2::/usr/portage/dev-cpp/libxmlpp/libxmlpp-1.0.4-r2.ebuild)

1144190018:  === (1 of 2) Compiling/Merging (dev-cpp/libxmlpp-1.0.4-r2::/usr/portage/dev-cpp/libxmlpp/libxmlpp-1.0.4-r2.ebuild)

1144190018:  *** terminating.

1144190019: Started emerge on: Apr 05, 2006 00:33:39

1144190019:  *** emerge --skipfirst --resume

1144190019:  *** Resuming merge...

1144190019:  >>> emerge (1 of 1) games-strategy/wormux-0.5.1 to /

1144190019:  === (1 of 1) Cleaning (games-strategy/wormux-0.5.1::/usr/portage/games-strategy/wormux/wormux-0.5.1.ebuild)

1144190020:  === (1 of 1) Compiling/Merging (games-strategy/wormux-0.5.1::/usr/portage/games-strategy/wormux/wormux-0.5.1.ebuild)

1144190021:  *** terminating.

1144190022: Started emerge on: Apr 05, 2006 00:33:42

1144190022:  *** emerge --skipfirst --resume

1144190022:  *** Resuming merge...

1144190022:  *** Finished. Cleaning up...

1144190022:  *** exiting successfully.

1144190022:  *** terminating.
```

Jak widać powyżej rozpocząłem standardową instalację wormux (emerge wormux), która miała 3 zależności. Przy pmocy kombinacji klawiszy CTRL+C zabijałem emerge w celu wywołania symulacji błedu. Po każdym błędzie uruchamiał się emerge --skipfirst --resume dla kolejnych pakietów, aż doszło to do końca i zakończyło działanie poprawnie z informacją: 

```
*** Resuming merge...

>>> Auto-cleaning packages ...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.
```

Dodatkowo sprawdziłem działanie dla emerge -uD world, dla którego nie mam aktualnie żadnych pakietów do skompilowania (eliminuje problem pętlenia się emerge). Otrzymany log to:

```
1144190425: Started emerge on: Apr 05, 2006 00:40:25

1144190425:  *** emerge --update --deep world

1144190430:  *** Finished. Cleaning up...

1144190430:  *** exiting successfully.

1144190431:  *** terminating.

1144190432: Started emerge on: Apr 05, 2006 00:40:32

1144190432:  *** emerge --skipfirst --resume

1144190432:  *** terminating.
```

emerge -uD world zakończyło się poprawnie, ale mimo to wywołało się emerge --skipfirst --resume (niestety tak działa ten skrypt [info: ciężko nazwać to skryptem :P]), które jednak zakończyło się poprawnie z informacją:

```
emerge: It seems we have nothing to resume...
```

Poniżej dla informacji załączam całości informacji wypisywanych przez emerge na stdout:

```
$ emerge -pv wormux

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild  N    ] media-libs/sdl-gfx-2.0.13-r1  +mmx 584 kB 

[ebuild  N    ] dev-games/clanlib-0.7.8-r1  -doc -ipv6 +mikmod +opengl +sdl +vorbis 6,413 kB 

[ebuild  N    ] dev-cpp/libxmlpp-1.0.4-r2  275 kB 

[ebuild  N    ] games-strategy/wormux-0.5.1  -debug +nls 18,332 kB 

Total size of downloads: 25,605 kB

$ emerge wormux; while (( 1 )); do emerge --skipfirst --resume && break; done

Calculating dependencies ...done!

>>> emerge (1 of 4) media-libs/sdl-gfx-2.0.13-r1 to /

<!-- TUTAJ CTRL+C --!>

Exiting on signal 2

*** Resuming merge...

>>> emerge (1 of 3) dev-games/clanlib-0.7.8-r1 to /

>>> Downloading http://distfiles.gentoo.org/distfiles/ClanLib-0.7.8-1.tar.bz2

--00:33:35--  http://distfiles.gentoo.org/distfiles/ClanLib-0.7.8-1.tar.bz2

           => `/usr/portage/distfiles/ClanLib-0.7.8-1.tar.bz2'

Resolving distfiles.gentoo.org... 64.50.236.52, 64.50.238.52, 156.56.247.195, ...

Connecting to distfiles.gentoo.org|64.50.236.52|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 6,567,261 (6.3M) [application/x-tar]

 0% [                                                         ] 0             --.--K/s             

<!-- TUTAJ CTRL+C --!>

Exiting on signal 2

*** Resuming merge...

>>> emerge (1 of 2) dev-cpp/libxmlpp-1.0.4-r2 to /

>>> Downloading http://distfiles.gentoo.org/distfiles/libxml++-1.0.4.tar.bz2

--00:33:38--  http://distfiles.gentoo.org/distfiles/libxml++-1.0.4.tar.bz2

           => `/usr/portage/distfiles/libxml++-1.0.4.tar.bz2'

Resolving distfiles.gentoo.org... 216.165.129.135, 64.50.236.52, 64.50.238.52, ...

Connecting to distfiles.gentoo.org|216.165.129.135|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 281,768 (275K) [application/x-tar]

 0% [                                                         ] 0             --.--K/s             

<!-- TUTAJ CTRL+C --!>

Exiting on signal 2

*** Resuming merge...

>>> emerge (1 of 1) games-strategy/wormux-0.5.1 to /

>>> Downloading http://distfiles.gentoo.org/distfiles/wormux-src-0.5.1.tar.bz2

--00:33:40--  http://distfiles.gentoo.org/distfiles/wormux-src-0.5.1.tar.bz2

           => `/usr/portage/distfiles/wormux-src-0.5.1.tar.bz2'

Resolving distfiles.gentoo.org... 156.56.247.195, 216.165.129.135, 64.50.236.52, ...

Connecting to distfiles.gentoo.org|156.56.247.195|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 18,772,426 (18M) [application/x-tar]

 0% [                                                         ] 0             --.--K/s             

<!-- TUTAJ CTRL+C --!>

Exiting on signal 2

*** Resuming merge...

>>> Auto-cleaning packages ...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

$ emerge -pvuD world

These are the packages that I would merge, in order:

Calculating world dependencies ...done!

Total size of downloads: 0 kB

$ emerge -uD world; while (( 1 )); do emerge --skipfirst --resume && break; done

Calculating world dependencies ...done!

>>> Auto-cleaning packages ...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

emerge: It seems we have nothing to resume...
```

----------

## YANOUSHek

Podczas pisania poprzedniego postu wpadłem na jeszcze jeden pomysł ;)

Zmieniając lekko skrypt na:

```
for i in `emerge -pv --nocolor $* | grep / | cut -d\] -f2 | cut -d\  -f2`; do

  emerge --nodeps =$i || echo $i >>~/emerges_failed;

done
```

Można w łatwy sposób później sprawdzić które pakiety się nie skompilowały -- znajdują się w pliku ~/emerges_failed. Jednak już nie mam siły sprawdzać czy to działa (ale powinno :P).

----------

## Aktyn

No dobra, kosmos kosmosem.

Dopisałem te funkcje do mojego programiku i wrzuciłem na stronke, odważni  :Wink:  mogą skorzystać.

Tutaj nie będe nic opisywał, bo nie che mi sie sto razy.

Owszem to nie skrypt, i trza go skompilować, ale u mnie sie sprawdził i po to go wybazgrałem.

----------

## YANOUSHek

 *Aktyn wrote:*   

> Dopisałem te funkcje do mojego programiku i wrzuciłem na stronke [...]

 

A można prosić adres?

----------

## Aktyn

 *YANOUSHek wrote:*   

> A można prosić adres?

 

A nie ma go w takim małym na dole prostokąciku pod moim postem co pisze www, trzeba być zalogowanym, może dopisze najwyżej do mojej stopki, w poscie nie chce dawac, bo korzystam z darmowego i jak mnie wywalą, to musiałbym ewentualnie we wszystkich postach zmieniac. Na razie wprawdzie nie ma za bardzo w których.

----------

## YANOUSHek

 *Aktyn wrote:*   

> A nie ma go w takim małym na dole prostokąciku pod moim postem co pisze www [...]

 

A rzeczywiście jest. Nie zaglądnąłem tam. Przejrzałem posta, stopkę, ale w kwadraciki już nie zajrzałem.

----------

## Taeril

 *YANOUSHek wrote:*   

> 
> 
> ```
> #! /bin/bash
> 
> ...

 to ma tą wadę, że nie patrzy na wynik pierwszego emerge... zatem co stoi na przeszkodzie zapisać sobnie ten wynik i w zależności od niego działać?

```
#!/bin/bash

emerge $*;

RET=$?

if [ $RET -ne 0 ]; then

  while (( 1 )); do

    emerge --resume --skipfirst && break;

  done

fi
```

Nie sprawdzałem czy będzie działać ale może...

----------

## Nomen

To z twojej stronki  :Smile: 

 *Aktyn wrote:*   

> Dobrze jest dodac opcje q, ktura sprawia ...

 

A fe... 

A oprócz tego pomysł fajny  :Razz: 

----------

