# Nowe opcje portage: jobs, keep-going i preserve-libs

## rofro

dla >=portage-2.2_rc2

W emerge można stosować nowe opcje:

http://planet.gentoo.org/developers/zmedico/2008/07/23/portage_parallel_builds

http://jolexa.wordpress.com/2008/07/24/gentoo-portages-new-jobs-feature/

-j [JOBS], --jobs[=JOBS]

Określamy liczbę pakietów budowanych jednocześnie, jeśli nie podamy liczby nie będzie ograniczenia, przydatne przy wielu procesorach lub rdzeniach. Zobacz --load-average.

--keep-going

Kontynuuj emerge jak daleko możesz.

Uwaga: jeśli jakiś pakiet nie chciał się skompilować, emerge przechodzi w tryb resume i od tego momentu nie działa --jobs.

https://forums.gentoo.org/viewtopic-p-5183927.html

Dlatego poniższa komenda nadal może być aktualna

```
emerge kde-meta || until emerge --resume --skipfirst; do emerge --resume --skipfirst; done
```

http://howflow.com/tricks/gentoo_resume_emerge_automatically

--load-average=LOAD

Żadne nowe ebuildy nie powinny zostać emergowane, jeśli load przekracza podaną liczbę zmiennoprzecinkową. Są to analogiczne opcje jak dla MAKEOPTS w make.conf. Więcej w man make.

Jeśli uruchomimy top, to load average jest w pierwszej linii. Wskazuje, ile średnio procesów czeka w kolejce zadań w określonym przedziale czasu.

 wartość <1 oznacza, ze pozostały czas przypadł dla pseudoprocesu IDLE, procesor nic nie robi                                                                    

 jeśli wartość = 1, to znaczy, że procesor cały czas miał coś do zrobienia i jego czas się nie marnował.

 jeśli >1, to kilka procesów (co najmniej dwa) walczyło o czas procesora. Jest to stan jak najbardziej normalny.

Ważna uwaga. Czas jaki procesor spędza na obsłudze przerwań nie jest brany pod uwagę.

http://www.masstech.pl/index.php?showtopic=16679

Dla FEATURES w make.conf można stosować nową opcję preserve-libs.

Powoduje ona, że stare biblioteki *.so nie będą usunięte z systemu aż nie użyjemy polecenia emerge @preserved-rebuild. Spowoduje ono zlinkowanie programów używających starych bibliotek do nowych bibliotek i usunięcie starych.

http://r0bertz.blogspot.com/2008/06/portage-22-preserve-libs-features.html

--

----------

## SlashBeast

----keep-going  <= za wiele o dwa --.

Co do reszty, to super bajery, chyba od dłuższego czasu część z nich jest w portage dostępnych w ~amd64, wszak mam już rc6 zainstalowane.

----------

## canis_lupus

```
emerge -e -j7 --keep-going --resume world

WARNING: repository at /usr/local/portage is missing a repo_name entry

Calculating dependencies... done!

*** Resuming merge...

>>> Verifying ebuild manifests

>>> Starting parallel fetch

>>> Building (1 of 387) media-video/ffmpeg-0.4.9_p20070616

>>> Building (2 of 387) media-sound/mpg123-1.3.1

>>> Building (3 of 387) media-libs/libmpeg2-0.4.1

>>> Installing media-libs/libmpeg2-0.4.1

>>> Installing media-sound/mpg123-1.3.1

>>> Installing media-video/ffmpeg-0.4.9_p20070616

>>> Building (4 of 387) media-sound/sox-14.0.1

>>> Jobs: 3 of 387 complete, 1 running              Load avg: 6.91, 7.61, 8.14
```

Czemu spadło do jednego pakietu kompilowanego na raz?

----------

## Exil

pierwsza możliwość - nie może więcej ze względu na zależności

druga -  to wersja rc  :Wink: 

----------

## rofro

Spadło do jednego pakietu, bo keep-going wyłączy jobs przy wystąpieniu błędu. Zaktualizowałem pierwszt post w części --keep-going

----------

## canis_lupus

ale w wyniku tego co zacytowałem widac że błąd nie wystąpił...

----------

## Arfrever

 *rofro wrote:*   

> keep-going wyłączy jobs przy wystąpieniu błędu.

 

Ten błąd już został rozwiązany.

----------

