Sie sind nicht angemeldet.

1

30.01.2010, 13:21

buildpkg / usepkg und die USE-Flags

Hallo Leute,

auf meinem Home-Server sind inzwischen 5 Gentoo-VServer. Wenn ich diese aktualisiere, werden die selben Pakete 5x emerged. Das will ich optimieren. Klassisch würde ich sagen, es ist ein Fall für buildpkg/usepkg. Die einzelnen VMs haben jedoch unterschiedliche USE-Flags. Wie verhält sich usepkg, wenn die USE-Flags eines Paketes anders sind als im bereits gebauten Paket?
Falls relevant, es wird überall portage-2.2 verwendet.
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.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »bell« (07.07.2010, 23:11)


2

30.01.2010, 14:43

Hi bell

Zitat

Wie verhält sich usepkg, wenn die USE-Flags eines Paketes anders sind als im bereits gebauten Paket?
Ohne damit Erfahrung zu haben, würde ich behaupten das portage so ein "unpassendes" Paket (von den Flags her) vermutlich nicht installieren würde.
Ich würde das aber vorher praktisch testen...

3

30.01.2010, 17:21

Habe jetzt getestet. Anscheinend werden die USE-Flags irgendwo gemerkt. Wo es ist weiss ich bisher nuch nicht.
Jedoch kriegt der Parameter "-N" eine besondere Bedeutung.

VM1 : Das Paket wird mit "USE=-nls" erstellt

Quellcode

1
2
3
4
5
6
7
8
9
10
 ~ # USE="-nls" emerge --buildpkg --usepkg -va sys-libs/timezone-data

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

Calculating dependencies... done!
[binary   R   ] sys-libs/timezone-data-2009u  USE="-nls" 

Total: 1 package (1 reinstall, 1 binary), Size of downloads: 0 kB

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


VM2: Ohne "-N" wird USE ignoriert. Das Paket wird verwendet

Quellcode

1
2
3
4
5
6
7
8
9
10
# USE="nls" emerge --buildpkg --usepkg -va sys-libs/timezone-data

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

Calculating dependencies... done!
[binary   R   ] sys-libs/timezone-data-2009u  USE="-nls*" 

Total: 1 package (1 reinstall, 1 binary), Size of downloads: 0 kB

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


VM2: mit "-N" - Hier merkt er, dass USE sich geändert hat und baut neu

Quellcode

1
2
3
4
5
6
7
8
9
10
# USE="nls" emerge --buildpkg --usepkg -vaN sys-libs/timezone-data

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

Calculating dependencies... done!
[ebuild   R   ] sys-libs/timezone-data-2009u  USE="nls*" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

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


Es funktioniert also, solange man bei den Updates "-N" mit verwendet.
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.

4

30.01.2010, 18:21

Ein Nachtrag. Als erstes "ccache" mit dieser Methode auf allen VMs installiert. Damit beschläunige ich dann auch die Pakete mit unteschiedlichen USE-Flags.
Um ccache gemeinsam zu nutzen, war für VServer dann noch ein zusätzlicher Eintrag in allen /etc/vservers/.defaults/run.rev/*/fstab notwendig:

Quellcode

1
2
# shared ccache
/var/tmp/ccache  /var/tmp/ccache  none bind,rw 0 0
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.

5

01.02.2010, 22:08

Die tbz2 ist ja nicht nur ein mittels bzip2 komprimiertes tar-Archiv.
Am Ende stehen noch weitere Informationen -- wie eben beispielsweise auch die USE-Flags.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

6

01.02.2010, 23:58

Ich habe es mir genauer angeschaut...
Die tbz2 Dateien sind nur einfache Archive. Im packages Verzeichnis liegt jedoch noch eine Text-Datei namens "Packages". In der sind die Informationen hinterlegt.
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.

7

02.02.2010, 10:00

Die Datei ist vorhanden, das ist richtig.Dennoch sind hinter dem Archiv diese Metainformationen doch trotzdem noch enthalten.

bzip2 sagt ja auch "trailing garbage after EOF ignored"

Und wenn man sich beispielsweise quickpkg usw. anschaut, dann sieht man, dass das 'The XPAK Data Format' hierfür der tar.bz2 angehängt wird.

Quellcode

1
man 5 xpak


Zitat

Every gentoo binary package has a xpak attached to it which contains build time information like the use flags it was built with, the ebuild it was built from, the environmental variables, CFLAGs, CXXFLAGs, ....
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

Verwendete Tags

buildpkg, USE-Flags, usepkg, vserver