Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

03.05.2012, 20:02

emerge --depclean Verständnisfrage

Hallo allerseits,



nach einem emerge -auvDN world wollte ich ein emerge --ask --depclean ausführen. Es kommt dann aber folgendes:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 Calculating dependencies... done!

 * Dependencies could not be completely resolved due to

 * the following required packages not being installed:

 * 

 *   virtual/pkgconfig pulled in by:

 *     dev-util/cmake-2.8.6-r4

 * 

 * Have you forgotten to do a complete update prior to depclean? The

 * most comprehensive command for this purpose is as follows:

 * 

 *   emerge --update --newuse --deep --with-bdeps=y @world

 * 

 * Note that the --with-bdeps=y option is not required in many

 * situations. Refer to the emerge manual page (run `man emerge`)

 * for more information about --with-bdeps.

 * 

 * Also, note that it may be necessary to manually uninstall

 * packages that no longer exist in the portage tree, since it may

 * not be possible to satisfy their dependencies.




Das hatte ich bisher noch nie. Was genau will mir Gentoo hier sagen?

Wenn ich es richtig sehe, dann ist das Paket virtual/pkgconfig neu und neuerdings würde es mit einem dev-util/cmake installiert werden, oder?



Ein

Quellcode

1
emerge --ask --update --newuse --deep --with-bdeps=y @world


würde folgendes installieren:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
These are the packages that would be merged, in order:



Calculating dependencies... done!

[ebuild     U  ] app-arch/cabextract-1.4 [1.3]

[ebuild     U  ] dev-lang/swig-2.0.4-r1 [2.0.2]

[ebuild  NS    ] app-text/docbook-sgml-dtd-4.4 [3.0-r3, 3.1-r3, 4.0-r3, 4.1-r3]

[ebuild  N     ] virtual/pkgconfig-0 

[ebuild  N     ] perl-core/ExtUtils-Manifest-1.580.0 

[ebuild  N     ] perl-core/ExtUtils-Install-1.54 

[ebuild  N     ] perl-core/ExtUtils-Command-1.170.0 

[ebuild  N     ] virtual/perl-ExtUtils-Manifest-1.580.0-r1 

[ebuild  N     ] virtual/perl-ExtUtils-Install-1.54 

[ebuild  N     ] virtual/perl-ExtUtils-Command-1.170.0-r2 

[ebuild  N     ] perl-core/ExtUtils-MakeMaker-6.620.0 

[ebuild     U  ] virtual/perl-ExtUtils-MakeMaker-6.620.0 [6.56]

[ebuild     U  ] x11-misc/xorg-cf-files-1.0.4 [1.0.3]

[ebuild     U  ] x11-misc/imake-1.0.4 [1.0.3]

[ebuild  N     ] dev-util/gtk-builder-convert-2.24.10 

[ebuild     U  ] app-text/asciidoc-8.6.5 [8.5.3] USE="-highlight% (-test)" 

[ebuild     U  ] sys-apps/help2man-1.40.8 [1.38.2]

[ebuild     U  ] dev-lang/nasm-2.10 [2.09.10]

[ebuild  N     ] dev-perl/XML-SAX-Base-1.80.0 

[ebuild     U  ] dev-perl/XML-SAX-0.990.0 [0.16]

[blocks b      ] <dev-perl xml-sax-0.990.0="" ("<dev-perl="" xml-sax-0.990.0"="" is="" blocking="" dev-perl="" xml-sax-base-1.80.0)="" 
[ebuild     U  ] dev-perl/XML-LibXML-1.900.0 [1.70] USE="-test%"


Kann man das einfach so machen?



Irgendwie hängt all das mit dem virtual/pkgconfig zusammen, oder? Was passiert bei einem "reinen" emerge virtual/pkgconfig? Würde der ganze andere Rest dann beim nächsten emerge -auvDN world nachgezogen werden? Oder braucht es dafür immer die Option "--with-bdeps=y"?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »heichro« (20.05.2012, 16:31)


2

03.05.2012, 21:03

Can you try to "emerge -1 dev-util/cmake" and rerun "emerge --depclean" afterwards?

Gentoo tries to tell you that for doin depclean all necessary packages have to be installed. In your case dev-util/cmake is missing so depclean refuses to clean. It's kinda weird emerge -vDNua @world hasn't installed it automatically...


//edit: Sorry, zu viel auf freenode unterwegs... Also noch mal auf deutsch.

Kannst Du bitte "emerge -1 dev-util/cmake" gefolgt von "emerge --depclean" probieren?

Gentoo versucht Dir mitzuteilen, dass nicht alle notwendigen Pakete installiert sind und deshalb lehnt depclean die Arbeit ab. Es ist aber schon verwirrend, dass ein emerge -vDNua @world dieses Paket nicht automatisch ins System installiert...
Sys:
AMD Phenom II X4 965
nvidia GeForce GTS450 1024MB
16384 MB DDR3 1600Mhz
Gigabyte GA-970A-UD3
Corsair Force3 SSD (sys)

OS: Gentoo ~amd64
DE: KDE
Kernel: vanilla-sources
VGA: nouveau

http://www.gidf.de/

██ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ trust █████ ██████ ███ your █████ ████ government. Parts of this comment have been found in violation of H.R. 3261, S.O.P.A and Senate Bill 968, P.I.P.A. and have been censored for your benefit.

3

03.05.2012, 23:26

Ein

Quellcode

1
emerge -av1 dev-util/cmake

liefert

Quellcode

1
2
3
4
5
6
7
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] virtual/pkgconfig-0  0 kB
[ebuild   R    ] dev-util/cmake-2.8.6-r4  USE="emacs ncurses qt4 -test -vim-syntax" 0 kB

Total: 2 packages (1 new, 1 reinstall), Size of downloads: 0 kB

Das installiert also virtual/pkgconfig. Warum das Paket jetzt verlangt wird und bisher nicht verlangt wurde, scheint das hier zu sagen:

Quellcode

1
2
3
4
5
6
7
# ChangeLog for dev-util/cmake
2	# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
3	# $Header: /var/cvsroot/gentoo-x86/dev-util/cmake/ChangeLog,v 1.192 2012/05/02 21:02:53 johu Exp $
4	
5	  02 May 2012; Jeff Horelick <jdhore@gentoo.org> cmake-2.8.6-r4.ebuild,
6	  cmake-2.8.7-r4.ebuild, cmake-2.8.7-r5.ebuild, cmake-2.8.8-r1.ebuild:
7	  dev-util/pkgconfig -> virtual/pkgconfig

Das ebuild wurde kürzlich geändert und daher verlangt emerge --depclean wohl nun ein installiertes virtual/pkgconfig. Geht diese Überlegung in die richtige Richtung?
Bei einem emerge -auvDN world wird es nicht mitinstalliert, weil dev-util/cmake nicht in world enthalten ist. Stimmt das in etwa?
Nur die Option "--with-bdeps=y" würde hierbei das Gewünschte liefern, weil erkannt wird, dass sich die build time von cmake-2.8.6-r4.ebuild geändert hat (allerdings mit dem Nebeneffekt, dass ein Rattenschwanz an anderen Paketen mitkommt). Verstehe ich das richtig?
Bedeutet das dann im Umkehrschluss auch, dass ein emerge --depclean die build time der ebuilds prüft? Oder wie wird hier verfahren?
Das sind jetzt aber viele Fragen...

4

04.05.2012, 00:18

Das ebuild wurde kürzlich geändert und daher verlangt emerge --depclean wohl nun ein installiertes virtual/pkgconfig. Geht diese Überlegung in die richtige Richtung?
Soweit noch ja. Es werden öfter Pakete "virtualisiert", falls mehrere Alternativen für gibt. Siehe in das Virtual-Ebuild. Jetzt kann statt pkgconfig auch pkg-config-lite oder pkgconf verwendet werden.

Die Build-Time-Abhängigkeit bedeutet ein zum Zeitpunkt des Bauens benötigtes Paket.
und virtual/pkgconfig ist es eine Build-Time Dependency von cmake. Sprich pkgconfig wird nur zum Bauen von cmake benötigt, jedoch später zur Laufzeit (Run-Time) nicht mehr. Daher wird pkgconfig auch nur dann installiert/aktualisiert wenn cmake (oder anderes Paket was pkgconfig zum Bauen benötigt) wieder gebaut werden soll.

Also:
"emerge -av1 dev-util/cmake" -> cmake muss neu gebaut werden -> aktualisiere/installiere die zum bauen benötigten Build- und Run- Time Abhängigkeiten.
"emerge -auvDN world" -> cmake muss nicht neu gebaut werden -> prüfe nur die Run-Time Abhängigkeiten auf Aktualisierung (-D Parameter)
"--with-bdeps=y" -> cmake muss nicht neu gebaut werden -> Aktualisiere trotzdem die Build-time Abhängigkeiten mit.

--depclean prüft alles, also auch die Build-Time Abhängigkeiten und merkt dann dass da was nicht installiert ist (Das Virtuelle Dummy-Paket) und bricht ab. Wenn es die "Build-Time" ignorieren würde, dann würde pkgconfig jedes mal runterfliegen.

Dein "Rattenschwanz" hängt nicht nur mit "cmake" / "pkgconfig" zusammen sondern es sind halt alle Build-Time Abhängigkeiten. Packe mal den Parameter "-t" in den Emerge-Befehl. Dann kannst Du ungefähr sehen welche Pakete was nach sich ziehen. Es schadet auf jeden Fall nicht die Build-Time Abhängigkeiten mal zu aktualisieren, auch wenn es nicht unbedingt immer notwendig ist.
Münchener Gentoo Linux User Group: http://www.mglug.de/

Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.