# Einzelne Pakete von der Installation ausschließen

## hampelratte

Hallo zusammen,

ich habe schon etwas gesucht, aber keine gute Lösung gefunden. Ich habe kde-meta installiert und möchte jetzt einige Abhängigkeiten ausschließen. Z.B. kdegames-meta. Ich habe jetzt die Möglichkeit gefunden, das Paket in package.provided einzutragen, was auch gut funktioniert. Blöderweise muss ich da aber eine Versionsnummer mit angeben. Demnächst kommt dann kde 3.7.4 oder 3.8 und ich habe den Krempel wieder auf der Platte, wenn ich nicht aufpasse.

Habt Ihr einen Vorschlag, wie ich es besser machen kann?

Vielen Dank

Henrik

----------

## Yamakuzure

kde-meta tut nichts als alle kde*-meta Pakete zu laden. package.provided ist also die falsche Wahl, die Richtige ist, einfach die kde*-meta Pakete zu installieren, die du möchtest. "kde-meta" heißt ja nun schlicht "ALLES". Hier eine Liste zur besseren Übersicht:

```
sed-notebook ~ # eix meta -c -C kde-* | grep -v kde-meta

[N] kde-base/kdeaccessibility-meta (4.7.3(4)): kdeaccessibility - merge this to pull in all kdeaccessiblity-derived packages

[I] kde-base/kdeadmin-meta (4.7.4(4)@27.12.2011): KDE administration tools - merge this to pull in all kdeadmin-derived packages

[I] kde-base/kdeartwork-meta (4.7.4(4)@27.12.2011): kdeartwork - merge this to pull in all kdeartwork-derived packages

[I] kde-base/kdebase-meta (4.7.4(4)@27.12.2011): Merge this to pull in all kdebase-derived packages

[I] kde-base/kdebase-runtime-meta (4.7.4(4)@27.12.2011): Merge this to pull in all kdebase-runtime-derived packages

[I] kde-base/kdebindings-meta (4.7.4(4)@27.12.2011): KDE bindings - merge this to pull in all kdebindings-derived packages

[I] kde-base/kdeedu-meta (4.7.4(4)@27.12.2011): KDE educational apps - merge this to pull in all kdeedu-derived packages

[I] kde-base/kdegames-meta (4.7.4(4)@27.12.2011): kdegames - merge this to pull in all kdegames-derived packages

[I] kde-base/kdegraphics-meta (4.7.4(4)@27.12.2011): kdegraphics - merge this to pull in all kdegraphics-derived packages

[I] kde-base/kdemultimedia-meta (4.7.4(4)@27.12.2011): kdemultimedia - merge this to pull in all kdemultimedia-derived packages

[I] kde-base/kdenetwork-meta (4.7.4(4)@27.12.2011): kdenetwork - merge this to pull in all kdenetwork-derived packages

[I] kde-base/kdepim-meta (4.7.4(4)@27.12.2011): kdepim - merge this to pull in all kdepim-derived packages

[I] kde-base/kdesdk-meta (4.7.4(4)@27.12.2011): KDE SDK - merge this to pull in all kdesdk-derived packages

[I] kde-base/kdetoys-meta (4.7.4(4)@27.12.2011): KDE toys - merge this to pull in all kdetoys-derived packages

[I] kde-base/kdeutils-meta (4.7.4(4)@27.12.2011): kdeutils - merge this to pull in all kdeutils-derived packages

[I] kde-base/kdewebdev-meta (4.7.4(4)@27.12.2011): KDE WebDev - merge this to pull in all kdewebdev-derived packages
```

Und hier die Liste ohne Schnickschnack für Copy&Paste:

```
sed-notebook ~ # eix meta --only-names -C kde-*

kde-base/kde-meta

kde-base/kdeaccessibility-meta

kde-base/kdeadmin-meta

kde-base/kdeartwork-meta

kde-base/kdebase-meta

kde-base/kdebase-runtime-meta

kde-base/kdebindings-meta

kde-base/kdeedu-meta

kde-base/kdegames-meta

kde-base/kdegraphics-meta

kde-base/kdemultimedia-meta

kde-base/kdenetwork-meta

kde-base/kdepim-meta

kde-base/kdesdk-meta

kde-base/kdetoys-meta

kde-base/kdeutils-meta

kde-base/kdewebdev-meta
```

Du kannst diese Liste einfach in eine Textdatei kopieren (z.B. /tmp/kde4-metas.lst) und die Einträge löschen, die du nicht haben möchtest. Das Installieren geht dann so:

```
$ emerge --unmerge kde-meta && emerge --noreplace `cat /tmp/kde4-metas.lst` && emerge --ask --depclean
```

Dies entfernt den kde-meta Eintrag aus @world, dann werden die gewünschten kde*-meta Einträge aus deiner Liste in @world eingetragen, und zu guter Letzt das entfernt, was du mit kde-meta installiert hast, nun aber nicht mehr haben möchtest.

----------

## hampelratte

Stimmt, das macht Sinn. Mal angenommen, ich möchte in jedem kde-Paket 1-2 Pakete nicht installieren. Dann müsste ich bei dieser Vorgehensweise alle kde-Pakete aufschlüsseln und dann alle Pakete von Hand installieren, die ich haben möchte. Das führt die meta-Pakete ad absurdum und mein Ansatz wäre wesentlich einfacher. Gäbe es in dem Fall noch eine bessere Lösung als meine?

----------

## toralf

Nimm kdebase-meta und installiere dann nur noch die Pakete, die Du möchtest.

----------

## hampelratte

Schon klar, das System hab ich schon verstanden. Das ist jetzt alles auch rein hypothetisch, aber wenn ich es so machen wollte, müsste ich wie gesagt sehr viele Pakete von Hand installieren, statt einige wenige auszuschließen. Das finde ich wenig elegant. Bin ich in der Hinsicht zu anspruchsvoll?

----------

## ChrisJumper

 *hampelratte wrote:*   

> Bin ich in der Hinsicht zu anspruchsvoll?

 

Vielleicht. Machs doch einfach so:

Alle Pakete kopieren, in einem Editor zwischenspeichern, Zeilenumbrüche entfernen, die wenigen Pakete die du nicht brauchst ebenfalls rauswerefen.

Dann brauchst du nur noch die lange String-Zeile zu markieren und in deine Emerge-Zeile zu kopieren. Das sind doch wirklich nicht viele Handgriffe. Sicher gibt es dafür auch einen komplizierten Befehl mit seltsamer Syntax und sehr wenig Zeichen die das selbe machen.

Aber generell ist das doch nicht so schwer und in 30 Sekunden erstellt. Immer wenn QT z.B. ein seltsames Update bringt, entferne ich auf diese Art immer die QT-Pakete und emerge sie dann neu. Weil es somit sehr einfach ist diese seltsamen Blocks auszuschließen.

Edit: ARHG genau das wurde dir im zweiten Post nicht nur empfohlen sondern auch schon zum einfachen Copy and Paste-Angeboten.

----------

## Josef.95

 *toralf wrote:*   

> Nimm kdebase-meta und installiere dann nur noch die Pakete, die Du möchtest.

 

Volle Zustimmung ++

.................................................................................

Die Gentoo-KDE Devs geben sich doch wirklich alle Mühe KDE in möglichst viele Split-Ebuilds bereitzustellen, so das man möglichst nur das installieren muss was man auch wirklich möchte.

Das kde-meta ebuild zu installieren, und dann aber Abhängigkeiten wieder auszuschließen, halte ich für eine schlechte Idee.

(wenn, dann könnte man es mit einem modifizierten ebuild im lokalen Overlay machen - doch wozu das ganze...?)

----------

## hampelratte

Naja, also dass der Aufwand sehr viel höher ist, wenn man selektiv installiert als alles installiert und nur einzelne ausschließt liegt doch auf der Hand. Meine Frage war ja nur, ob es einen einfachen Weg gibt, es so zu lösen und den gibt es ja offenbar nicht. Deshalb werde ich es jetzt auch mit dem selektiven Installieren probieren. Im Grunde macht man das ja auch nur ein Mal und dann die nächsten paar Jahre nicht mehr.

So gesehen ist Gentoo wirklich schon toll. Ich habe mein System jetzt schon über mehrere Festplatten / Mainboards / Prozessoren umgezogen und es läuft und läuft und läuft. Mittlerweile glaube ich seit 7 Jahren. Das macht man mit einem anderen Betriebssystem nicht so leicht. Einziges Manko ist, dass ich noch mit 32Bit unterwegs bin, aber das kann man ja leider nicht einfach umstellen. 

Das musste jetzt auch mal gesagt werden  :Wink: 

----------

## Yamakuzure

 *hampelratte wrote:*   

> Stimmt, das macht Sinn. Mal angenommen, ich möchte in jedem kde-Paket 1-2 Pakete nicht installieren. Dann müsste ich bei dieser Vorgehensweise alle kde-Pakete aufschlüsseln und dann alle Pakete von Hand installieren, die ich haben möchte. Das führt die meta-Pakete ad absurdum und mein Ansatz wäre wesentlich einfacher. Gäbe es in dem Fall noch eine bessere Lösung als meine?

 Und genau da war das Missverständnis. Du hast als Beispiel "kdegames-meta" angegeben, da kam dann auch mein Vorschlag nur bezüglich der Meta-Pakete her.

Wenn du einzelne Pakete, die in einer Meta zusammengefasst sind, ausschließen möchtest, gibt es zwei Möglichkeiten:Du installierst alles einzelnd, was du haben möchtest oder du kopierst das entsprechende meta ebuild in dein lokales Overlay, entfernst darin die entsprechenden Pakete und installierst halt das.Nachteil des Ersten: Viel einzelnes Installieren. Nachteil des Zweiten: Bei jedem Update musst du, und du wirst nicht automatisch darauf hingewiesen, den Spaß wiederholen. Allerdings reicht ein Kopieren und Umbenennen deines ebuilds meistens aus.

Für den Fall, dass du einmal schauen möchtest, was wovon installiert wird, kannst du es mit equery (aus app-portage/gentoolkit) leicht herausfinden:

```
sed@sed-notebook ~ $ equery g -l --depth=1 kde-base/kdegames-meta-4.7.4

 * Searching for kdegames-meta4.7.4 in kde-base ...

 * dependency graph for kde-base/kdegames-meta-4.7.4

 [  0]  kde-base/kdegames-meta-4.7.4  ~amd64 

 [  1]  kde-base/bomber-4.7.4  (>=kde-base/bomber-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/bovo-4.7.4  (>=kde-base/bovo-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/granatier-4.7.4  (>=kde-base/granatier-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kapman-4.7.4  (>=kde-base/kapman-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/katomic-4.7.4  (>=kde-base/katomic-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kbattleship-4.7.4  (>=kde-base/kbattleship-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kblackbox-4.7.4  (>=kde-base/kblackbox-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kblocks-4.7.4  (>=kde-base/kblocks-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kbounce-4.7.4  (>=kde-base/kbounce-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kbreakout-4.7.4  (>=kde-base/kbreakout-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kdiamond-4.7.4  (>=kde-base/kdiamond-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kfourinline-4.7.4  (>=kde-base/kfourinline-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kgoldrunner-4.7.4  (>=kde-base/kgoldrunner-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/killbots-4.7.4  (>=kde-base/killbots-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kigo-4.7.4  (>=kde-base/kigo-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kiriki-4.7.4  (>=kde-base/kiriki-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kjumpingcube-4.7.4  (>=kde-base/kjumpingcube-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/klickety-4.7.4  (>=kde-base/klickety-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/klines-4.7.4  (>=kde-base/klines-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kmahjongg-4.7.4  (>=kde-base/kmahjongg-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kmines-4.7.4  (>=kde-base/kmines-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/knetwalk-4.7.4  (>=kde-base/knetwalk-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kolf-4.7.4  (>=kde-base/kolf-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kollision-4.7.4  (>=kde-base/kollision-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/konquest-4.7.4  (>=kde-base/konquest-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kpat-4.7.4  (>=kde-base/kpat-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kreversi-4.7.4  (>=kde-base/kreversi-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kshisen-4.7.4  (>=kde-base/kshisen-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/ksirk-4.7.4  (>=kde-base/ksirk-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kspaceduel-4.7.4  (>=kde-base/kspaceduel-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/ksquares-4.7.4  (>=kde-base/ksquares-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/ktron-4.7.4  (>=kde-base/ktron-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/ktuberling-4.7.4  (>=kde-base/ktuberling-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kubrick-4.7.4  (>=kde-base/kubrick-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/libkdegames-4.7.4  (>=kde-base/libkdegames-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/libkmahjongg-4.7.4  (>=kde-base/libkmahjongg-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/lskat-4.7.4  (>=kde-base/lskat-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/palapeli-4.7.4  (>=kde-base/palapeli-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/ksudoku-4.7.4  (>=kde-base/ksudoku-4.7.4) ~amd64  [aqua=]

 [  1]  kde-base/kajongg-4.7.4  (>=kde-base/kajongg-4.7.4) ~amd64  [aqua=]

[ kde-base/kdegames-meta-4.7.4 stats: packages (41), max depth (1) ]
```

----------

