# 'ACCEPT_KEYWORDS="~x86" emerge foo' ist böse

## amne

In vielen Threads wird empfohlen, Programme mittels 

```
ACCEPT_KEYWORDS="~x86" emerge programmname
```

 zu installieren. Das war vor einiger Zeit Stand der Technik, ist aber nicht mehr empfehlenswert.

Was bedeutet ACCEPT_KEYWORDS="~x86" eigentlich?

Bei Gentoo gibt es "stabile" und "maskierte" (=testing) Pakete. Stabile Pakete tragen den Namen der Architektur, also "x86", "amd64", "ppc", etc. Maskierte Pakete tragen eine Tilde vor dem Namen, also "~x86", "~amd64", "~ppc", etc.  Auch wenn im weiteren von x86/~x86 die Rede ist, gilt das Gesagte auch für die anderen Architekturen. 

In /etc/make.conf kann man durch den Eintrag von ACCEPT_KEYWORDS angeben, ob man ein "stabiles" oder "maskiertes" System verwenden will. Für die meisten User macht es vermutlich Sinn, die stabile Einstellung zu wählen.

Was bewirkt ACCEPT_KEYWORDS="~x86" emerge programmname?

Hat man in der /etc/make.conf die Einstellung für x86 getroffen wird nun für dieses eine Mal  die Variable kurzfristig auf ~x86 umgesetzt. Nun handelt Portage so, als wäre das System auf ~x86 umgestellt worden und installiert Pakete, die als "testing" markiert sind, wie es ja gerade eben gewünscht wurde. Eventuell werden hier - besonders wenn man gleichzeitig auch noch den Parameter -u (--update) angegeben hat - gleich grössere Teile des Systems umgestellt, was eigentlich gar nicht beabsichtigt war.

Nach diesem einen Befehl ist das ~x86 wieder vergessen. Früher oder später wird daher Portage vorschlagen, ein maskiertes ~x86 Paket wieder auf x86 downzugraden. Diese Problematik verschlimmert sich weiter, wenn man nun versucht, das System mit -U upzudaten, um das Downgrade zu verhindern. Siehe dazu auch 1000 Gründe warum emerge -U world schlecht ist.

Wie gehts richtig?

Man lese: Neue Funktionen und Optionen in Portage 2.0.50

Durch die Verwendung von /etc/portage/package.keywords kann man Portage langfristig (und nicht nur für die Dauer eines Befehls) mitteilen, von welchen Paketen man maskierte Versionen einsetzen will. Dadurch werden diese (und nur diese) in den "testing"-Versionen installiert und der Rest des Systems bleibt stabil. 

Noch eine Anmerkung zum Schluss:

Es gibt meistens Gründe, warum ein Paket maskiert ist. Meist handelt es sich um erst kürzlich veröffentlichte Versionen, die noch nicht in 100% der Fälle funktionieren. Sollte die Installation schiefgehen, empfiehlt es sich, die Foren und bugs.gentoo.org zu durchsuchen.

----------

## Coogee

Meiner Meinung nach ist "instabil" eine vollkommen falsche Bezeichnung für ~x86. "Testing" wäre ein besserer Begriff, da viele neue Software-Versionen eben Bugs korrigieren, wodurch u.U. ein ~x86-System stabiler ist wie ein x86-System.

Meine Gentoo-Installation ist 100 % ~x86, und ich kann keine "Instabilitäten" erkennen. Es wird zwar ab und zu eine Software-Version installiert, die dann kurz darauf zurückgenommen oder upgedatet wird, aber im Großen und Ganzen fahre ich mit ~x86 sehr gut.

Ein Nachteil ist die größere "Update-Häufigkeit", d.h. es wird viel mehr kompiliert als unter x86.

----------

## Sas

Die ~Trees heißen doch auch ganz offiziell 'testing'!

Ansonsten stimme ich zu.

----------

## amne

Stimmt - ich habe das Wort instabil aus meinem ersten Post entfernt und durch testing ersetzt.

----------

## Lasker

 *amne wrote:*   

> Stimmt - ich habe das Wort instabil aus meinem ersten Post entfernt und durch testing ersetzt.

 

... und "böse" würde ich durch "riskant" ersetzen.

Vor wenigen Tagen habe ich eine Stage 1 Installation durchgeführt, und zwar von einer uralten gentoo CD.

Da ich vorher mit FC1 einen 2.6er Kernel hatte und unbedingt wieder einen haben wollte, hatte ich mich

für 2.6.8-gentoo-r3 entschieden und mit direktem Pfad installiert (anstatt mit "USE=~x86"), so das mir erst

gar nicht bewußt war, dass der aus dem Testing Tree stammt.

Darauf gab's dann auch prompt ein paar Ungereimtheiten und ich musste mich nun entscheiden zwischen

stable branch und 2.4er Kernel oder alles auf unstable/testing.

Inzwischen habe ich alles auf ~x86 upgedated und, bis auf ein klitzekleines Problem mit Gnome-Terminal,

läuft alles rund und stabil. In manchen Fällen bleibt dir kaum eine andere Wahl als zumindest teilweise

auf ~x86 zuzugreifen: In meinem Fall waren es vor Allem die Nvidia Treiber aus dem stable branch, die es

überhaupt nicht taten. Zumindest nicht mit xfree, obwohl das original Nvidia shell script funktionierte.

Leider scheinen die oben genannten Erfahrungen meinen Verdacht zu erhärten, dass es mit dem

'stable branch' bei gentoo auch nicht so weit her ist und/weil die meiste Entwicklerpower in 'testing' einfließt.

Es bleiben also nur 2 Möglichkeiten (mir nur eine, da die Entscheidung schon gefallen ist):

Entweder ein 'Mischsystem' aus stable/testing oder alles komplett auf ~x86 umzustellen. Ein reines 'stable' ist

für meine Zwecke völlig undiskutabel.

Die Frage ist, welche der beiden Optionen hat die größeren Chancen, das System konsistent zu erhalten?

Mir ist übrigens völlig klar, dass, wenn im Moment auch alles prima läuft, das nach dem nächsten emerge

sync und update world schon wieder total anders ausehen könnte...

----------

## amne

 *Lasker wrote:*   

> [..] hatte ich mich für 2.6.8-gentoo-r3 entschieden und mit direktem Pfad installiert[..]
> 
> 

 

emerge /path/to/ebuild ist ebenfalls böse weil es am Portage-System vorbeiarbeitet.

 *Lasker wrote:*   

> 
> 
> so das mir erst gar nicht bewußt war, dass der aus dem Testing Tree stammt.
> 
> Darauf gab's dann auch prompt ein paar Ungereimtheiten [..]
> ...

 

Es wäre möglich, dass das wegen des "falsch" installierten Kernels passiert ist.

 *Lasker wrote:*   

> 
> 
> Inzwischen habe ich alles auf ~x86 upgedated und, bis auf ein klitzekleines Problem mit Gnome-Terminal,
> 
> läuft alles rund und stabil.
> ...

 

Ich habe auch nirgends behauptet, dass ~x86 schlecht oder böse wäre. Es ist allerdings sehr problematisch, mit der ACCEPT_KEYWORDS="~x86" emerge foo Methode x86 und ~x86 zu mixen - siehe mein erstes Post. Entweder man verwendet x86 oder ~x86 als Keyword, das auf der Kommandozeile zu wechseln gibt nur Ärger.

 *Lasker wrote:*   

> 
> 
> In manchen Fällen bleibt dir kaum eine andere Wahl als zumindest teilweise auf ~x86 zuzugreifen: In meinem Fall waren es vor Allem die Nvidia Treiber aus dem stable branch, die es überhaupt nicht taten. Zumindest nicht mit xfree, obwohl das original Nvidia shell script funktionierte.
> 
> 

 

Kein Problem, in /etc/portage/package.keywords eintragen und die ~x86 Version verwenden.

 *Lasker wrote:*   

> 
> 
> Leider scheinen die oben genannten Erfahrungen meinen Verdacht zu erhärten, dass es mit dem 'stable branch' bei gentoo auch nicht so weit her ist und/weil die meiste Entwicklerpower in 'testing' einfließt.
> 
> 

 

Wenn man Portage nicht unnötig mit /path/to/ebuild verwirrt funktioniert x86 wunderbar. Ich habe hier ohne Probleme 4 Rechner mit stark unterschiedlich konfigurierten Systemen laufen. Auf fast jedem dieser Rechner habe ich zumindest ein Paket, dass ebenfalls ~x86 ist. 

 *Lasker wrote:*   

> 
> 
> Es bleiben also nur 2 Möglichkeiten (mir nur eine, da die Entscheidung schon gefallen ist):
> 
> Entweder ein 'Mischsystem' aus stable/testing oder alles komplett auf ~x86 umzustellen. Ein reines 'stable' ist für meine Zwecke völlig undiskutabel.
> ...

 

Wenn du ein testing-System willst stellst du es global in deiner make.conf ein - wenn du ein stable-System willst, stellst du es ebenfalls in deiner make.conf ein und installierst dir wie schon im ersten Post beschrieben deine testing-Pakete mittels /etc/portage/package.keywords.

----------

## Lasker

 *amne wrote:*   

>  *Lasker wrote:*   [..] hatte ich mich für 2.6.8-gentoo-r3 entschieden und mit direktem Pfad installiert[..]
> 
>  
> 
> emerge /path/to/ebuild ist ebenfalls böse weil es am Portage-System vorbeiarbeitet.

 

Seh ich inzwischen ein.

Sollte aber momentan nicht mein Problem sein (hoffe ich), da inzwischen alles auf  ~x86 upgedatet ist

(ACCEPT_KEYWORDS="~x86" in /etc/make.conf)

 *Lasker wrote:*   

> 
> 
> so das mir erst gar nicht bewußt war, dass der aus dem Testing Tree stammt.
> 
> Darauf gab's dann auch prompt ein paar Ungereimtheiten [..]
> ...

 

 *Quote:*   

> Es wäre möglich, dass das wegen des "falsch" installierten Kernels passiert ist.

 

Möglich, aber siehe oben. Müßte inzwischen, wenn auch unstable bzw. testing, so doch ansonsten konsistent sein.

 *Lasker wrote:*   

> 
> 
> Inzwischen habe ich alles auf ~x86 upgedated und, bis auf ein klitzekleines Problem mit Gnome-Terminal,
> 
> läuft alles rund und stabil.
> ...

 

 *Quote:*   

> Ich habe auch nirgends behauptet, dass ~x86 schlecht oder böse wäre.

 

Da hab ich dich wohl gründlich flasch verstanden, sorry.

Ich schreib's mir hinter die Ohren: Besser nicht Fernseh gucken und posten gleichzeitig

(obwohl: Abyss, Director's Cut war vielleicht doch mal ne Ausnahme wert)

 *Quote:*   

> Es ist allerdings sehr problematisch, mit der ACCEPT_KEYWORDS="~x86" emerge foo Methode x86 und ~x86 zu mixen - siehe mein erstes Post. Entweder man verwendet x86 oder ~x86 als Keyword, das auf der Kommandozeile zu wechseln gibt nur Ärger.

 

Das sollte eigentlich meiner langen Rede kurzer Sinn sein. Sind wir uns also einig, trotz Mißverständis.  :Wink: 

 *Lasker wrote:*   

> 
> 
> In manchen Fällen bleibt dir kaum eine andere Wahl als zumindest teilweise auf ~x86 zuzugreifen: In meinem Fall waren es vor Allem die Nvidia Treiber aus dem stable branch, die es überhaupt nicht taten. Zumindest nicht mit xfree, obwohl das original Nvidia shell script funktionierte.
> 
> 

 

 *Quote:*   

> Kein Problem, in /etc/portage/package.keywords eintragen und die ~x86 Version verwenden.

 

Ich möchte dir ja zu gerne glauben, wäre ich nur nicht gerade über diesen Thread hier gestolpert:

https://forums.gentoo.org/viewtopic.php?t=163249

Das hört sich nicht unbedingt so Vertrauen erweckend an...

Zumindest scheint das, wenn ich den in diesem Thread getroffenen Aussagen glauben kann, wie z.B.

 *robert0380 wrote:*   

> 
> 
> all that "Calculating Dependencies" can make u go crazy on a slower system 

 

unter Umständen ein paar lästige Konsequenzen nach sich zu ziehen.

In meinem Fall (Nvidia Treiber) wär's wohl kein Problem gewesen.

In dem Thread ging es allerdings um Pakete mit umfangreichen Dependencies (Gnome 2.6)...

 *Quote:*   

> Wenn du ein testing-System willst stellst du es global in deiner make.conf ein - wenn du ein stable-System willst, stellst du es ebenfalls in deiner make.conf ein und installierst dir wie schon im ersten Post beschrieben deine testing-Pakete mittels /etc/portage/package.keywords.

 

Wie gesagt ist die Entscheidung schon gefallen zugunsten von unstable, was z.Z. (noch) einen sehr soliden Eindruck macht.

Ich denke mal, dass ich jetzt nicht wieder so einfach zurück kann ohne einen globalen Downgrade in Kauf

zu nehmen (beim nächsten emerge -u world, falls ich jetzt ACCEPT_KEYWORDS="~x86" in "x86" ändern würde).

Muss ich die Suppe, die ich mir da eingebrockt habe, jetzt auslöffeln oder hast du einen guten Tip auf Lager?

----------

## amne

Downgrade auf stable könnte für dich interessant sein, ist halt ein wenig problematisch. Du könntest vermutlich auch deine glibc in /etc/portage/package.keywords mit ~x86 eintragen und einfach keine weiteren Upgrades davon mehr durchführen (package.mask), bis die aktuelle version x86 wird. Dann entfernst du den Eintrag für glibc in package.keywords und die Maskierungen. Ich könnte mir vorstellen, dass das funktioniert - Garantie kann ich jedoch keine abgeben.  :Wink: 

Der Rest des Systems lässt sich hoffentlich ohne Probleme downgraden.

----------

## ltiefland

Wie ist denn das Format dieser Datei? Ich habe die überhaupt nicht!?!

----------

## golloza

http://www.gentoo.de/main/de/portage-2.0.50.xml

----------

## Lasker

 *amne wrote:*   

> Downgrade auf stable könnte für dich interessant sein, ist halt ein wenig problematisch.

 

Danke erst mal für den gut gemeinten Rat!   :Smile: 

Nachdem ich mir den Thread angesehen habe, scheint es mir aber doch das kleinere Übel (bzw. geringere Risiko)

zu sein, erst mal auf ~x86 zu bleiben, zumindest solange alles stabil läuft. 

Ist eigentlich gar nicht mehr so schlimm mit der Anzahl neuer Pakete als das noch vor ungefähr einem Jahr der Fall war.

Und wenn tatsächlich mal ein grösseres Update reinkommt, seh ich erst mal nach, ob es mir was bringen könnte.

Wenn nicht, block ich es einfach ab (in /etc/portage/package.mask), so dass ich immer noch problemlos update

world benutzen kann ohne z.B. jedesmal neue kernel-sourcen installieren zu müssen.

----------

## amne

Thread entstickifiziert.

----------

## schienenhaenger

 *amne wrote:*   

>  *Lasker wrote:*   [..] hatte ich mich für 2.6.8-gentoo-r3 entschieden und mit direktem Pfad installiert[..]
> 
>  
> 
> emerge /path/to/ebuild ist ebenfalls böse weil es am Portage-System vorbeiarbeitet.
> ...

 

Hmm, dann sollte mal die (deutsche?) Doku diesbezüglich überarbeitet werden, hat mir ein paar Probleme eingehandelt...

Guckst Du hier:

http://www.gentoo.de/doc/de/portage-manual.xml#doc_chap3

Punkt 3.2, Pakete installieren. Dort steht:

*******************

Das emerge Kommando akzeptiert auch die direkte Angabe von ebuilds. Dies erlaubt dem Benutzer auch ältere Versionen eines bestimmten Paketes oder ebuilds von Drittanbietern zu installieren. Beachten Sie, dass dadurch alle Maskierungen für das Paket übergangen werden und Ihre ACCEPT_KEYWORDS Einstellung ignoriert wird. Das Folgende ist ein Beispiel:

Befehlsauflistung 12: Ein Paket unter Angabe der Version installieren

# emerge /usr/portage/net-www/galeon/galeon-1.2.0-r3.ebuild"

*******************

Das man dadurch am Portage vorbei arbeitet, wird nicht erwähnt!

Tschau, Stefan.

----------

## dertobi123

Die englische Doku [1] ist hierzu schon aktualisiert, die Übersetzung hinkt leider noch ein wenig hinterher.

[1] http://www.gentoo.org/doc/en/portage-manual.xml#doc_chap3

----------

## Earthwings

Auf Anfrage wieder sticky gemacht. Die Doku wurde in der Zwischenzeit natürlich aktualisiert (s.o.).

----------

## ian!

Das dieser "ACCEPT_KEYWORDS" Mythos immer noch lebt.. Faszinierend.

----------

## amne

Das sagt Google dazu.  :Wink: 

----------

## TwistedPeer

emerge --update world ist aber nicht immer schlecht...

man sollte dann allerdings die -a (ask) option anmachen.

Dann wird für jedes Paket aus World gefragt, ob es geupdatet werden soll.

Ebenfalls kann ich Porthole SEHR empfehlen.

Das ist eine prima GUI-Frontend für Portage.

----------

## 76062563

 *TwistedPeer wrote:*   

> emerge --update world ist aber nicht immer schlecht...

 

Hat das jemand behauptet?

Es geht um -U (böse) und nicht -u (nicht böse).

----------

## Anarcho

Also ich muss sagen, ich bin froh das ACCEPT_KEYWORDS=~x86 emerge foo noch funktioniert. Damit teste ich immer kurz aus ob es eine neuere Version gibt die mich vielleicht interessieren könnte.

Wenn ja,

dann folgt selbstverständlich ein echo "<category>/<packet> ~x86" >> /etc/portage/package.keywords

----------

## Flying_Horse

Das "ACCEPT_KEYWORDS" benutze ich immer noch gerne, um mal zu schauen, welche Abhängigkeiten das neue Pakt den nachinstallieren möchte. Ein 'ACCEPT_KEYWORDS="~amd64" emerge -pv <paket>' hat mich schon vor mancher Dummheit bewart  :Embarassed: 

Gruss, Klaus

----------

