# world update. Einige Grundsatzfragen

## michel7

Habe etwas komisches am Portage festgestellt. 

Wenn ich 

```
tux michel # emerge -avuND world

These are the packages that would be merged, in order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 kB

Nothing to merge; would you like to auto-clean packages? [Yes/No] 

```

zeigt er mir 0 Pakete zum Updaten an.

wenn ich

```
tux michel # emerge -avuND system

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U ] sys-devel/gnuconfig-20080928 [20080123] 41 kB

Total: 1 package (1 upgrade), Size of downloads: 41 kB

Would you like to merge these packages? [Yes/No] 

```

zeigt mir mein portage, dass 1 Paket geupdatet wird. Aber eigentlich sollte es bereits bei world angezeigt werden, weil world ja system beinhaltet?!

und wenn ich emerge -epv world mache dann zeigt er mir insgesamt 2 Pakete an die geupdatet werden. der rest wird rebuilded

```

[ebuild     U ] dev-util/intltool-0.40.5 [0.40.4] 138 kB [0]

[ebuild     U ] sys-devel/gnuconfig-20080928 [20080123] 41 kB [0]

Total: 585 packages (2 upgrades, 583 reinstalls), Size of downloads: 1,108,377 kB

Fetch Restriction: 3 packages (3 unsatisfied)

```

Müsste das intltool und gnuconfig nicht bereits bei emerge -avuND world angezeigt werden?

Kann mich jemand aufklären?

P.S: hier noch mein emerge --info

 *Quote:*   

> 
> 
> tux michel # emerge --info
> 
> Portage 2.2_rc12 (default/linux/x86/2008.0/desktop, gcc-4.3.2, glibc-2.8_p20080602-r0, 2.6.26-gentoo-r1 i686)
> ...

 

----------

## Polynomial-C

Du hast portage-2.2 installiert, bei dem das "world" set nicht mehr automatisch das "system" set beinhaltet. Du kannst aber beide sets angeben beim Updaten: 

```
emerge -uDaNv @system @world
```

 (man beachte das @-Zeichen vor jedem set, eine Neuerung bei portage-2.2 um sich von normalen Paketnamen abzugrenzen (es könnte ja auch mal ein Paket geben, daß "world" heißt))

Wenn du jetzt noch ein --with-bdeps=y dranhängst, werden noch mehr Pakete auftauchen, von denen Updates installiert werden können (vermutlich die, die auch bei einem --emptytree mit erscheinen würden): 

```
emerge --with-bdeps=y -uDaNv @system @world
```

----------

## michel7

Gut möglich, nur so etwas ist mir noch vor einem halben Jahr aufgefallen, wo es das portage-2.2 noch nicht gab. Also kann es eigentlich nicht am neuen portage liegen

----------

## Polynomial-C

Logo, aber damals gab es auch schon den --with-bdeps=[y|n] Schalter, der allerdings bei normalen emerge-Operationen immer auf "n" steht, außer man hat ihn in der EMERGE_DEFAULT_OPTS Variable in der /etc/make.conf mit "y" eingetragen oder gibt ihn bei jedem emerge Befehl in der Konsole mit an.  *man emerge wrote:*   

> 
> 
> ```
>        --with-bdeps < y | n >
> 
> ...

 

--emptytree verhält sich demnach gezwungenermaßen ähnlich wie --with-bdeps=y -uDav, weil portage ja annimmt, daß sämtliche Abhängigkeiten ebenfalls erst installiert werden müssen, auch die sog. "build time dependencies".

----------

## michel7

Ok, jetzt stellt sich noch die Frage - was sind build time dependencies genau?

----------

## Polynomial-C

In vielen ebuilds werden die Abhängigkeiten über zwei Variablen definiert. Einmal die runtime-dependencies (RDEPEND - werden zum Betrieb des Programms benötigt) und die build-time dependencies (DEPEND -  werden nur zum Kompilieren/Installieren des Pakets benötigt). Schau einfach in die ebuilds rein.  :Very Happy: 

----------

## revilootneg

Wow, da habe ich heute morgen mal wieder was neues gelernt, vielen Dank!

Die --with-bdeps Option habe ich mal gleich zum default gemacht.

Wichtig in Bezug auf den aktuellen glsa zu ed:

Zumindest auf einem System gilt der offenbar als build-dependency und wird entsprechend unter "normalen" Umständen nicht mit ins world-update hineingezogen. Evtl. muss das als bug gemeldet werden!? (Ich kann das selbst nicht weiter testen, weil ich auf allen anderen Systemen auf paludis setze.)

Und noch 'ne Frage um mein Ego zu beruhigen:

Gibts die --with-bdeps schon ewig und ich habe die man-page immer zu ungenau gelesen, oder ist die in jüngerer Zeit (>portage-2.0.52) dazugekommen?

Und wo finde ich das changelog zu portage um diese Frage selbst beantworten zu können? Google spuckt mir viele Seiten von Sabayon aus  :Rolling Eyes: 

----------

## michel7

 *revilootneg wrote:*   

> 
> 
> Und wo finde ich das changelog zu portage um diese Frage selbst beantworten zu können? Google spuckt mir viele Seiten von Sabayon aus :roll:

 

/usr/portage/sys-apps/portage/ChangeLog

----------

## revilootneg

 *michel7 wrote:*   

> /usr/portage/sys-apps/portage/ChangeLog

 

Danke, soweit war ich auch schon. Hast du in ChangeLog mal nach bdeps gegrept? Es gibt diesen einen Eintrag:

```
*portage-2.2_rc3 (23 Jul 2008)

  23 Jul 2008; Zac Medico <zmedico@gentoo.org> +portage-2.2_rc3.ebuild:

  2.2_rc3 bump. This fixes a regression in rc2 which caused --with-bdeps

  to default to 'n' instead of 'y' for --depclean and --prune actions.
```

Das das nicht meine Frage beantwortet, sollte wohl klar sein, zudem ist der älteste Eintrag im ChangeLog vom 12. Februar diesen Jahres.

----------

## think4urs11

 *revilootneg wrote:*   

> Und wo finde ich das changelog zu portage um diese Frage selbst beantworten zu können? Google spuckt mir viele Seiten von Sabayon aus 

 

Hier solltest du eigentlich alles finden: http://sources.gentoo.org/viewcvs.py/portage/main/

----------

## Polynomial-C

Der --with-bdeps Schalter entstand aufgrund dieses bugs: some emerge dependency calculations include unnecessary build time dependencies

Das Changelog von portage kann man übrigens jederzeit in /usr/share/doc/portage-[Version]/ChangeLog.bz2 finden  :Wink: 

----------

## revilootneg

Danke euch beiden, mein ChangeLog.bz2 reicht zwar auch bloß bis 2007-07-27 zurück, aber wer will seine Platte schon mit Changelogs zumüllen.

Und der Bug beschreibt ja auch alles wissenswerte.

----------

